Allow refresh auto config to be disabled by property.
fixes gh-276
This commit is contained in:
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProce
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
|
||||
import org.springframework.cloud.context.environment.EnvironmentManager;
|
||||
import org.springframework.cloud.context.refresh.ContextRefresher;
|
||||
@@ -47,6 +48,7 @@ import org.springframework.stereotype.Component;
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(RefreshScope.class)
|
||||
@ConditionalOnProperty(name = "spring.cloud.refresh.enabled", matchIfMissing = true)
|
||||
@AutoConfigureAfter(WebMvcAutoConfiguration.class)
|
||||
public class RefreshAutoConfiguration {
|
||||
|
||||
|
||||
@@ -44,12 +44,13 @@ import org.springframework.integration.monitor.IntegrationMBeanExporter;
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(Endpoint.class)
|
||||
@AutoConfigureAfter(EndpointAutoConfiguration.class)
|
||||
@AutoConfigureAfter({EndpointAutoConfiguration.class, RefreshAutoConfiguration.class})
|
||||
public class RefreshEndpointAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(RefreshScope.class)
|
||||
@ConditionalOnMissingBean
|
||||
@ConditionalOnEnabledHealthIndicator("refresh")
|
||||
@Bean
|
||||
RefreshScopeHealthIndicator refreshScopeHealthIndicator(RefreshScope scope,
|
||||
ConfigurationPropertiesRebinder rebinder) {
|
||||
return new RefreshScopeHealthIndicator(scope, rebinder);
|
||||
@@ -113,6 +114,7 @@ public class RefreshEndpointAutoConfiguration {
|
||||
protected static class RefreshEndpointConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(ContextRefresher.class)
|
||||
@ConditionalOnMissingBean
|
||||
public RefreshEndpoint refreshEndpoint(ContextRefresher contextRefresher) {
|
||||
RefreshEndpoint endpoint = new RefreshEndpoint(contextRefresher);
|
||||
|
||||
@@ -9,10 +9,8 @@ import org.springframework.boot.test.rule.OutputCapture;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
@@ -26,8 +24,16 @@ public class RefreshAutoConfigurationTests {
|
||||
public void noWarnings() {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(
|
||||
Config.class)) {
|
||||
assertTrue(context.containsBean("refreshScope"));
|
||||
assertThat(output.toString(), not(containsString("WARN")));
|
||||
assertThat(context.containsBean("refreshScope")).isTrue();
|
||||
assertThat(output.toString()).doesNotContain("WARN");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disabled() {
|
||||
try (ConfigurableApplicationContext context = getApplicationContext(
|
||||
Config.class, "spring.cloud.refresh.enabled:false")) {
|
||||
assertThat(context.containsBean("refreshScope")).isFalse();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user