From ec48e45c6250f93c2a052b41810bd39e94d672bd Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 19 May 2025 08:05:00 +0100 Subject: [PATCH] Move LDAP health auto-configuration into spring-boot-ldap --- .../build.gradle | 2 -- .../additional-spring-configuration-metadata.json | 6 ------ ...mework.boot.autoconfigure.AutoConfiguration.imports | 1 - spring-boot-project/spring-boot-ldap/build.gradle | 2 +- .../LdapHealthContributorAutoConfiguration.java | 7 ++++--- .../actuate/health/autoconfigure}/package-info.java | 4 ++-- .../additional-spring-configuration-metadata.json | 10 ++++++++++ ...mework.boot.autoconfigure.AutoConfiguration.imports | 1 + .../LdapHealthContributorAutoConfigurationTests.java | 2 +- 9 files changed, 19 insertions(+), 16 deletions(-) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap => spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure}/LdapHealthContributorAutoConfiguration.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap => spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure}/package-info.java (84%) create mode 100644 spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/additional-spring-configuration-metadata.json rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap => spring-boot-ldap/src/test/java/org/springframework/boot/ldap/actuate/health/autoconfigure}/LdapHealthContributorAutoConfigurationTests.java (96%) 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 3f032a43b8..2d095a5500 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -44,7 +44,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-jetty")) optional(project(":spring-boot-project:spring-boot-jsonb")) optional(project(":spring-boot-project:spring-boot-kafka")) - optional(project(":spring-boot-project:spring-boot-ldap")) optional(project(":spring-boot-project:spring-boot-liquibase")) optional(project(":spring-boot-project:spring-boot-mail")) optional(project(":spring-boot-project:spring-boot-mongodb")) @@ -148,7 +147,6 @@ dependencies { optional("org.springframework.batch:spring-batch-core") optional("org.springframework.data:spring-data-couchbase") optional("org.springframework.data:spring-data-jpa") - optional("org.springframework.data:spring-data-ldap") optional("org.springframework.data:spring-data-mongodb") optional("org.springframework.data:spring-data-redis") optional("org.springframework.graphql:spring-graphql") 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 119f093c8e..81f315e7fd 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 @@ -59,12 +59,6 @@ "description": "Whether to enable InfluxDB health check.", "defaultValue": true }, - { - "name": "management.health.ldap.enabled", - "type": "java.lang.Boolean", - "description": "Whether to enable LDAP health check.", - "defaultValue": true - }, { "name": "management.health.livenessstate.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 89b3080275..71919d35ba 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 @@ -16,7 +16,6 @@ org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointA org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.integration.IntegrationGraphEndpointAutoConfiguration -org.springframework.boot.actuate.autoconfigure.ldap.LdapHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.liquibase.LiquibaseEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration diff --git a/spring-boot-project/spring-boot-ldap/build.gradle b/spring-boot-project/spring-boot-ldap/build.gradle index ce9d2f1bb8..51f9018306 100644 --- a/spring-boot-project/spring-boot-ldap/build.gradle +++ b/spring-boot-project/spring-boot-ldap/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("com.unboundid:unboundid-ldapsdk") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfiguration.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java rename to spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfiguration.java index 9c09cb3692..ff64eba8cc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.ldap; +package org.springframework.boot.ldap.actuate.health.autoconfigure; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; @@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.ldap.actuate.health.LdapHealthIndicator; +import org.springframework.boot.ldap.autoconfigure.LdapAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.ldap.core.LdapOperations; @@ -36,8 +37,8 @@ import org.springframework.ldap.core.LdapOperations; * @author Stephane Nicoll * @since 2.0.0 */ -@AutoConfiguration(afterName = "org.springframework.boot.ldap.autoconfigure.LdapAutoConfiguration") -@ConditionalOnClass({ LdapOperations.class, LdapHealthIndicator.class }) +@AutoConfiguration(after = LdapAutoConfiguration.class) +@ConditionalOnClass({ LdapOperations.class, LdapHealthIndicator.class, ConditionalOnEnabledHealthIndicator.class }) @ConditionalOnBean(LdapOperations.class) @ConditionalOnEnabledHealthIndicator("ldap") public class LdapHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/package-info.java b/spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/package-info.java similarity index 84% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/package-info.java rename to spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/package-info.java index cef2b9aa80..3822c90861 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/package-info.java +++ b/spring-boot-project/spring-boot-ldap/src/main/java/org/springframework/boot/ldap/actuate/health/autoconfigure/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for actuator LDAP concerns. + * Auto-configuration for LDAP health integration. */ -package org.springframework.boot.actuate.autoconfigure.ldap; +package org.springframework.boot.ldap.actuate.health.autoconfigure; diff --git a/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/additional-spring-configuration-metadata.json new file mode 100644 index 0000000000..eb1fc2a1db --- /dev/null +++ b/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/additional-spring-configuration-metadata.json @@ -0,0 +1,10 @@ +{ + "properties": [ + { + "name": "management.health.ldap.enabled", + "type": "java.lang.Boolean", + "description": "Whether to enable LDAP health check.", + "defaultValue": true + } + ] +} \ No newline at end of file diff --git a/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 27809d3b39..29f9080a99 100644 --- a/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-ldap/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ +org.springframework.boot.ldap.actuate.health.autoconfigure.LdapHealthContributorAutoConfiguration org.springframework.boot.ldap.autoconfigure.LdapAutoConfiguration org.springframework.boot.ldap.autoconfigure.embedded.EmbeddedLdapAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfigurationTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfigurationTests.java index 79fb516d67..abe763d0df 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-ldap/src/test/java/org/springframework/boot/ldap/actuate/health/autoconfigure/LdapHealthContributorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.ldap; +package org.springframework.boot.ldap.actuate.health.autoconfigure; import org.junit.jupiter.api.Test;