diff --git a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfiguration.java b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfiguration.java index 7cc12c8c..1e63ff9e 100644 --- a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfiguration.java +++ b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperAutoConfiguration.java @@ -17,6 +17,7 @@ package org.springframework.cloud.zookeeper; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.curator.RetryPolicy; import org.apache.curator.ensemble.EnsembleProvider; import org.apache.curator.framework.CuratorFramework; @@ -32,15 +33,18 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** + * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration Auto-configuration} + * that sets up Zookeeper discovery. + * * @author Spencer Gibb + * @since 1.0.0 */ @Configuration @ConditionalOnProperty(value = "spring.cloud.zookeeper.enabled", matchIfMissing = true) @EnableConfigurationProperties public class ZookeeperAutoConfiguration { - private static final Log log = org.apache.commons.logging.LogFactory - .getLog(ZookeeperAutoConfiguration.class); + private static final Log log = LogFactory.getLog(ZookeeperAutoConfiguration.class); @Autowired(required = false) private EnsembleProvider ensembleProvider; @@ -88,8 +92,8 @@ public class ZookeeperAutoConfiguration { @Bean @ConditionalOnMissingBean - public ZookeeperHealthIndicator zookeeperHealthIndicator() { - return new ZookeeperHealthIndicator(); + public ZookeeperHealthIndicator zookeeperHealthIndicator(CuratorFramework curator) { + return new ZookeeperHealthIndicator(curator); } } } diff --git a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperEndpoint.java b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperEndpoint.java index 967dbc71..332dc0ee 100644 --- a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperEndpoint.java +++ b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperEndpoint.java @@ -21,7 +21,11 @@ import org.springframework.boot.actuate.endpoint.AbstractEndpoint; import org.springframework.boot.context.properties.ConfigurationProperties; /** + * A Zookeeper {@link org.springframework.boot.actuate.endpoint.Endpoint} that returns + * {@link ZookeeperData}. + * * @author Spencer Gibb + * @since 1.0.0 */ @ConfigurationProperties(prefix = "endpoints.zookeeper", ignoreUnknownFields = false) public class ZookeeperEndpoint extends AbstractEndpoint { diff --git a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperHealthIndicator.java b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperHealthIndicator.java index f1c140ed..36cd7b74 100644 --- a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperHealthIndicator.java +++ b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperHealthIndicator.java @@ -18,16 +18,22 @@ package org.springframework.cloud.zookeeper; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.imps.CuratorFrameworkState; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.health.AbstractHealthIndicator; import org.springframework.boot.actuate.health.Health; /** + * A {@link org.springframework.boot.actuate.health.HealthIndicator} that checks the + * status of the Zookeeper connection. + * * @author Spencer Gibb + * @since 1.0.0 */ public class ZookeeperHealthIndicator extends AbstractHealthIndicator { - @Autowired - CuratorFramework curator; + private final CuratorFramework curator; + + public ZookeeperHealthIndicator(CuratorFramework curator) { + this.curator = curator; + } @Override protected void doHealthCheck(Health.Builder builder) throws Exception { diff --git a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperProperties.java b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperProperties.java index 8a2d6a9d..dd248b55 100644 --- a/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperProperties.java +++ b/spring-cloud-zookeeper-core/src/main/java/org/springframework/cloud/zookeeper/ZookeeperProperties.java @@ -22,33 +22,48 @@ import java.util.concurrent.TimeUnit; import org.springframework.boot.context.properties.ConfigurationProperties; /** + * Properties related to connecting to Zookeeper + * * @author Spencer Gibb + * @since 1.0.0 */ @ConfigurationProperties("spring.cloud.zookeeper") public class ZookeeperProperties { + /** + * Connection string to the Zookeeper cluster + */ @NotNull private String connectString = "localhost:2181"; + /** + * Is Zookeeper enabled + */ private boolean enabled = true; /** - * @param baseSleepTimeMs initial amount of time to wait between retries + * Initial amount of time to wait between retries */ private Integer baseSleepTimeMs = 50; /** - * @param maxRetries max number of times to retry + * Max number of times to retry */ private Integer maxRetries = 10; /** - * @param maxSleepMs max time in ms to sleep on each retry + * Max time in ms to sleep on each retry */ private Integer maxSleepMs = 500; + /** + * Wait time to block on connection to Zookeeper + */ private Integer blockUntilConnectedWait = 10; + /** + * The unit of time related to blocking on connection to Zookeeper + */ private TimeUnit blockUntilConnectedUnit = TimeUnit.SECONDS; public String getConnectString() { diff --git a/spring-cloud-zookeeper-sample/pom.xml b/spring-cloud-zookeeper-sample/pom.xml index f0016ab7..e37076da 100644 --- a/spring-cloud-zookeeper-sample/pom.xml +++ b/spring-cloud-zookeeper-sample/pom.xml @@ -15,6 +15,10 @@ .. + + true + +