From b43827d6264a3eb4e9558c6e1dd7f89e537caa96 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 22 Aug 2019 14:50:10 +0100 Subject: [PATCH] Configure ping (formerly application) health indicator by default This commit renames ApplicationHealthIndicator to PingHealthIndicator and changes the auto-configuration so that it is now always configured by default. Closes gh-17926 --- ...bitHealthContributorAutoConfiguration.java | 3 -- ...draHealthContributorAutoConfiguration.java | 3 -- ...iveHealthContributorAutoConfiguration.java | 3 -- ...aseHealthContributorAutoConfiguration.java | 3 -- ...iveHealthContributorAutoConfiguration.java | 3 -- ...entHealthContributorAutoConfiguration.java | 3 -- ...estHealthContributorAutoConfiguration.java | 3 -- ...estHealthContributorAutoConfiguration.java | 3 -- ...astHealthContributorAutoConfiguration.java | 3 -- .../HealthContributorAutoConfiguration.java | 13 +++---- .../HealthEndpointAutoConfiguration.java | 2 -- .../HealthIndicatorAutoConfiguration.java | 2 -- ...xDbHealthContributorAutoConfiguration.java | 3 -- ...rceHealthContributorAutoConfiguration.java | 3 -- ...JmsHealthContributorAutoConfiguration.java | 3 -- ...dapHealthContributorAutoConfiguration.java | 3 -- ...ailHealthContributorAutoConfiguration.java | 3 -- ...ngoHealthContributorAutoConfiguration.java | 3 -- ...iveHealthContributorAutoConfiguration.java | 3 -- ...o4jHealthContributorAutoConfiguration.java | 3 -- ...disHealthContributorAutoConfiguration.java | 3 -- ...iveHealthContributorAutoConfiguration.java | 3 -- ...olrHealthContributorAutoConfiguration.java | 3 -- ...itional-spring-configuration-metadata.json | 6 ++++ ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 6 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 6 ++-- ...althContributorAutoConfigurationTests.java | 10 ++---- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 25 +++++++------ .../HealthEndpointAutoConfigurationTests.java | 4 +-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 10 ++---- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 5 ++- ...althContributorAutoConfigurationTests.java | 8 ++--- ...althContributorAutoConfigurationTests.java | 6 ++-- ...althContributorAutoConfigurationTests.java | 5 ++- ...althContributorAutoConfigurationTests.java | 7 ++-- ...althContributorAutoConfigurationTests.java | 7 ++-- .../health/ApplicationHealthIndicator.java | 2 ++ .../boot/actuate/health/HealthIndicator.java | 1 - .../actuate/health/PingHealthIndicator.java | 34 ++++++++++++++++++ .../ApplicationHealthIndicatorTests.java | 1 + .../health/PingHealthIndicatorTests.java | 36 +++++++++++++++++++ .../asciidoc/production-ready-features.adoc | 3 ++ 51 files changed, 141 insertions(+), 181 deletions(-) create mode 100644 spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/PingHealthIndicator.java create mode 100644 spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/PingHealthIndicatorTests.java diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfiguration.java index e759c7e9758..96758ea65fd 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfiguration.java @@ -22,10 +22,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.boot.actuate.amqp.RabbitHealthIndicator; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -44,7 +42,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(RabbitTemplate.class) @ConditionalOnBean(RabbitTemplate.class) @ConditionalOnEnabledHealthIndicator("rabbit") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(RabbitAutoConfiguration.class) public class RabbitHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java index e5f93c096ab..9e035ebf7d6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import com.datastax.driver.core.Cluster; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.cassandra.CassandraHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -49,7 +47,6 @@ import org.springframework.data.cassandra.core.CassandraOperations; @ConditionalOnClass({ Cluster.class, CassandraOperations.class }) @ConditionalOnBean(CassandraOperations.class) @ConditionalOnEnabledHealthIndicator("cassandra") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class }) public class CassandraHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java index d357c68549c..39123a04915 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import reactor.core.publisher.Flux; import org.springframework.boot.actuate.autoconfigure.health.CompositeReactiveHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.cassandra.CassandraReactiveHealthIndicator; import org.springframework.boot.actuate.health.ReactiveHealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -48,7 +46,6 @@ import org.springframework.data.cassandra.core.ReactiveCassandraOperations; @ConditionalOnClass({ Cluster.class, ReactiveCassandraOperations.class, Flux.class }) @ConditionalOnBean(ReactiveCassandraOperations.class) @ConditionalOnEnabledHealthIndicator("cassandra") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(CassandraReactiveDataAutoConfiguration.class) public class CassandraReactiveHealthContributorAutoConfiguration extends CompositeReactiveHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfiguration.java index f5b74c6eaa8..8965a1a08d8 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfiguration.java @@ -21,11 +21,9 @@ import com.couchbase.client.java.Cluster; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.couchbase.CouchbaseHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,7 +45,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(Cluster.class) @ConditionalOnBean(Cluster.class) @ConditionalOnEnabledHealthIndicator("couchbase") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ CouchbaseAutoConfiguration.class }) public class CouchbaseHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfiguration.java index f858f7587a6..7770ef70068 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import reactor.core.publisher.Flux; import org.springframework.boot.actuate.autoconfigure.health.CompositeReactiveHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.couchbase.CouchbaseReactiveHealthIndicator; import org.springframework.boot.actuate.health.ReactiveHealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,7 +45,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass({ Cluster.class, Flux.class }) @ConditionalOnBean(Cluster.class) @ConditionalOnEnabledHealthIndicator("couchbase") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(CouchbaseAutoConfiguration.class) public class CouchbaseReactiveHealthContributorAutoConfiguration extends CompositeReactiveHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchClientHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchClientHealthContributorAutoConfiguration.java index 46b7948a3b3..8778925eab3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchClientHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchClientHealthContributorAutoConfiguration.java @@ -23,11 +23,9 @@ import org.elasticsearch.client.Client; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.elasticsearch.ElasticsearchHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -50,7 +48,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(Client.class) @ConditionalOnBean(Client.class) @ConditionalOnEnabledHealthIndicator("elasticsearch") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(ElasticsearchAutoConfiguration.class) @EnableConfigurationProperties(ElasticsearchHealthIndicatorProperties.class) @Deprecated diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchJestHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchJestHealthContributorAutoConfiguration.java index 144ea4b8566..62aa0a9e9f3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchJestHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchJestHealthContributorAutoConfiguration.java @@ -22,12 +22,10 @@ import io.searchbox.client.JestClient; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.elasticsearch.ElasticsearchHealthIndicator; import org.springframework.boot.actuate.elasticsearch.ElasticsearchJestHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,7 +45,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(JestClient.class) @ConditionalOnBean(JestClient.class) @ConditionalOnEnabledHealthIndicator("elasticsearch") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ JestAutoConfiguration.class, ElasticSearchClientHealthContributorAutoConfiguration.class }) @Deprecated public class ElasticSearchJestHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchRestHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchRestHealthContributorAutoConfiguration.java index 9a44bdb196e..2ce57ad27a7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchRestHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchRestHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import org.elasticsearch.client.RestClient; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.elasticsearch.ElasticsearchRestHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -46,7 +44,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(RestClient.class) @ConditionalOnBean(RestClient.class) @ConditionalOnEnabledHealthIndicator("elasticsearch") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ RestClientAutoConfiguration.class, ElasticSearchClientHealthContributorAutoConfiguration.class }) @SuppressWarnings("deprecation") public class ElasticSearchRestHealthContributorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java index fb0db1855d6..c94d82ed3c0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import com.hazelcast.core.HazelcastInstance; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.hazelcast.HazelcastHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -46,7 +44,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(HazelcastInstance.class) @ConditionalOnBean(HazelcastInstance.class) @ConditionalOnEnabledHealthIndicator("hazelcast") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(HazelcastAutoConfiguration.class) public class HazelcastHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.java index a1e91c5c1f6..41a93b5f4e4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.java @@ -16,18 +16,15 @@ package org.springframework.boot.actuate.autoconfigure.health; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.health.HealthContributor; -import org.springframework.boot.actuate.health.ReactiveHealthContributor; +import org.springframework.boot.actuate.health.PingHealthIndicator; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * {@link EnableAutoConfiguration Auto-configuration} for {@link HealthContributor health - * contributors}. Technology specific auto-configurations should be ordered before this - * auto-configuration. + * contributors}. * * @author Phillip Webb * @since 2.2.0 @@ -36,9 +33,9 @@ import org.springframework.context.annotation.Configuration; public class HealthContributorAutoConfiguration { @Bean - @ConditionalOnMissingBean({ HealthContributor.class, ReactiveHealthContributor.class }) - public ApplicationHealthIndicator applicationHealthContributor() { - return new ApplicationHealthIndicator(); + @ConditionalOnEnabledHealthIndicator("ping") + public PingHealthIndicator pingHealthContributor() { + return new PingHealthIndicator(); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfiguration.java index 46503375c2d..eb208fae175 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfiguration.java @@ -18,7 +18,6 @@ package org.springframework.boot.actuate.autoconfigure.health; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.health.HealthEndpoint; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Configuration; @@ -34,7 +33,6 @@ import org.springframework.context.annotation.Import; */ @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(HealthEndpointProperties.class) -@AutoConfigureAfter(HealthContributorAutoConfiguration.class) @ConditionalOnAvailableEndpoint(endpoint = HealthEndpoint.class) @Import({ LegacyHealthEndpointAdaptersConfiguration.class, LegacyHealthEndpointCompatibiltyConfiguration.class, HealthEndpointConfiguration.class, ReactiveHealthEndpointConfiguration.class, diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthIndicatorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthIndicatorAutoConfiguration.java index 3861fd00545..d6ef2959aae 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthIndicatorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthIndicatorAutoConfiguration.java @@ -17,7 +17,6 @@ package org.springframework.boot.actuate.autoconfigure.health; import org.springframework.boot.actuate.health.HealthContributor; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; @@ -34,7 +33,6 @@ import org.springframework.context.annotation.Configuration; */ @Deprecated @Configuration(proxyBeanMethods = false) -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) public class HealthIndicatorAutoConfiguration { } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfiguration.java index ea06834a25e..55749768fdc 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import org.influxdb.InfluxDB; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.influx.InfluxDbHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -45,7 +43,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(InfluxDB.class) @ConditionalOnBean(InfluxDB.class) @ConditionalOnEnabledHealthIndicator("influxdb") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(InfluxDbAutoConfiguration.class) public class InfluxDbHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfiguration.java index 402692e53e0..5446614b529 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfiguration.java @@ -27,11 +27,9 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -60,7 +58,6 @@ import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; @ConditionalOnClass({ JdbcTemplate.class, AbstractRoutingDataSource.class }) @ConditionalOnBean(DataSource.class) @ConditionalOnEnabledHealthIndicator("db") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(DataSourceAutoConfiguration.class) public class DataSourceHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration implements InitializingBean { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java index 47220d00a35..cb77db5ae15 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import javax.jms.ConnectionFactory; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.jms.JmsHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -46,7 +44,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(ConnectionFactory.class) @ConditionalOnBean(ConnectionFactory.class) @ConditionalOnEnabledHealthIndicator("jms") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ ActiveMQAutoConfiguration.class, ArtemisAutoConfiguration.class }) public class JmsHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java index 565badfe8b9..41699209491 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfiguration.java @@ -20,11 +20,9 @@ import java.util.Map; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.ldap.LdapHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -45,7 +43,6 @@ import org.springframework.ldap.core.LdapOperations; @ConditionalOnClass(LdapOperations.class) @ConditionalOnBean(LdapOperations.class) @ConditionalOnEnabledHealthIndicator("ldap") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(LdapAutoConfiguration.class) public class LdapHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java index 99803093e67..5c16656592d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfiguration.java @@ -20,11 +20,9 @@ import java.util.Map; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.mail.MailHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -44,7 +42,6 @@ import org.springframework.mail.javamail.JavaMailSenderImpl; @ConditionalOnClass(JavaMailSenderImpl.class) @ConditionalOnBean(JavaMailSenderImpl.class) @ConditionalOnEnabledHealthIndicator("mail") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(MailSenderAutoConfiguration.class) public class MailHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfiguration.java index 7817285969d..3bea0b712db 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfiguration.java @@ -20,11 +20,9 @@ import java.util.Map; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.mongo.MongoHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -45,7 +43,6 @@ import org.springframework.data.mongodb.core.MongoTemplate; @ConditionalOnClass(MongoTemplate.class) @ConditionalOnBean(MongoTemplate.class) @ConditionalOnEnabledHealthIndicator("mongo") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter({ MongoAutoConfiguration.class, MongoDataAutoConfiguration.class }) public class MongoHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfiguration.java index cc44ef406ab..3177a80eac6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import reactor.core.publisher.Flux; import org.springframework.boot.actuate.autoconfigure.health.CompositeReactiveHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.ReactiveHealthContributor; import org.springframework.boot.actuate.mongo.MongoReactiveHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,7 +45,6 @@ import org.springframework.data.mongodb.core.ReactiveMongoTemplate; @ConditionalOnClass({ ReactiveMongoTemplate.class, Flux.class }) @ConditionalOnBean(ReactiveMongoTemplate.class) @ConditionalOnEnabledHealthIndicator("mongo") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(MongoReactiveDataAutoConfiguration.class) public class MongoReactiveHealthContributorAutoConfiguration extends CompositeReactiveHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfiguration.java index 4800d2498be..9f24c18323b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import org.neo4j.ogm.session.SessionFactory; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.neo4j.Neo4jHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -46,7 +44,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(SessionFactory.class) @ConditionalOnBean(SessionFactory.class) @ConditionalOnEnabledHealthIndicator("neo4j") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(Neo4jDataAutoConfiguration.class) public class Neo4jHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfiguration.java index 9cb318d075a..6ddd4863eff 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfiguration.java @@ -20,11 +20,9 @@ import java.util.Map; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.redis.RedisHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -47,7 +45,6 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; @ConditionalOnClass(RedisConnectionFactory.class) @ConditionalOnBean(RedisConnectionFactory.class) @ConditionalOnEnabledHealthIndicator("redis") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(RedisAutoConfiguration.class) public class RedisHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfiguration.java index fc5ba3d07fb..ec588879254 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import reactor.core.publisher.Flux; import org.springframework.boot.actuate.autoconfigure.health.CompositeReactiveHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.ReactiveHealthContributor; import org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -50,7 +48,6 @@ import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; @ConditionalOnClass({ ReactiveRedisConnectionFactory.class, Flux.class }) @ConditionalOnBean(ReactiveRedisConnectionFactory.class) @ConditionalOnEnabledHealthIndicator("redis") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(RedisReactiveAutoConfiguration.class) public class RedisReactiveHealthContributorAutoConfiguration extends CompositeReactiveHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfiguration.java index 4fb79c972e0..682536ec5c6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfiguration.java @@ -22,11 +22,9 @@ import org.apache.solr.client.solrj.SolrClient; import org.springframework.boot.actuate.autoconfigure.health.CompositeHealthContributorConfiguration; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; -import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.HealthContributor; import org.springframework.boot.actuate.solr.SolrHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -46,7 +44,6 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnClass(SolrClient.class) @ConditionalOnBean(SolrClient.class) @ConditionalOnEnabledHealthIndicator("solr") -@AutoConfigureBefore(HealthContributorAutoConfiguration.class) @AutoConfigureAfter(SolrAutoConfiguration.class) public class SolrHealthContributorAutoConfiguration extends CompositeHealthContributorConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 4c34bb09c5b..b991dbf9d90 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -131,6 +131,12 @@ "description": "Whether to enable MongoDB health check.", "defaultValue": true }, + { + "name": "management.health.ping.enabled", + "type": "java.lang.Boolean", + "description": "Whether to enable ping health check.", + "defaultValue": true + }, { "name": "management.health.rabbit.enabled", "type": "java.lang.Boolean", diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfigurationTests.java index 6246d1e1eb3..25ddb2d9eea 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/amqp/RabbitHealthContributorAutoConfigurationTests.java @@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.amqp.RabbitHealthIndicator; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -40,15 +39,13 @@ class RabbitHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(RabbitHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(RabbitHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.rabbit.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(RabbitHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(RabbitHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java index 5de58ef8ac6..65baa9377b6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraHealthContributorAutoConfigurationTests.java @@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.cassandra.CassandraHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -44,15 +43,13 @@ class CassandraHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(CassandraHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(CassandraHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.cassandra.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(CassandraHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(CassandraHealthIndicator.class)); } @Configuration(proxyBeanMethods = false) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java index 4a405b8a181..081048afcd7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cassandra/CassandraReactiveHealthContributorAutoConfigurationTests.java @@ -21,7 +21,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.cassandra.CassandraHealthIndicator; import org.springframework.boot.actuate.cassandra.CassandraReactiveHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.data.cassandra.core.ReactiveCassandraOperations; @@ -45,14 +44,13 @@ class CassandraReactiveHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { this.contextRunner.run((context) -> assertThat(context).hasSingleBean(CassandraReactiveHealthIndicator.class) - .doesNotHaveBean(CassandraHealthIndicator.class).doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(CassandraHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.cassandra.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(CassandraReactiveHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(CassandraReactiveHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfigurationTests.java index 99bbd96431e..41c02fabed6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseHealthContributorAutoConfigurationTests.java @@ -21,7 +21,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.couchbase.CouchbaseHealthIndicator; import org.springframework.boot.actuate.couchbase.CouchbaseReactiveHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -43,15 +42,13 @@ class CouchbaseHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { this.contextRunner.run((context) -> assertThat(context).hasSingleBean(CouchbaseHealthIndicator.class) - .doesNotHaveBean(CouchbaseReactiveHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(CouchbaseReactiveHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.couchbase.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(CouchbaseHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(CouchbaseHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfigurationTests.java index ecc15452b5d..f433176235e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/couchbase/CouchbaseReactiveHealthContributorAutoConfigurationTests.java @@ -22,7 +22,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.couchbase.CouchbaseHealthIndicator; import org.springframework.boot.actuate.couchbase.CouchbaseReactiveHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -44,14 +43,13 @@ class CouchbaseReactiveHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { this.contextRunner.run((context) -> assertThat(context).hasSingleBean(CouchbaseReactiveHealthIndicator.class) - .doesNotHaveBean(CouchbaseHealthIndicator.class).doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(CouchbaseHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.couchbase.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(CouchbaseReactiveHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(CouchbaseReactiveHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticsearchHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticsearchHealthContributorAutoConfigurationTests.java index acbc9f00260..d7b7176c9a1 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticsearchHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticsearchHealthContributorAutoConfigurationTests.java @@ -22,7 +22,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.elasticsearch.ElasticsearchHealthIndicator; import org.springframework.boot.actuate.elasticsearch.ElasticsearchJestHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -49,8 +48,7 @@ class ElasticsearchHealthContributorAutoConfigurationTests { this.contextRunner.withPropertyValues("spring.data.elasticsearch.cluster-nodes:localhost:0") .withSystemProperties("es.set.netty.runtime.available.processors=false") .run((context) -> assertThat(context).hasSingleBean(ElasticsearchHealthIndicator.class) - .doesNotHaveBean(ElasticsearchJestHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(ElasticsearchJestHealthIndicator.class)); } @Test @@ -58,16 +56,14 @@ class ElasticsearchHealthContributorAutoConfigurationTests { this.contextRunner.withBean(JestClient.class, () -> mock(JestClient.class)) .withSystemProperties("es.set.netty.runtime.available.processors=false") .run((context) -> assertThat(context).hasSingleBean(ElasticsearchJestHealthIndicator.class) - .doesNotHaveBean(ElasticsearchHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(ElasticsearchHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.elasticsearch.enabled:false") .run((context) -> assertThat(context).doesNotHaveBean(ElasticsearchHealthIndicator.class) - .doesNotHaveBean(ElasticsearchJestHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(ElasticsearchJestHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java index 80279886b09..6f388a830b9 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/hazelcast/HazelcastHealthContributorAutoConfigurationTests.java @@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.hazelcast.HazelcastHealthIndicator; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -40,15 +39,13 @@ class HazelcastHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(HazelcastHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(HazelcastHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.hazelcast.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(HazelcastHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(HazelcastHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfigurationTests.java index 041c552dbcc..88d4f391480 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfigurationTests.java @@ -18,9 +18,9 @@ package org.springframework.boot.actuate.autoconfigure.health; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.health.Health; import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.boot.actuate.health.PingHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; @@ -40,32 +40,31 @@ class HealthContributorAutoConfigurationTests { .withConfiguration(AutoConfigurations.of(HealthContributorAutoConfiguration.class)); @Test - void runWhenNoOtherIndicatorsCreatesDefaultApplicationHealthIndicator() { + void runWhenNoOtherIndicatorsCreatesPingHealthIndicator() { this.contextRunner.run((context) -> assertThat(context).getBean(HealthIndicator.class) - .isInstanceOf(ApplicationHealthIndicator.class)); + .isInstanceOf(PingHealthIndicator.class)); } @Test - void runWhenHasDefinedIndicatorDoesNotCreateDefaultApplicationHealthIndicator() { + void runWhenHasDefinedIndicatorCreatesPingHealthIndicator() { this.contextRunner.withUserConfiguration(CustomHealthIndicatorConfiguration.class) - .run((context) -> assertThat(context).getBean(HealthIndicator.class) - .isInstanceOf(CustomHealthIndicator.class)); + .run((context) -> assertThat(context).hasSingleBean(PingHealthIndicator.class) + .hasSingleBean(CustomHealthIndicator.class)); } @Test - void runWhenHasDefaultsDisabledAndNoSingleIndicatorEnabledCreatesDefaultApplicationHealthIndicator() { + void runWhenHasDefaultsDisabledDoesNotCreatePingHealthIndicator() { this.contextRunner.withUserConfiguration(CustomHealthIndicatorConfiguration.class) - .withPropertyValues("management.health.defaults.enabled:false").run((context) -> assertThat(context) - .getBean(HealthIndicator.class).isInstanceOf(ApplicationHealthIndicator.class)); + .withPropertyValues("management.health.defaults.enabled:false") + .run((context) -> assertThat(context).doesNotHaveBean(HealthIndicator.class)); } @Test - void runWhenHasDefaultsDisabledAndSingleIndicatorEnabledDoesNotCreateEnabledIndicator() { + void runWhenHasDefaultsDisabledAndPingIndicatorEnabledCreatesPingHealthIndicator() { this.contextRunner.withUserConfiguration(CustomHealthIndicatorConfiguration.class) - .withPropertyValues("management.health.defaults.enabled:false", "management.health.custom.enabled:true") - .run((context) -> assertThat(context).getBean(HealthIndicator.class) - .isInstanceOf(CustomHealthIndicator.class)); + .withPropertyValues("management.health.defaults.enabled:false", "management.health.ping.enabled:true") + .run((context) -> assertThat(context).hasSingleBean(PingHealthIndicator.class)); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java index bc403737d2a..f70fad83bb5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java @@ -175,7 +175,7 @@ class HealthEndpointAutoConfigurationTests { this.contextRunner.run((context) -> { HealthContributorRegistry registry = context.getBean(HealthContributorRegistry.class); Object[] names = registry.stream().map(NamedContributor::getName).toArray(); - assertThat(names).containsExactlyInAnyOrder("simple", "additional"); + assertThat(names).containsExactlyInAnyOrder("simple", "additional", "ping"); }); } @@ -210,7 +210,7 @@ class HealthEndpointAutoConfigurationTests { this.reactiveContextRunner.run((context) -> { ReactiveHealthContributorRegistry registry = context.getBean(ReactiveHealthContributorRegistry.class); Object[] names = registry.stream().map(NamedContributor::getName).toArray(); - assertThat(names).containsExactlyInAnyOrder("simple", "additional", "reactive"); + assertThat(names).containsExactlyInAnyOrder("simple", "additional", "reactive", "ping"); }); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfigurationTests.java index f4361a3655e..755fd75322e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/influx/InfluxDbHealthContributorAutoConfigurationTests.java @@ -20,7 +20,6 @@ import org.influxdb.InfluxDB; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.influx.InfluxDbHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -41,15 +40,13 @@ class InfluxDbHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(InfluxDbHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(InfluxDbHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.influxdb.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(InfluxDbHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(InfluxDbHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfigurationTests.java index 9deda4af988..49ba404a1f4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jdbc/DataSourceHealthContributorAutoConfigurationTests.java @@ -21,9 +21,7 @@ import javax.sql.DataSource; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.health.CompositeHealthContributor; -import org.springframework.boot.actuate.health.HealthIndicator; import org.springframework.boot.actuate.health.NamedContributor; import org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -57,8 +55,7 @@ class DataSourceHealthContributorAutoConfigurationTests { void runShouldCreateIndicator() { this.contextRunner.run((context) -> { context.getBean(DataSourceHealthIndicator.class); - assertThat(context).hasSingleBean(DataSourceHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class); + assertThat(context).hasSingleBean(DataSourceHealthIndicator.class); }); } @@ -85,7 +82,7 @@ class DataSourceHealthContributorAutoConfigurationTests { this.contextRunner .withUserConfiguration(DataSourceConfig.class, DataSourcePoolMetadataProvidersConfiguration.class) .withPropertyValues("spring.datasource.test.validation-query:SELECT from FOOBAR").run((context) -> { - assertThat(context).hasSingleBean(HealthIndicator.class); + assertThat(context).hasSingleBean(DataSourceHealthIndicator.class); DataSourceHealthIndicator indicator = context.getBean(DataSourceHealthIndicator.class); assertThat(indicator.getQuery()).isEqualTo("SELECT from FOOBAR"); }); @@ -96,8 +93,7 @@ class DataSourceHealthContributorAutoConfigurationTests { this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class) .withPropertyValues("management.health.db.enabled:false") .run((context) -> assertThat(context).doesNotHaveBean(DataSourceHealthIndicator.class) - .doesNotHaveBean(CompositeHealthContributor.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(CompositeHealthContributor.class)); } @Configuration(proxyBeanMethods = false) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java index 16ee7266ebc..80cf99671d5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.jms; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.jms.JmsHealthIndicator; import org.springframework.boot.actuate.ldap.LdapHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -41,15 +40,13 @@ class JmsHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(JmsHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(JmsHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.jms.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(LdapHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(LdapHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java index 3689965665d..1166ac79dda 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/ldap/LdapHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.ldap; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.ldap.LdapHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -42,15 +41,13 @@ class LdapHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(LdapHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(LdapHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.ldap.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(LdapHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(LdapHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java index 9f6c56635f9..44e9f5b8bc3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mail/MailHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.mail; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.mail.MailHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration; @@ -41,15 +40,13 @@ class MailHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(MailHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(MailHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.mail.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(MailHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(MailHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfigurationTests.java index c2ffb5923f3..06f627d16e5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.mongo; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.mongo.MongoHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; @@ -41,15 +40,13 @@ class MongoHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(MongoHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(MongoHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.mongo.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(MongoHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(MongoHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfigurationTests.java index e91a072e7f0..116d68af489 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/mongo/MongoReactiveHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.mongo; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.mongo.MongoHealthIndicator; import org.springframework.boot.actuate.mongo.MongoReactiveHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -46,14 +45,14 @@ class MongoReactiveHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { this.contextRunner.run((context) -> assertThat(context).hasSingleBean(MongoReactiveHealthIndicator.class) - .doesNotHaveBean(MongoHealthIndicator.class).doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(MongoHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.mongo.enabled:false") .run((context) -> assertThat(context).doesNotHaveBean(MongoReactiveHealthIndicator.class) - .doesNotHaveBean(MongoHealthIndicator.class).hasSingleBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(MongoHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfigurationTests.java index 65c6a894426..b768bc2faf4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/neo4j/Neo4jHealthContributorAutoConfigurationTests.java @@ -21,7 +21,6 @@ import org.neo4j.ogm.session.Session; import org.neo4j.ogm.session.SessionFactory; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.health.Health; import org.springframework.boot.actuate.neo4j.Neo4jHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -47,22 +46,19 @@ class Neo4jHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(Neo4jHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(Neo4jHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.neo4j.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(Neo4jHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(Neo4jHealthIndicator.class)); } @Test void defaultIndicatorCanBeReplaced() { this.contextRunner.withUserConfiguration(CustomIndicatorConfiguration.class).run((context) -> { assertThat(context).hasSingleBean(Neo4jHealthIndicator.class); - assertThat(context).doesNotHaveBean(ApplicationHealthIndicator.class); Health health = context.getBean(Neo4jHealthIndicator.class).health(); assertThat(health.getDetails()).containsOnly(entry("test", true)); }); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfigurationTests.java index bdd6a930391..29563316266 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.redis; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.redis.RedisHealthIndicator; import org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -44,15 +43,14 @@ class RedisHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { this.contextRunner.run((context) -> assertThat(context).hasSingleBean(RedisHealthIndicator.class) - .doesNotHaveBean(RedisReactiveHealthIndicator.class).doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(RedisReactiveHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.redis.enabled:false") .run((context) -> assertThat(context).doesNotHaveBean(RedisHealthIndicator.class) - .doesNotHaveBean(RedisReactiveHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(RedisReactiveHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfigurationTests.java index a6b2a103c53..8745f59fda1 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/redis/RedisReactiveHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.redis; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.redis.RedisHealthIndicator; import org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -43,14 +42,14 @@ class RedisReactiveHealthContributorAutoConfigurationTests { void runShouldCreateIndicator() { this.contextRunner.run( (context) -> assertThat(context).hasSingleBean(RedisReactiveHealthContributorAutoConfiguration.class) - .doesNotHaveBean(RedisHealthIndicator.class).doesNotHaveBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(RedisHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.redis.enabled:false") .run((context) -> assertThat(context).doesNotHaveBean(RedisReactiveHealthIndicator.class) - .doesNotHaveBean(RedisHealthIndicator.class).hasSingleBean(ApplicationHealthIndicator.class)); + .doesNotHaveBean(RedisHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfigurationTests.java index 99df8e22d79..3250b2d2424 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/solr/SolrHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.solr; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.solr.SolrHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration; @@ -40,15 +39,13 @@ class SolrHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(SolrHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(SolrHealthIndicator.class)); } @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.solr.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(SolrHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(SolrHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfigurationTests.java index d22131a111e..88cda1c89b9 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.system; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; -import org.springframework.boot.actuate.health.ApplicationHealthIndicator; import org.springframework.boot.actuate.system.DiskSpaceHealthIndicator; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -40,8 +39,7 @@ class DiskSpaceHealthContributorAutoConfigurationTests { @Test void runShouldCreateIndicator() { - this.contextRunner.run((context) -> assertThat(context).hasSingleBean(DiskSpaceHealthIndicator.class) - .doesNotHaveBean(ApplicationHealthIndicator.class)); + this.contextRunner.run((context) -> assertThat(context).hasSingleBean(DiskSpaceHealthIndicator.class)); } @Test @@ -63,8 +61,7 @@ class DiskSpaceHealthContributorAutoConfigurationTests { @Test void runWhenDisabledShouldNotCreateIndicator() { this.contextRunner.withPropertyValues("management.health.diskspace.enabled:false") - .run((context) -> assertThat(context).doesNotHaveBean(DiskSpaceHealthIndicator.class) - .hasSingleBean(ApplicationHealthIndicator.class)); + .run((context) -> assertThat(context).doesNotHaveBean(DiskSpaceHealthIndicator.class)); } } diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/ApplicationHealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/ApplicationHealthIndicator.java index 9e5bd1d7781..242be3cb113 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/ApplicationHealthIndicator.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/ApplicationHealthIndicator.java @@ -23,7 +23,9 @@ package org.springframework.boot.actuate.health; * @author Christian Dupuis * @since 1.2.0 * @see Status#UP + * @deprecated since 2.2 in favor of {@link PingHealthIndicator}. */ +@Deprecated public class ApplicationHealthIndicator extends AbstractHealthIndicator { public ApplicationHealthIndicator() { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java index 8b3b43c486b..4b229dd2fdb 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java @@ -23,7 +23,6 @@ package org.springframework.boot.actuate.health; * @author Dave Syer * @author Phillip Webb * @since 1.0.0 - * @see ApplicationHealthIndicator */ @FunctionalInterface public interface HealthIndicator extends HealthContributor { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/PingHealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/PingHealthIndicator.java new file mode 100644 index 00000000000..78eb4cd9ba2 --- /dev/null +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/PingHealthIndicator.java @@ -0,0 +1,34 @@ +/* + * Copyright 2012-2019 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.actuate.health; + +/** + * Default implementation of {@link HealthIndicator} that returns {@link Status#UP}. + * + * @author Dave Syer + * @author Christian Dupuis + * @since 2.2.0 + * @see Status#UP + */ +public class PingHealthIndicator extends AbstractHealthIndicator { + + @Override + protected void doHealthCheck(Health.Builder builder) throws Exception { + builder.up(); + } + +} diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/ApplicationHealthIndicatorTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/ApplicationHealthIndicatorTests.java index 0a02398dc57..eb257665e65 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/ApplicationHealthIndicatorTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/ApplicationHealthIndicatorTests.java @@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Phillip Webb */ +@Deprecated class ApplicationHealthIndicatorTests { @Test diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/PingHealthIndicatorTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/PingHealthIndicatorTests.java new file mode 100644 index 00000000000..bd2cbc548d0 --- /dev/null +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/PingHealthIndicatorTests.java @@ -0,0 +1,36 @@ +/* + * Copyright 2012-2019 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.actuate.health; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link PingHealthIndicator}. + * + * @author Phillip Webb + */ +class PingHealthIndicatorTests { + + @Test + void indicatesUp() { + PingHealthIndicator healthIndicator = new PingHealthIndicator(); + assertThat(healthIndicator.health().getStatus()).isEqualTo(Status.UP); + } + +} diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc index 47442e1371e..2a32992424f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc @@ -787,6 +787,9 @@ The following `HealthIndicators` are auto-configured by Spring Boot when appropr |{sc-spring-boot-actuator}/neo4j/Neo4jHealthIndicator.{sc-ext}[`Neo4jHealthIndicator`] |Checks that a Neo4j server is up. +|{sc-spring-boot-actuator}/health/PingHealthIndicator.{sc-ext}[`PingHealthIndicator`] +|Always responds with `UP`. + |{sc-spring-boot-actuator}/amqp/RabbitHealthIndicator.{sc-ext}[`RabbitHealthIndicator`] |Checks that a Rabbit server is up.