Swaps deprecated ConditionalOnEnabledEndpoint for updated annotation.

Swaps with ConditionalOnAvailableEndpoint
This commit is contained in:
Spencer Gibb
2020-01-17 15:45:03 -05:00
parent b6ddff7d2e
commit 8b53f2862a
8 changed files with 42 additions and 27 deletions

View File

@@ -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> hasFeatures = new ArrayList<>();
@Bean
@ConditionalOnEnabledEndpoint
@ConditionalOnAvailableEndpoint
public FeaturesEndpoint featuresEndpoint() {
return new FeaturesEndpoint(this.hasFeatures);
}

View File

@@ -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(

View File

@@ -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);

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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);