From f8716ab85155b62c8de7b15b938f7f7fcc172a8e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 16 May 2025 16:25:39 +0100 Subject: [PATCH] Move Hazelcast health auto-configuration into spring-boot-hazelcast --- .../spring-boot-actuator-autoconfigure-all/build.gradle | 1 - ...ngframework.boot.autoconfigure.AutoConfiguration.imports | 1 - .../WebEndpointsAutoConfigurationIntegrationTests.java | 3 +-- spring-boot-project/spring-boot-hazelcast/build.gradle | 2 +- .../HazelcastHealthContributorAutoConfiguration.java | 6 +++--- .../actuate/health/autoconfigure}/package-info.java | 4 ++-- ...ngframework.boot.autoconfigure.AutoConfiguration.imports | 1 + ...tHealthContributorAutoConfigurationIntegrationTests.java | 2 +- .../HazelcastHealthContributorAutoConfigurationTests.java | 2 +- .../autoconfigure/HazelcastSessionAutoConfiguration.java | 3 ++- 10 files changed, 12 insertions(+), 13 deletions(-) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast => spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure}/HazelcastHealthContributorAutoConfiguration.java (93%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast => spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure}/package-info.java (83%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast => spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure}/HazelcastHealthContributorAutoConfigurationIntegrationTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast => spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure}/HazelcastHealthContributorAutoConfigurationTests.java (97%) 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 a9df45a6df..9b2c8637a7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -36,7 +36,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-data-mongodb")) optional(project(":spring-boot-project:spring-boot-data-neo4j")) optional(project(":spring-boot-project:spring-boot-data-redis")) - optional(project(":spring-boot-project:spring-boot-hazelcast")) optional(project(":spring-boot-project:spring-boot-http-converter")) optional(project(":spring-boot-project:spring-boot-http-codec")) optional(project(":spring-boot-project:spring-boot-integration")) 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 e57bc37d9c..8d73079ce9 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 @@ -15,7 +15,6 @@ org.springframework.boot.actuate.autoconfigure.data.redis.RedisReactiveHealthCon org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration -org.springframework.boot.actuate.autoconfigure.hazelcast.HazelcastHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.integration.IntegrationGraphEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.jms.JmsHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebEndpointsAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebEndpointsAutoConfigurationIntegrationTests.java index db54f047b0..bb3ab129e2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebEndpointsAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/integrationtest/WebEndpointsAutoConfigurationIntegrationTests.java @@ -34,7 +34,6 @@ import org.springframework.boot.data.neo4j.autoconfigure.Neo4jReactiveDataAutoCo import org.springframework.boot.data.redis.autoconfigure.RedisAutoConfiguration; import org.springframework.boot.data.redis.autoconfigure.RedisRepositoriesAutoConfiguration; import org.springframework.boot.data.rest.autoconfigure.RepositoryRestMvcAutoConfiguration; -import org.springframework.boot.hazelcast.autoconfigure.HazelcastAutoConfiguration; import org.springframework.boot.liquibase.autoconfigure.LiquibaseAutoConfiguration; import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration; import org.springframework.boot.mongodb.autoconfigure.MongoReactiveAutoConfiguration; @@ -80,7 +79,7 @@ class WebEndpointsAutoConfigurationIntegrationTests { CassandraDataAutoConfiguration.class, Neo4jDataAutoConfiguration.class, Neo4jReactiveDataAutoConfiguration.class, MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, MongoReactiveAutoConfiguration.class, MongoReactiveDataAutoConfiguration.class, - RepositoryRestMvcAutoConfiguration.class, HazelcastAutoConfiguration.class, RedisAutoConfiguration.class, + RepositoryRestMvcAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, BraveAutoConfiguration.class, OpenTelemetryTracingAutoConfiguration.class }) @SpringBootConfiguration diff --git a/spring-boot-project/spring-boot-hazelcast/build.gradle b/spring-boot-project/spring-boot-hazelcast/build.gradle index 324ad30ffe..5c1cb2f365 100644 --- a/spring-boot-project/spring-boot-hazelcast/build.gradle +++ b/spring-boot-project/spring-boot-hazelcast/build.gradle @@ -14,7 +14,7 @@ dependencies { compileOnly("com.fasterxml.jackson.core:jackson-annotations") - 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(project(":spring-boot-project:spring-boot-jpa")) optional("com.hazelcast:hazelcast-spring") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfiguration.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java rename to spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfiguration.java index 0c76aaef4d..83a871b176 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.hazelcast; +package org.springframework.boot.hazelcast.actuate.health.autoconfigure; import com.hazelcast.core.HazelcastInstance; @@ -36,10 +36,10 @@ import org.springframework.context.annotation.Bean; * {@link HazelcastHealthIndicator}. * * @author Dmytro Nosan - * @since 2.2.0 + * @since 4.0.0 */ @AutoConfiguration(after = HazelcastAutoConfiguration.class) -@ConditionalOnClass({ HazelcastInstance.class, HazelcastHealthIndicator.class }) +@ConditionalOnClass({ HazelcastInstance.class, ConditionalOnEnabledHealthIndicator.class }) @ConditionalOnBean(HazelcastInstance.class) @ConditionalOnEnabledHealthIndicator("hazelcast") public class HazelcastHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/package-info.java b/spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/package-info.java similarity index 83% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/package-info.java rename to spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/package-info.java index 80ffeaec84..68338dcc20 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/package-info.java +++ b/spring-boot-project/spring-boot-hazelcast/src/main/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for actuator Hazelcast concerns. + * Auto-configuration for Hazelcast health integration. */ -package org.springframework.boot.actuate.autoconfigure.hazelcast; +package org.springframework.boot.hazelcast.actuate.health.autoconfigure; diff --git a/spring-boot-project/spring-boot-hazelcast/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-hazelcast/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 8df7fdbec6..5352cbe104 100644 --- a/spring-boot-project/spring-boot-hazelcast/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-hazelcast/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ +org.springframework.boot.hazelcast.actuate.health.autoconfigure.HazelcastHealthContributorAutoConfiguration org.springframework.boot.hazelcast.autoconfigure.HazelcastAutoConfiguration org.springframework.boot.hazelcast.autoconfigure.HazelcastJpaDependencyAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationIntegrationTests.java rename to spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationIntegrationTests.java index 4926dfccd4..dafdf6201f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.hazelcast; +package org.springframework.boot.hazelcast.actuate.health.autoconfigure; import com.hazelcast.core.HazelcastInstance; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationTests.java index 81418f3484..d9b9fd04dc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-hazelcast/src/test/java/org/springframework/boot/hazelcast/actuate/health/autoconfigure/HazelcastHealthContributorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.hazelcast; +package org.springframework.boot.hazelcast.actuate.health.autoconfigure; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-session-hazelcast/src/main/java/org/springframework/boot/session/hazelcast/autoconfigure/HazelcastSessionAutoConfiguration.java b/spring-boot-project/spring-boot-session-hazelcast/src/main/java/org/springframework/boot/session/hazelcast/autoconfigure/HazelcastSessionAutoConfiguration.java index 854b836a12..60fce9ce1e 100644 --- a/spring-boot-project/spring-boot-session-hazelcast/src/main/java/org/springframework/boot/session/hazelcast/autoconfigure/HazelcastSessionAutoConfiguration.java +++ b/spring-boot-project/spring-boot-session-hazelcast/src/main/java/org/springframework/boot/session/hazelcast/autoconfigure/HazelcastSessionAutoConfiguration.java @@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.PropertyMapper; +import org.springframework.boot.hazelcast.autoconfigure.HazelcastAutoConfiguration; import org.springframework.boot.session.autoconfigure.SessionAutoConfiguration; import org.springframework.boot.session.autoconfigure.SessionProperties; import org.springframework.boot.web.server.autoconfigure.ServerProperties; @@ -48,7 +49,7 @@ import org.springframework.session.hazelcast.config.annotation.web.http.Hazelcas * @author Vedran Pavic * @since 4.0.0 */ -@AutoConfiguration(before = SessionAutoConfiguration.class) +@AutoConfiguration(before = SessionAutoConfiguration.class, after = HazelcastAutoConfiguration.class) @ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnClass(HazelcastIndexedSessionRepository.class) @ConditionalOnMissingBean(SessionRepository.class)