diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java index e5a2e86e..50c115bf 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java @@ -21,7 +21,7 @@ import java.util.List; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; +import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.health.HealthIndicator; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -93,7 +93,7 @@ public class CommonsClientAutoConfiguration { private List hasFeatures = new ArrayList<>(); @Bean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public FeaturesEndpoint featuresEndpoint() { return new FeaturesEndpoint(this.hasFeatures); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java index 4b71800f..a48390c4 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java @@ -17,7 +17,7 @@ package org.springframework.cloud.client.serviceregistry; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; +import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -39,7 +39,7 @@ public class ServiceRegistryAutoConfiguration { private Registration registration; @Bean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public ServiceRegistryEndpoint serviceRegistryEndpoint( ServiceRegistry serviceRegistry) { ServiceRegistryEndpoint endpoint = new ServiceRegistryEndpoint( diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java index 58b4475a..13b3ad0b 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java @@ -51,6 +51,7 @@ public class CommonsClientAutoConfigurationTests { applicationContextRunner .withConfiguration( AutoConfigurations.of(HealthEndpointAutoConfiguration.class)) + .withPropertyValues("management.endpoints.web.exposure.include=features") .run(ctxt -> { then(ctxt.getBean(DiscoveryClientHealthIndicator.class)).isNotNull(); then(ctxt.getBean(DiscoveryCompositeHealthContributor.class)) @@ -63,7 +64,9 @@ public class CommonsClientAutoConfigurationTests { @Test public void disableAll() { applicationContextRunner - .withPropertyValues("spring.cloud.discovery.enabled=false").run(ctxt -> { + .withPropertyValues("spring.cloud.discovery.enabled=false", + "management.endpoints.web.exposure.include=features") + .run(ctxt -> { assertThat(ctxt) .doesNotHaveBean(DiscoveryClientHealthIndicator.class); assertThat(ctxt) @@ -77,7 +80,8 @@ public class CommonsClientAutoConfigurationTests { @Test public void disableBlocking() { applicationContextRunner - .withPropertyValues("spring.cloud.discovery.blocking.enabled=false") + .withPropertyValues("spring.cloud.discovery.blocking.enabled=false", + "management.endpoints.web.exposure.include=features") .run(ctxt -> { assertThat(ctxt) .doesNotHaveBean(DiscoveryClientHealthIndicator.class); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java index 46062f3d..5f35aecc 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java @@ -46,20 +46,24 @@ public class ReactiveCommonsClientAutoConfigurationTests { @Test public void beansCreatedNormally() { - applicationContextRunner.run(context -> { - then(context.getBean(ReactiveDiscoveryClientHealthIndicator.class)) - .isNotNull(); - then(context.getBean(ReactiveDiscoveryCompositeHealthContributor.class)) - .isNotNull(); - then(context.getBean(FeaturesEndpoint.class)).isNotNull(); - then(context.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); - }); + applicationContextRunner + .withPropertyValues("management.endpoints.web.exposure.include=features") + .run(context -> { + then(context.getBean(ReactiveDiscoveryClientHealthIndicator.class)) + .isNotNull(); + then(context + .getBean(ReactiveDiscoveryCompositeHealthContributor.class)) + .isNotNull(); + then(context.getBean(FeaturesEndpoint.class)).isNotNull(); + then(context.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); + }); } @Test public void disableAll() { applicationContextRunner - .withPropertyValues("spring.cloud.discovery.enabled=false") + .withPropertyValues("spring.cloud.discovery.enabled=false", + "management.endpoints.web.exposure.include=features") .run(context -> { assertThat(context).doesNotHaveBean( ReactiveDiscoveryClientHealthIndicator.class); @@ -74,7 +78,8 @@ public class ReactiveCommonsClientAutoConfigurationTests { @Test public void disableReactive() { applicationContextRunner - .withPropertyValues("spring.cloud.discovery.reactive.enabled=false") + .withPropertyValues("spring.cloud.discovery.reactive.enabled=false", + "management.endpoints.web.exposure.include=features") .run(context -> { assertThat(context).doesNotHaveBean( ReactiveDiscoveryClientHealthIndicator.class); diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshEndpointAutoConfiguration.java b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshEndpointAutoConfiguration.java index 39ad4a7e..5f66358c 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshEndpointAutoConfiguration.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshEndpointAutoConfiguration.java @@ -20,7 +20,6 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; -import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; import org.springframework.boot.actuate.health.Health; import org.springframework.boot.autoconfigure.AutoConfigureAfter; @@ -87,7 +86,7 @@ class RestartEndpointWithIntegrationConfiguration { private IntegrationMBeanExporter exporter; @Bean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint @ConditionalOnMissingBean public RestartEndpoint restartEndpoint() { RestartEndpoint endpoint = new RestartEndpoint(); @@ -104,7 +103,7 @@ class RestartEndpointWithIntegrationConfiguration { class RestartEndpointWithoutIntegrationConfiguration { @Bean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint @ConditionalOnMissingBean public RestartEndpoint restartEndpointWithoutIntegration() { return new RestartEndpoint(); @@ -118,7 +117,7 @@ class PauseResumeEndpointsConfiguration { @Bean @ConditionalOnBean(RestartEndpoint.class) @ConditionalOnMissingBean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public RestartEndpoint.PauseEndpoint pauseEndpoint(RestartEndpoint restartEndpoint) { return restartEndpoint.getPauseEndpoint(); } @@ -126,7 +125,7 @@ class PauseResumeEndpointsConfiguration { @Bean @ConditionalOnBean(RestartEndpoint.class) @ConditionalOnMissingBean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public RestartEndpoint.ResumeEndpoint resumeEndpoint( RestartEndpoint restartEndpoint) { return restartEndpoint.getResumeEndpoint(); diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/WritableEnvironmentEndpointAutoConfiguration.java b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/WritableEnvironmentEndpointAutoConfiguration.java index 73a11ef7..89ed88fb 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/WritableEnvironmentEndpointAutoConfiguration.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/WritableEnvironmentEndpointAutoConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.cloud.autoconfigure; -import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; +import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties; import org.springframework.boot.actuate.env.EnvironmentEndpoint; @@ -61,7 +61,7 @@ public class WritableEnvironmentEndpointAutoConfiguration { @Bean @ConditionalOnMissingBean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public WritableEnvironmentEndpoint environmentEndpoint(Environment environment) { WritableEnvironmentEndpoint endpoint = new WritableEnvironmentEndpoint( environment); @@ -73,7 +73,7 @@ public class WritableEnvironmentEndpointAutoConfiguration { } @Bean - @ConditionalOnEnabledEndpoint + @ConditionalOnAvailableEndpoint public WritableEnvironmentEndpointWebExtension environmentEndpointWebExtension( WritableEnvironmentEndpoint endpoint, EnvironmentManager environment) { return new WritableEnvironmentEndpointWebExtension(endpoint, environment); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/LifecycleMvcAutoConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/LifecycleMvcAutoConfigurationTests.java index 07ae7bc6..da657bfc 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/LifecycleMvcAutoConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/LifecycleMvcAutoConfigurationTests.java @@ -63,7 +63,8 @@ public class LifecycleMvcAutoConfigurationTests { @Test public void environmentWebEndpointExtensionEnabled() { beanCreated("environmentEndpointWebExtension", - "management.endpoint.env.enabled=true"); + "management.endpoint.env.enabled=true", + "management.endpoints.web.exposure.include=env"); } // restartEndpoint @@ -80,7 +81,8 @@ public class LifecycleMvcAutoConfigurationTests { @Test public void restartEndpointEnabled() { beanCreatedAndEndpointEnabled("restartEndpoint", RestartEndpoint.class, - RestartEndpoint::restart, "management.endpoint.restart.enabled=true"); + RestartEndpoint::restart, "management.endpoint.restart.enabled=true", + "management.endpoints.web.exposure.include=restart"); } // pauseEndpoint @@ -105,6 +107,7 @@ public class LifecycleMvcAutoConfigurationTests { beanCreatedAndEndpointEnabled("pauseEndpoint", RestartEndpoint.PauseEndpoint.class, RestartEndpoint.PauseEndpoint::pause, "management.endpoint.restart.enabled=true", + "management.endpoints.web.exposure.include=restart,pause", "management.endpoint.pause.enabled=true"); } @@ -112,12 +115,14 @@ public class LifecycleMvcAutoConfigurationTests { @Test public void resumeEndpointDisabled() { beanNotCreated("resumeEndpoint", "management.endpoint.restart.enabled=true", + "management.endpoints.web.exposure.include=restart", "management.endpoint.resume.enabled=false"); } @Test public void resumeEndpointRestartDisabled() { beanNotCreated("resumeEndpoint", "management.endpoint.restart.enabled=false", + "management.endpoints.web.exposure.include=resume", "management.endpoint.resume.enabled=true"); } @@ -132,7 +137,8 @@ public class LifecycleMvcAutoConfigurationTests { RestartEndpoint.ResumeEndpoint.class, RestartEndpoint.ResumeEndpoint::resume, "management.endpoint.restart.enabled=true", - "management.endpoint.resume.enabled=true"); + "management.endpoint.resume.enabled=true", + "management.endpoints.web.exposure.include=restart,resume"); } private void beanNotCreated(String beanName, String... contextProperties) { diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/restart/RestartIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/restart/RestartIntegrationTests.java index 97856464..c2024b75 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/restart/RestartIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/restart/RestartIntegrationTests.java @@ -47,6 +47,7 @@ public class RestartIntegrationTests { this.context = SpringApplication.run(TestConfiguration.class, "--management.endpoint.restart.enabled=true", "--server.port=0", + "--management.endpoints.web.exposure.include=restart", "--spring.liveBeansView.mbeanDomain=livebeans"); RestartEndpoint endpoint = this.context.getBean(RestartEndpoint.class);