From bb79cde964eb21acdf1bc1ca43d4bcbc33a01902 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 19 May 2025 09:04:19 +0100 Subject: [PATCH] Move mail health auto-configuration into spring-boot-mail Closes gh-46079 --- .../spring-boot-actuator-autoconfigure-all/build.gradle | 2 -- .../META-INF/additional-spring-configuration-metadata.json | 6 ------ ...ngframework.boot.autoconfigure.AutoConfiguration.imports | 1 - spring-boot-project/spring-boot-mail/build.gradle | 2 +- .../MailHealthContributorAutoConfiguration.java | 6 +++--- .../mail/actuate/health/autoconfigure}/package-info.java | 4 ++-- .../META-INF/additional-spring-configuration-metadata.json | 6 ++++++ ...ngframework.boot.autoconfigure.AutoConfiguration.imports | 3 ++- .../MailHealthContributorAutoConfigurationTests.java | 2 +- 9 files changed, 15 insertions(+), 17 deletions(-) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail => spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure}/MailHealthContributorAutoConfiguration.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail => spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure}/package-info.java (83%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/mail => spring-boot-mail/src/test/java/org/springframework/boot/mail/actuate/health/autoconfigure}/MailHealthContributorAutoConfigurationTests.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 fdb7891af59..f68ade95281 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -61,7 +61,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-mail")) optional(project(":spring-boot-project:spring-boot-mongodb")) optional(project(":spring-boot-project:spring-boot-quartz")) optional(project(":spring-boot-project:spring-boot-r2dbc")) @@ -137,7 +136,6 @@ dependencies { optional("org.aspectj:aspectjweaver") optional("org.cache2k:cache2k-micrometer") optional("org.cache2k:cache2k-spring") - optional("org.eclipse.angus:angus-mail") optional("org.eclipse.jetty:jetty-server") { exclude group: "org.eclipse.jetty.toolchain", module: "jetty-jakarta-servlet-api" } 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 81f315e7fd8..2105ea72dda 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 @@ -65,12 +65,6 @@ "description": "Whether to enable liveness state health check.", "defaultValue": false }, - { - "name": "management.health.mail.enabled", - "type": "java.lang.Boolean", - "description": "Whether to enable Mail health check.", - "defaultValue": true - }, { "name": "management.health.mongo.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 0d5699d3a3c..5cded2ac697 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 @@ -20,7 +20,6 @@ org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoCon org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration org.springframework.boot.actuate.autoconfigure.logging.otlp.OtlpLoggingAutoConfiguration -org.springframework.boot.actuate.autoconfigure.mail.MailHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.amqp.RabbitMetricsAutoConfiguration diff --git a/spring-boot-project/spring-boot-mail/build.gradle b/spring-boot-project/spring-boot-mail/build.gradle index eec3d602c53..cac453cb1bc 100644 --- a/spring-boot-project/spring-boot-mail/build.gradle +++ b/spring-boot-project/spring-boot-mail/build.gradle @@ -33,7 +33,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")) dockerTestImplementation(project(":spring-boot-project:spring-boot-test")) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfiguration.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java rename to spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfiguration.java index 3af754792a7..df02e444e02 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.mail; +package org.springframework.boot.mail.actuate.health.autoconfigure; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; @@ -34,10 +34,10 @@ import org.springframework.mail.javamail.JavaMailSenderImpl; * {@link EnableAutoConfiguration Auto-configuration} for {@link MailHealthIndicator}. * * @author Johannes Edmeier - * @since 2.0.0 + * @since 4.0.0 */ @AutoConfiguration(after = MailSenderAutoConfiguration.class) -@ConditionalOnClass({ JavaMailSenderImpl.class, MailHealthIndicator.class }) +@ConditionalOnClass({ JavaMailSenderImpl.class, MailHealthIndicator.class, ConditionalOnEnabledHealthIndicator.class }) @ConditionalOnBean(JavaMailSenderImpl.class) @ConditionalOnEnabledHealthIndicator("mail") public class MailHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/package-info.java b/spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/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/mail/package-info.java rename to spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure/package-info.java index 8bca08d48e5..6ee367c6edd 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/package-info.java +++ b/spring-boot-project/spring-boot-mail/src/main/java/org/springframework/boot/mail/actuate/health/autoconfigure/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for actuator JavaMail concerns. + * Auto-configuration for JavaMail health integration. */ -package org.springframework.boot.actuate.autoconfigure.mail; +package org.springframework.boot.mail.actuate.health.autoconfigure; diff --git a/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/additional-spring-configuration-metadata.json index afaa4a442a1..1a0de547c5e 100644 --- a/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,6 +1,12 @@ { "groups": [], "properties": [ + { + "name": "management.health.mail.enabled", + "type": "java.lang.Boolean", + "description": "Whether to enable Mail health check.", + "defaultValue": true + }, { "name": "spring.mail.test-connection", "description": "Whether to test that the mail server is available on startup.", diff --git a/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 2fc32ec4686..3118270574f 100644 --- a/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ +org.springframework.boot.mail.actuate.health.autoconfigure.MailHealthContributorAutoConfiguration org.springframework.boot.mail.autoconfigure.MailSenderAutoConfiguration -org.springframework.boot.mail.autoconfigure.MailSenderValidatorAutoConfiguration \ No newline at end of file +org.springframework.boot.mail.autoconfigure.MailSenderValidatorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-mail/src/test/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfigurationTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-mail/src/test/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfigurationTests.java index 77130a73760..3eabfd2855d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-mail/src/test/java/org/springframework/boot/mail/actuate/health/autoconfigure/MailHealthContributorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.mail; +package org.springframework.boot.mail.actuate.health.autoconfigure; import org.junit.jupiter.api.Test;