From 92076fee148d82b1537ba6ec5cb83f2f290e7b1a Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 19 May 2025 10:36:46 +0100 Subject: [PATCH] Move session endpoint auto-configuration into spring-boot-session Closes gh-46139 --- .../spring-boot-actuator-autoconfigure-all/build.gradle | 2 -- ...ramework.boot.autoconfigure.AutoConfiguration.imports | 1 - spring-boot-project/spring-boot-session/build.gradle | 2 +- .../SessionsEndpointAutoConfiguration.java | 9 +++++---- .../actuate/endpoint/autoconfigure}/package-info.java | 4 ++-- ...ramework.boot.autoconfigure.AutoConfiguration.imports | 1 + .../SessionsEndpointAutoConfigurationTests.java | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure}/SessionsEndpointAutoConfiguration.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure}/package-info.java (82%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/session => spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/autoconfigure}/SessionsEndpointAutoConfigurationTests.java (98%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle index c00c0460e46..0d497a8c58b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -67,7 +67,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-security-oauth2-client")) optional(project(":spring-boot-project:spring-boot-security-oauth2-resource-server")) optional(project(":spring-boot-project:spring-boot-security-saml2")) - optional(project(":spring-boot-project:spring-boot-session")) optional(project(":spring-boot-project:spring-boot-tomcat")) optional(project(":spring-boot-project:spring-boot-undertow")) optional(project(":spring-boot-project:spring-boot-validation")) @@ -160,7 +159,6 @@ dependencies { optional("org.springframework.kafka:spring-kafka") optional("org.springframework.security:spring-security-config") optional("org.springframework.security:spring-security-web") - optional("org.springframework.session:spring-session-core") optional("redis.clients:jedis") testImplementation(project(":spring-boot-project:spring-boot-data-rest")) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 9297e87ca52..825d72cf0bf 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -77,7 +77,6 @@ org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpoint org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksObservabilityAutoConfiguration org.springframework.boot.actuate.autoconfigure.security.reactive.ReactiveManagementWebSecurityAutoConfiguration org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration -org.springframework.boot.actuate.autoconfigure.session.SessionsEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.ssl.SslHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.ssl.SslObservabilityAutoConfiguration org.springframework.boot.actuate.autoconfigure.startup.StartupEndpointAutoConfiguration diff --git a/spring-boot-project/spring-boot-session/build.gradle b/spring-boot-project/spring-boot-session/build.gradle index 3a18219f6bb..eb7cf1a9dc2 100644 --- a/spring-boot-project/spring-boot-session/build.gradle +++ b/spring-boot-project/spring-boot-session/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation(project(":spring-boot-project:spring-boot-web-server")) - optional(project(":spring-boot-project:spring-boot-actuator")) + optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional("io.projectreactor:reactor-core") optional("jakarta.servlet:jakarta.servlet-api") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfiguration.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfiguration.java index b075e62986a..3574c74a5f6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.session; +package org.springframework.boot.session.actuate.endpoint.autoconfigure; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; @@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; import org.springframework.boot.session.actuate.endpoint.ReactiveSessionsEndpoint; import org.springframework.boot.session.actuate.endpoint.SessionsEndpoint; +import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.session.FindByIndexNameSessionRepository; @@ -39,10 +40,10 @@ import org.springframework.session.SessionRepository; * {@link EnableAutoConfiguration Auto-configuration} for {@link SessionsEndpoint}. * * @author Vedran Pavic - * @since 2.0.0 + * @since 4.0.0 */ -@AutoConfiguration(afterName = "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration") -@ConditionalOnClass({ Session.class, SessionsEndpoint.class }) +@AutoConfiguration(after = SessionAutoConfiguration.class) +@ConditionalOnClass({ Session.class, SessionsEndpoint.class, ConditionalOnAvailableEndpoint.class }) @ConditionalOnAvailableEndpoint(SessionsEndpoint.class) public class SessionsEndpointAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/package-info.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/package-info.java similarity index 82% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/package-info.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/package-info.java index 8a71fef1c24..c5384b904a2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/session/package-info.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for actuator Spring Sessions concerns. + * Auto-configuration for Spring Session actuator endpoint. */ -package org.springframework.boot.actuate.autoconfigure.session; +package org.springframework.boot.session.actuate.endpoint.autoconfigure; diff --git a/spring-boot-project/spring-boot-session/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-session/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index d9e8b25a4be..17834069ece 100644 --- a/spring-boot-project/spring-boot-session/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-session/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ +org.springframework.boot.session.actuate.endpoint.autoconfigure.SessionsEndpointAutoConfiguration org.springframework.boot.session.autoconfigure.SessionAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfigurationTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java rename to spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfigurationTests.java index 6d190572a9f..49717821dc1 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/autoconfigure/SessionsEndpointAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.session; +package org.springframework.boot.session.actuate.endpoint.autoconfigure; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test;