diff --git a/pom.xml b/pom.xml
index 4d2597c..74179cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,6 +125,11 @@
pom
import
+
+ org.springframework.cloud
+ spring-cloud-test-support
+ ${spring-cloud-commons.version}
+
org.springframework.cloud
spring-cloud-stream-dependencies
diff --git a/spring-cloud-bus/pom.xml b/spring-cloud-bus/pom.xml
index ef0827f..0708230 100644
--- a/spring-cloud-bus/pom.xml
+++ b/spring-cloud-bus/pom.xml
@@ -49,6 +49,11 @@
spring-boot-starter-test
test
+
+ org.springframework.cloud
+ spring-cloud-test-support
+ test
+
org.springframework.cloud
spring-cloud-stream-test-support
diff --git a/spring-cloud-bus/src/main/java/org/springframework/cloud/bus/BusAutoConfiguration.java b/spring-cloud-bus/src/main/java/org/springframework/cloud/bus/BusAutoConfiguration.java
index 9d6dac8..77a8471 100644
--- a/spring-cloud-bus/src/main/java/org/springframework/cloud/bus/BusAutoConfiguration.java
+++ b/spring-cloud-bus/src/main/java/org/springframework/cloud/bus/BusAutoConfiguration.java
@@ -176,18 +176,19 @@ public class BusAutoConfiguration implements ApplicationEventPublisherAware {
}
+ @Bean
+ @ConditionalOnProperty(value = "spring.cloud.bus.refresh.enabled", matchIfMissing = true)
+ @ConditionalOnBean(ContextRefresher.class)
+ public RefreshListener refreshListener(ContextRefresher contextRefresher) {
+ return new RefreshListener(contextRefresher);
+ }
+
@Configuration
@ConditionalOnClass({ Endpoint.class, RefreshScope.class })
- @ConditionalOnBean(ContextRefresher.class)
protected static class BusRefreshConfiguration {
- @Bean
- @ConditionalOnProperty(value = "spring.cloud.bus.refresh.enabled", matchIfMissing = true)
- public RefreshListener refreshListener(ContextRefresher contextRefresher) {
- return new RefreshListener(contextRefresher);
- }
-
@Configuration
+ @ConditionalOnBean(ContextRefresher.class)
@ConditionalOnProperty(value = "endpoints.spring.cloud.bus.refresh.enabled", matchIfMissing = true)
protected static class BusRefreshEndpointConfiguration {
@Bean
diff --git a/spring-cloud-bus/src/test/java/org/springframework/cloud/bus/BusAutoConfigurationClassPathTests.java b/spring-cloud-bus/src/test/java/org/springframework/cloud/bus/BusAutoConfigurationClassPathTests.java
new file mode 100644
index 0000000..5c9958d
--- /dev/null
+++ b/spring-cloud-bus/src/test/java/org/springframework/cloud/bus/BusAutoConfigurationClassPathTests.java
@@ -0,0 +1,30 @@
+package org.springframework.cloud.bus;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.boot.autoconfigure.AutoConfigurations;
+import org.springframework.boot.test.context.runner.ApplicationContextRunner;
+import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration;
+import org.springframework.cloud.bus.endpoint.RefreshBusEndpoint;
+import org.springframework.cloud.bus.event.RefreshListener;
+import org.springframework.cloud.test.ClassPathExclusions;
+import org.springframework.cloud.test.ModifiedClassPathRunner;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+
+@RunWith(ModifiedClassPathRunner.class)
+@ClassPathExclusions({"spring-boot-actuator-*.jar", "spring-boot-starter-actuator-*.jar"})
+public class BusAutoConfigurationClassPathTests {
+
+ @Test
+ public void refreshListenerCreatedWithoutActuator() {
+ new ApplicationContextRunner()
+ .withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class,
+ BusAutoConfiguration.class))
+ .run(context -> assertThat(context)
+ .hasSingleBean(RefreshListener.class)
+ .doesNotHaveBean(RefreshBusEndpoint.class));
+ }
+}