Skip to content

Commit 259aa43

Browse files
committed
Allow refresh auto config to be disabled by property.
fixes spring-projectsgh-276
1 parent 4675df3 commit 259aa43

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2727
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
29+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2930
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
3031
import org.springframework.cloud.context.environment.EnvironmentManager;
3132
import org.springframework.cloud.context.refresh.ContextRefresher;
@@ -47,6 +48,7 @@
4748
*/
4849
@Configuration
4950
@ConditionalOnClass(RefreshScope.class)
51+
@ConditionalOnProperty(name = "spring.cloud.refresh.enabled", matchIfMissing = true)
5052
@AutoConfigureAfter(WebMvcAutoConfiguration.class)
5153
public class RefreshAutoConfiguration {
5254

spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshEndpointAutoConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,13 @@
4444
*/
4545
@Configuration
4646
@ConditionalOnClass(Endpoint.class)
47-
@AutoConfigureAfter(EndpointAutoConfiguration.class)
47+
@AutoConfigureAfter({EndpointAutoConfiguration.class, RefreshAutoConfiguration.class})
4848
public class RefreshEndpointAutoConfiguration {
4949

50+
@Bean
51+
@ConditionalOnBean(RefreshScope.class)
5052
@ConditionalOnMissingBean
5153
@ConditionalOnEnabledHealthIndicator("refresh")
52-
@Bean
5354
RefreshScopeHealthIndicator refreshScopeHealthIndicator(RefreshScope scope,
5455
ConfigurationPropertiesRebinder rebinder) {
5556
return new RefreshScopeHealthIndicator(scope, rebinder);
@@ -113,6 +114,7 @@ public RestartEndpoint.ResumeEndpoint resumeEndpoint(
113114
protected static class RefreshEndpointConfiguration {
114115

115116
@Bean
117+
@ConditionalOnBean(ContextRefresher.class)
116118
@ConditionalOnMissingBean
117119
public RefreshEndpoint refreshEndpoint(ContextRefresher contextRefresher) {
118120
RefreshEndpoint endpoint = new RefreshEndpoint(contextRefresher);

spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationTests.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
import org.springframework.context.ConfigurableApplicationContext;
1010
import org.springframework.context.annotation.Configuration;
1111

12-
import static org.hamcrest.CoreMatchers.containsString;
13-
import static org.hamcrest.CoreMatchers.not;
14-
import static org.junit.Assert.assertThat;
15-
import static org.junit.Assert.assertTrue;
12+
import static org.assertj.core.api.Assertions.assertThat;
13+
1614

1715
/**
1816
* @author Dave Syer
@@ -26,8 +24,16 @@ public class RefreshAutoConfigurationTests {
2624
public void noWarnings() {
2725
try (ConfigurableApplicationContext context = getApplicationContext(
2826
Config.class)) {
29-
assertTrue(context.containsBean("refreshScope"));
30-
assertThat(output.toString(), not(containsString("WARN")));
27+
assertThat(context.containsBean("refreshScope")).isTrue();
28+
assertThat(output.toString()).doesNotContain("WARN");
29+
}
30+
}
31+
32+
@Test
33+
public void disabled() {
34+
try (ConfigurableApplicationContext context = getApplicationContext(
35+
Config.class, "spring.cloud.refresh.enabled:false")) {
36+
assertThat(context.containsBean("refreshScope")).isFalse();
3137
}
3238
}
3339

0 commit comments

Comments
 (0)