diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoConfiguration.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoConfiguration.java index aee4b84d..a94bd33e 100644 --- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoConfiguration.java +++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryAutoConfiguration.java @@ -19,6 +19,7 @@ package org.springframework.cloud.zookeeper.discovery; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.x.discovery.ServiceDiscovery; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.autoconfigure.ConditionalOnEnabledHealthIndicator; import org.springframework.boot.actuate.endpoint.Endpoint; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; @@ -69,6 +70,7 @@ public class ZookeeperDiscoveryAutoConfiguration { } @Configuration + @ConditionalOnEnabledHealthIndicator("zookeeper") @ConditionalOnClass(Endpoint.class) protected static class ZookeeperDiscoveryHealthConfig { @Autowired(required = false) diff --git a/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java new file mode 100644 index 00000000..96a5d077 --- /dev/null +++ b/spring-cloud-zookeeper-discovery/src/test/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicatorDisabledTests.java @@ -0,0 +1,39 @@ +package org.springframework.cloud.zookeeper.discovery; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cloud.zookeeper.discovery.test.CommonTestConfig; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.BDDAssertions.then; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +/** + * @author Spencer Gibb + */ +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = RANDOM_PORT, + properties = "management.health.zookeeper.enabled=false") +public class ZookeeperDiscoveryHealthIndicatorDisabledTests { + + @Autowired(required = false) + private ZookeeperDiscoveryHealthIndicator healthIndicator; + + // Issue: #101 - ZookeeperDiscoveryHealthIndicator should be able to be disabled with a property + @Test public void healthIndicatorDisabled() { + // when: + // then: + then(this.healthIndicator).isNull(); + } + + @SpringBootConfiguration + @EnableAutoConfiguration + @Import(CommonTestConfig.class) + static class Config {} + +}