From 07e5c343a3be1b5ccfbfa9841d372a99cd3cc140 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 16 May 2025 13:48:08 +0100 Subject: [PATCH] Move Cassandra health auto-configuration into spring-boot-cassandra See gh-46104 --- .../additional-spring-configuration-metadata.json | 6 ------ ...ork.boot.autoconfigure.AutoConfiguration.imports | 2 -- .../spring-boot-cassandra/build.gradle | 2 +- ...CassandraHealthContributorAutoConfiguration.java | 13 +++++++------ .../CassandraHealthContributorConfigurations.java | 2 +- ...aReactiveHealthContributorAutoConfiguration.java | 10 ++++++---- .../actuate/health/autoconfigure}/package-info.java | 2 +- .../additional-spring-configuration-metadata.json | 6 ++++++ ...ork.boot.autoconfigure.AutoConfiguration.imports | 2 ++ ...ndraHealthContributorAutoConfigurationTests.java | 2 +- ...tiveHealthContributorAutoConfigurationTests.java | 2 +- 11 files changed, 26 insertions(+), 23 deletions(-) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/CassandraHealthContributorAutoConfiguration.java (75%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/CassandraHealthContributorConfigurations.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/CassandraReactiveHealthContributorAutoConfiguration.java (78%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/package-info.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/CassandraHealthContributorAutoConfigurationTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra => spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure}/CassandraReactiveHealthContributorAutoConfigurationTests.java (97%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 55f498b4202..1a4b81577f6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -41,12 +41,6 @@ "level": "error" } }, - { - "name": "management.health.cassandra.enabled", - "type": "java.lang.Boolean", - "description": "Whether to enable Cassandra health check.", - "defaultValue": true - }, { "name": "management.health.couchbase.enabled", "type": "java.lang.Boolean", 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 a6f022db8ac..668b1b17cef 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 @@ -4,8 +4,6 @@ org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthCo org.springframework.boot.actuate.autoconfigure.availability.AvailabilityProbesAutoConfiguration org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration -org.springframework.boot.actuate.autoconfigure.cassandra.CassandraHealthContributorAutoConfiguration -org.springframework.boot.actuate.autoconfigure.cassandra.CassandraReactiveHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.ReactiveCloudFoundryActuatorAutoConfiguration org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryActuatorAutoConfiguration org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration diff --git a/spring-boot-project/spring-boot-cassandra/build.gradle b/spring-boot-project/spring-boot-cassandra/build.gradle index b5b1f109fd5..9891a08524d 100644 --- a/spring-boot-project/spring-boot-cassandra/build.gradle +++ b/spring-boot-project/spring-boot-cassandra/build.gradle @@ -30,7 +30,7 @@ dependencies { api(project(":spring-boot-project:spring-boot")) api("org.apache.cassandra:java-driver-core") - 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") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfiguration.java similarity index 75% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfiguration.java index e68fcde47a2..ae852db71d1 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfiguration.java @@ -14,16 +14,17 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; import com.datastax.oss.driver.api.core.CqlSession; -import org.springframework.boot.actuate.autoconfigure.cassandra.CassandraHealthContributorConfigurations.CassandraDriverConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.cassandra.actuate.health.CassandraDriverHealthIndicator; +import org.springframework.boot.cassandra.actuate.health.autoconfigure.CassandraHealthContributorConfigurations.CassandraDriverConfiguration; +import org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration; import org.springframework.context.annotation.Import; /** @@ -34,10 +35,10 @@ import org.springframework.context.annotation.Import; * @author Stephane Nicoll * @since 2.1.0 */ -@AutoConfiguration(afterName = { - "org.springframework.boot.actuate.autoconfigure.cassandra.CassandraReactiveHealthContributorAutoConfiguration", - "org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration" }) -@ConditionalOnClass({ CqlSession.class, CassandraDriverHealthIndicator.class }) +@AutoConfiguration( + after = { CassandraReactiveHealthContributorAutoConfiguration.class, CassandraAutoConfiguration.class }) +@ConditionalOnClass({ CqlSession.class, CassandraDriverHealthIndicator.class, + ConditionalOnEnabledHealthIndicator.class }) @ConditionalOnEnabledHealthIndicator("cassandra") @Import(CassandraDriverConfiguration.class) public class CassandraHealthContributorAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorConfigurations.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorConfigurations.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorConfigurations.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorConfigurations.java index 85f953cd943..5994d15d543 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorConfigurations.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorConfigurations.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; import java.util.Map; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfiguration.java similarity index 78% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfiguration.java index 597c20c4360..5e1990923bb 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfiguration.java @@ -14,17 +14,18 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; import com.datastax.oss.driver.api.core.CqlSession; import reactor.core.publisher.Flux; -import org.springframework.boot.actuate.autoconfigure.cassandra.CassandraHealthContributorConfigurations.CassandraReactiveDriverConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.cassandra.actuate.health.CassandraDriverReactiveHealthIndicator; +import org.springframework.boot.cassandra.actuate.health.autoconfigure.CassandraHealthContributorConfigurations.CassandraReactiveDriverConfiguration; +import org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration; import org.springframework.context.annotation.Import; /** @@ -35,8 +36,9 @@ import org.springframework.context.annotation.Import; * @author Stephane Nicoll * @since 2.1.0 */ -@AutoConfiguration(afterName = "org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration") -@ConditionalOnClass({ CqlSession.class, Flux.class, CassandraDriverReactiveHealthIndicator.class }) +@AutoConfiguration(after = CassandraAutoConfiguration.class) +@ConditionalOnClass({ CqlSession.class, Flux.class, CassandraDriverReactiveHealthIndicator.class, + ConditionalOnEnabledHealthIndicator.class }) @ConditionalOnEnabledHealthIndicator("cassandra") @Import(CassandraReactiveDriverConfiguration.class) public class CassandraReactiveHealthContributorAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/package-info.java b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/package-info.java rename to spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/package-info.java index fac792018c5..957e02def52 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/package-info.java +++ b/spring-boot-project/spring-boot-cassandra/src/main/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for actuator Cassandra concerns. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; diff --git a/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 1089d1faaf8..aa96aa44b32 100644 --- a/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,6 +1,12 @@ { "groups": [], "properties": [ + { + "name": "management.health.cassandra.enabled", + "type": "java.lang.Boolean", + "description": "Whether to enable Cassandra health check.", + "defaultValue": true + }, { "name": "spring.cassandra.compression", "defaultValue": "none" diff --git a/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index ec0dfc933ea..fe5ec4b37e2 100644 --- a/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,3 @@ +org.springframework.boot.cassandra.actuate.health.autoconfigure.CassandraHealthContributorAutoConfiguration +org.springframework.boot.cassandra.actuate.health.autoconfigure.CassandraReactiveHealthContributorAutoConfiguration org.springframework.boot.cassandra.autoconfigure.CassandraAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfigurationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfigurationTests.java index 42282cb0170..a129753e0c0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraHealthContributorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; import com.datastax.oss.driver.api.core.CqlSession; 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/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfigurationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfigurationTests.java index 789b0c5dd2e..aa4da6392e1 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-cassandra/src/test/java/org/springframework/boot/cassandra/actuate/health/autoconfigure/CassandraReactiveHealthContributorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cassandra; +package org.springframework.boot.cassandra.actuate.health.autoconfigure; import com.datastax.oss.driver.api.core.CqlSession; import org.junit.jupiter.api.Test;