From e2e9000aabb879f1ad02d05c2f9f603b2df72937 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 12 May 2025 14:04:39 +0100 Subject: [PATCH] Move code from spring-boot-actuator to spring-boot-session --- .../session/SessionsEndpointAutoConfiguration.java | 6 +++--- .../session/SessionsEndpointAutoConfigurationTests.java | 6 +++--- .../docs/session/SessionsEndpointDocumentationTests.java | 2 +- spring-boot-project/spring-boot-actuator/build.gradle | 1 - spring-boot-project/spring-boot-session/build.gradle | 7 ++++++- .../actuate/endpoint}/ReactiveSessionsEndpoint.java | 4 ++-- .../boot/session/actuate/endpoint}/SessionsDescriptor.java | 4 ++-- .../boot/session/actuate/endpoint}/SessionsEndpoint.java | 4 ++-- .../boot/session/actuate/endpoint}/package-info.java | 6 +++--- .../actuate/endpoint}/ReactiveSessionsEndpointTests.java | 6 +++--- .../ReactiveSessionsEndpointWebIntegrationTests.java | 4 ++-- .../session/actuate/endpoint}/SessionsEndpointTests.java | 6 +++--- .../endpoint}/SessionsEndpointWebIntegrationTests.java | 4 ++-- 13 files changed, 32 insertions(+), 28 deletions(-) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint}/ReactiveSessionsEndpoint.java (94%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint}/SessionsDescriptor.java (95%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint}/SessionsEndpoint.java (94%) rename spring-boot-project/{spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session => spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint}/package-info.java (78%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session => spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint}/ReactiveSessionsEndpointTests.java (95%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session => spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint}/ReactiveSessionsEndpointWebIntegrationTests.java (97%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session => spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint}/SessionsEndpointTests.java (94%) rename spring-boot-project/{spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session => spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint}/SessionsEndpointWebIntegrationTests.java (96%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java index 8e9c91fbfb..8078dde990 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfiguration.java @@ -18,8 +18,6 @@ package org.springframework.boot.actuate.autoconfigure.session; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; -import org.springframework.boot.actuate.session.ReactiveSessionsEndpoint; -import org.springframework.boot.actuate.session.SessionsEndpoint; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -27,6 +25,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; 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.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.session.FindByIndexNameSessionRepository; @@ -42,7 +42,7 @@ import org.springframework.session.SessionRepository; * @since 2.0.0 */ @AutoConfiguration(afterName = "org.springframework.boot.session.autoconfigure.SessionAutoConfiguration") -@ConditionalOnClass(Session.class) +@ConditionalOnClass({ Session.class, SessionsEndpoint.class }) @ConditionalOnAvailableEndpoint(SessionsEndpoint.class) public class SessionsEndpointAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java index 491e4e3d61..967c81c1b6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/session/SessionsEndpointAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,9 @@ package org.springframework.boot.actuate.autoconfigure.session; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.session.ReactiveSessionsEndpoint; -import org.springframework.boot.actuate.session.SessionsEndpoint; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.session.actuate.endpoint.ReactiveSessionsEndpoint; +import org.springframework.boot.session.actuate.endpoint.SessionsEndpoint; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; import org.springframework.context.annotation.Bean; diff --git a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/session/SessionsEndpointDocumentationTests.java b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/session/SessionsEndpointDocumentationTests.java index 6648c9b2fd..fae1dad76e 100644 --- a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/session/SessionsEndpointDocumentationTests.java +++ b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/session/SessionsEndpointDocumentationTests.java @@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.context.ShutdownEndpoint; import org.springframework.boot.actuate.docs.MockMvcEndpointDocumentationTests; -import org.springframework.boot.actuate.session.SessionsEndpoint; +import org.springframework.boot.session.actuate.endpoint.SessionsEndpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle index 4f89466330..112af1fbfc 100644 --- a/spring-boot-project/spring-boot-actuator/build.gradle +++ b/spring-boot-project/spring-boot-actuator/build.gradle @@ -55,7 +55,6 @@ dependencies { optional("org.springframework.data:spring-data-rest-webmvc") optional("org.springframework.security:spring-security-core") optional("org.springframework.security:spring-security-web") - optional("org.springframework.session:spring-session-core") testFixturesImplementation(project(":spring-boot-project:spring-boot-autoconfigure")) testFixturesImplementation(project(":spring-boot-project:spring-boot-http-converter")) diff --git a/spring-boot-project/spring-boot-session/build.gradle b/spring-boot-project/spring-boot-session/build.gradle index 9e3d78553d..626fcae159 100644 --- a/spring-boot-project/spring-boot-session/build.gradle +++ b/spring-boot-project/spring-boot-session/build.gradle @@ -15,7 +15,9 @@ 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-autoconfigure")) + optional("io.projectreactor:reactor-core") optional("jakarta.servlet:jakarta.servlet-api") optional("org.springframework.security:spring-security-web") @@ -30,8 +32,11 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-tomcat")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) testImplementation(project(":spring-boot-project:spring-boot-webflux")) - testImplementation(testFixtures(project(":spring-boot-project:spring-boot"))) + testImplementation(testFixtures(project(":spring-boot-project:spring-boot-actuator"))) testImplementation(testFixtures(project(":spring-boot-project:spring-boot-web-server"))) + testImplementation("net.minidev:json-smart") + testImplementation("io.projectreactor:reactor-test") testRuntimeOnly("ch.qos.logback:logback-classic") + testRuntimeOnly("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") } diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpoint.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpoint.java similarity index 94% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpoint.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpoint.java index d8e6bfe755..9986a57831 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpoint.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpoint.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import reactor.core.publisher.Mono; @@ -22,7 +22,7 @@ import org.springframework.boot.actuate.endpoint.annotation.DeleteOperation; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.boot.actuate.endpoint.annotation.Selector; -import org.springframework.boot.actuate.session.SessionsDescriptor.SessionDescriptor; +import org.springframework.boot.session.actuate.endpoint.SessionsDescriptor.SessionDescriptor; import org.springframework.session.ReactiveFindByIndexNameSessionRepository; import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.Session; diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsDescriptor.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsDescriptor.java similarity index 95% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsDescriptor.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsDescriptor.java index 24e12de097..9f69d3b793 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsDescriptor.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.time.Instant; import java.util.List; diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpoint.java similarity index 94% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpoint.java index d8d56ef6ad..f1283269e9 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/SessionsEndpoint.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpoint.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.util.Map; @@ -22,7 +22,7 @@ import org.springframework.boot.actuate.endpoint.annotation.DeleteOperation; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.boot.actuate.endpoint.annotation.Selector; -import org.springframework.boot.actuate.session.SessionsDescriptor.SessionDescriptor; +import org.springframework.boot.session.actuate.endpoint.SessionsDescriptor.SessionDescriptor; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.Session; import org.springframework.session.SessionRepository; diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/package-info.java b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/package-info.java similarity index 78% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/package-info.java rename to spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/package-info.java index f6f311c725..3926e59891 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/session/package-info.java +++ b/spring-boot-project/spring-boot-session/src/main/java/org/springframework/boot/session/actuate/endpoint/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,6 @@ */ /** - * Actuator support for Spring Session. + * Actuator endpoint for Spring Session. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointTests.java b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointTests.java similarity index 95% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointTests.java rename to spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointTests.java index e5b5492650..7a9290fb34 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointTests.java +++ b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.time.Duration; import java.util.Collections; @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; -import org.springframework.boot.actuate.session.SessionsDescriptor.SessionDescriptor; +import org.springframework.boot.session.actuate.endpoint.SessionsDescriptor.SessionDescriptor; import org.springframework.session.MapSession; import org.springframework.session.ReactiveFindByIndexNameSessionRepository; import org.springframework.session.ReactiveSessionRepository; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointWebIntegrationTests.java b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointWebIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointWebIntegrationTests.java rename to spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointWebIntegrationTests.java index 1d311a5561..e4093f0da7 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/ReactiveSessionsEndpointWebIntegrationTests.java +++ b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/ReactiveSessionsEndpointWebIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.util.Collections; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointTests.java similarity index 94% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java rename to spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointTests.java index 8047c825ab..fac0dab9a4 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointTests.java +++ b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.session.SessionsDescriptor.SessionDescriptor; +import org.springframework.boot.session.actuate.endpoint.SessionsDescriptor.SessionDescriptor; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; import org.springframework.session.Session; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointWebIntegrationTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java rename to spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointWebIntegrationTests.java index fcf8d5e57d..8c7067dbe2 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/session/SessionsEndpointWebIntegrationTests.java +++ b/spring-boot-project/spring-boot-session/src/test/java/org/springframework/boot/session/actuate/endpoint/SessionsEndpointWebIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.session; +package org.springframework.boot.session.actuate.endpoint; import java.util.Collections;