Disables endpoint creation (#208)

Fixes gh-117
This commit is contained in:
Fabio Matos
2017-07-01 01:38:03 +02:00
committed by Spencer Gibb
parent 2b6ad4a118
commit 2e81db24cf
6 changed files with 170 additions and 98 deletions

View File

@@ -15,7 +15,7 @@
*/
package org.springframework.cloud.autoconfigure;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.condition.ConditionalOnEnabledEndpoint;
import org.springframework.boot.actuate.endpoint.EnvironmentEndpoint;
import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@@ -42,19 +42,14 @@ import org.springframework.context.annotation.Configuration;
*
*/
@Configuration
@ConditionalOnClass(EnvironmentEndpoint.class)
@ConditionalOnWebApplication
@ConditionalOnBean(RestartEndpoint.class)
@AutoConfigureAfter({ WebMvcAutoConfiguration.class,
RefreshEndpointAutoConfiguration.class })
public class LifecycleMvcEndpointAutoConfiguration {
@Autowired
private RestartEndpoint restartEndpoint;
@Bean
@ConditionalOnBean(EnvironmentEndpoint.class)
@ConditionalOnProperty(value = "endpoints.env.post.enabled", matchIfMissing = true)
@ConditionalOnEnabledEndpoint(value = "env.post")
public EnvironmentManagerMvcEndpoint environmentManagerEndpoint(
EnvironmentEndpoint delegate, EnvironmentManager environment) {
return new EnvironmentManagerMvcEndpoint(delegate, environment);
@@ -67,8 +62,9 @@ public class LifecycleMvcEndpointAutoConfiguration {
}
@Bean
public RestartMvcEndpoint restartMvcEndpoint() {
return new RestartMvcEndpoint(this.restartEndpoint);
@ConditionalOnBean(RestartEndpoint.class)
public RestartMvcEndpoint restartMvcEndpoint(RestartEndpoint restartEndpoint) {
return new RestartMvcEndpoint(restartEndpoint);
}
@Bean

View File

@@ -19,6 +19,7 @@ package org.springframework.cloud.autoconfigure;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.autoconfigure.ConditionalOnEnabledHealthIndicator;
import org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration;
import org.springframework.boot.actuate.condition.ConditionalOnEnabledEndpoint;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -26,7 +27,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration;
import org.springframework.cloud.context.properties.ConfigurationPropertiesRebinder;
import org.springframework.cloud.context.refresh.ContextRefresher;
@@ -57,6 +57,7 @@ public class RefreshEndpointAutoConfiguration {
}
@ConditionalOnClass(IntegrationMBeanExporter.class)
@ConditionalOnEnabledEndpoint(value = "restart", enabledByDefault = false)
protected static class RestartEndpointWithIntegration {
@Autowired(required = false)
@@ -75,30 +76,38 @@ public class RefreshEndpointAutoConfiguration {
}
@ConditionalOnMissingClass("org.springframework.integration.monitor.IntegrationMBeanExporter")
@ConditionalOnEnabledEndpoint(value = "restart", enabledByDefault = false)
protected static class RestartEndpointWithoutIntegration {
@Bean
@ConditionalOnMissingBean
public RestartEndpoint restartEndpoint() {
public RestartEndpoint restartEndpointWithoutIntegration() {
return new RestartEndpoint();
}
}
@Bean
@ConfigurationProperties("endpoints.pause")
public RestartEndpoint.PauseEndpoint pauseEndpoint(RestartEndpoint restartEndpoint) {
return restartEndpoint.getPauseEndpoint();
}
@ConditionalOnEnabledEndpoint(value = "restart", enabledByDefault = false)
protected static class PauseResumeEndpoints {
@Bean
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint("pause")
public RestartEndpoint.PauseEndpoint pauseEndpoint(RestartEndpoint restartEndpoint) {
return restartEndpoint.getPauseEndpoint();
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint("resume")
public RestartEndpoint.ResumeEndpoint resumeEndpoint(RestartEndpoint restartEndpoint) {
return restartEndpoint.getResumeEndpoint();
}
@Bean
@ConfigurationProperties("endpoints.resume")
public RestartEndpoint.ResumeEndpoint resumeEndpoint(
RestartEndpoint restartEndpoint) {
return restartEndpoint.getResumeEndpoint();
}
@Configuration
@ConditionalOnProperty(value = "endpoints.refresh.enabled", matchIfMissing = true)
@ConditionalOnEnabledEndpoint("refresh")
@ConditionalOnBean(PropertySourceBootstrapConfiguration.class)
protected static class RefreshEndpointConfiguration {
@@ -110,4 +119,4 @@ public class RefreshEndpointAutoConfiguration {
}
}
}
}

View File

@@ -114,7 +114,7 @@ public class RestartEndpoint extends AbstractEndpoint<Boolean>
return new ResumeEndpoint();
}
@ConfigurationProperties("endpoints")
@ConfigurationProperties("endpoints.pause")
public class PauseEndpoint extends AbstractEndpoint<Boolean> {
public PauseEndpoint() {
@@ -131,7 +131,7 @@ public class RestartEndpoint extends AbstractEndpoint<Boolean>
}
}
@ConfigurationProperties("endpoints")
@ConfigurationProperties("endpoints.resume")
public class ResumeEndpoint extends AbstractEndpoint<Boolean> {
public ResumeEndpoint() {