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 10140cf1..a81368a8 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 @@ -4,32 +4,29 @@ import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.annotation.PreDestroy; - /** * @author Spencer Gibb */ @Configuration +@ConditionalOnProperty(value = "zookeeper.enabled", matchIfMissing = true) @EnableConfigurationProperties public class ZookeeperAutoConfiguration { - private @Autowired RetryPolicy retryPolicy; - @Bean @ConditionalOnMissingBean public ZookeeperProperties zookeeperProperties() { return new ZookeeperProperties(); } - @Bean + @Bean(destroyMethod = "close") @ConditionalOnMissingBean - public CuratorFramework curatorFramework() { + public CuratorFramework curatorFramework(RetryPolicy retryPolicy) { CuratorFramework curator = CuratorFrameworkFactory.builder() .retryPolicy(retryPolicy) // TODO: support ensembleProvider via ExhibitorEnsembleProvider @@ -39,11 +36,6 @@ public class ZookeeperAutoConfiguration { return curator; } - @PreDestroy - public void shutdown() { - curatorFramework().close(); - } - @Bean @ConditionalOnMissingBean public RetryPolicy exponentialBackoffRetry() { diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClientConfiguration.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClientConfiguration.java index e2777898..d8bec055 100644 --- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClientConfiguration.java +++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClientConfiguration.java @@ -5,6 +5,7 @@ import org.apache.curator.x.discovery.details.InstanceSerializer; import org.apache.curator.x.discovery.details.JsonInstanceSerializer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDependencies; import org.springframework.context.annotation.Bean; @@ -14,6 +15,7 @@ import org.springframework.context.annotation.Configuration; * @author Spencer Gibb */ @Configuration +@ConditionalOnProperty(value = "zookeeper.discovery.enabled", matchIfMissing = true) @EnableConfigurationProperties public class ZookeeperDiscoveryClientConfiguration {