diff --git a/pom.xml b/pom.xml
index 42e89049..f77904fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,11 +132,6 @@
spring-cloud-netflix-core
${spring-cloud-netflix.version}
-
- org.springframework.cloud
- spring-cloud-starter-feign
- ${spring-cloud-netflix.version}
-
org.apache.curator
curator-framework
@@ -189,6 +184,16 @@
ribbon-httpclient
${ribbon.version}
+
+ com.netflix.feign
+ feign-ribbon
+ ${feign.version}
+
+
+ com.netflix.feign
+ feign-slf4j
+ ${feign.version}
+
org.projectlombok
lombok
@@ -235,7 +240,7 @@
com.netflix.feign
feign-core
- 8.7.1
+ ${feign.version}
@@ -246,6 +251,7 @@
0.7.1
2.8.0
2.1.0
+ 8.10.0
1.0-groovy-2.4
diff --git a/spring-cloud-zookeeper-discovery/pom.xml b/spring-cloud-zookeeper-discovery/pom.xml
index 12b355ab..ce44a7f0 100644
--- a/spring-cloud-zookeeper-discovery/pom.xml
+++ b/spring-cloud-zookeeper-discovery/pom.xml
@@ -47,6 +47,16 @@
spring-boot-starter
true
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.springframework
+ spring-web
+ true
+
org.springframework.boot
spring-boot-starter-actuator
@@ -92,6 +102,21 @@
ribbon-httpclient
true
+
+ com.netflix.feign
+ feign-core
+ true
+
+
+ com.netflix.feign
+ feign-ribbon
+ true
+
+
+ com.netflix.feign
+ feign-slf4j
+ true
+
org.projectlombok
lombok
@@ -150,16 +175,6 @@
test
1.53
-
- com.netflix.feign
- feign-core
- true
-
-
- org.springframework.cloud
- spring-cloud-starter-feign
- true
-
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClient.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClient.java
index a742e2c7..81cad425 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClient.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryClient.java
@@ -22,13 +22,13 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import lombok.SneakyThrows;
-
import org.apache.curator.x.discovery.ServiceInstance;
import org.springframework.cloud.client.DefaultServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDependencies;
+import lombok.SneakyThrows;
+
/**
* @author Spencer Gibb
* @author Marcin Grzejszczak, 4financeIT
@@ -51,7 +51,7 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient {
@Override
public org.springframework.cloud.client.ServiceInstance getLocalServiceInstance() {
- ServiceInstance serviceInstance = serviceDiscovery.getServiceInstance();
+ ServiceInstance serviceInstance = this.serviceDiscovery.getServiceInstance();
return createServiceInstance(serviceInstance.getId(), serviceInstance);
}
@@ -68,11 +68,10 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient {
@Override
@SneakyThrows
- @SuppressWarnings("unchecked")
public List getInstances(
final String serviceId) {
String serviceIdToQuery = getServiceIdToQuery(serviceId);
- Collection> zkInstances = serviceDiscovery
+ Collection> zkInstances = this.serviceDiscovery
.getServiceDiscovery().queryForInstances(serviceIdToQuery);
ArrayList instances = new ArrayList<>();
@@ -85,19 +84,18 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient {
}
private String getServiceIdToQuery(String serviceId) {
- if (zookeeperDependencies != null && zookeeperDependencies.hasDependencies()) {
- String pathForAlias = zookeeperDependencies.getPathForAlias(serviceId);
+ if (this.zookeeperDependencies != null && this.zookeeperDependencies.hasDependencies()) {
+ String pathForAlias = this.zookeeperDependencies.getPathForAlias(serviceId);
return pathForAlias.isEmpty() ? serviceId : pathForAlias;
}
return serviceId;
}
@Override
- @SuppressWarnings("unchecked")
public List getServices() {
ArrayList services = null;
try {
- services = new ArrayList<>(serviceDiscovery.getServiceDiscovery().queryForNames());
+ services = new ArrayList<>(this.serviceDiscovery.getServiceDiscovery().queryForNames());
}
catch (Exception e) {
rethrowRuntimeException(e);
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicator.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicator.java
index bec45a66..a47e2ff6 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicator.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryHealthIndicator.java
@@ -19,13 +19,13 @@ package org.springframework.cloud.zookeeper.discovery;
import java.util.ArrayList;
import java.util.Collection;
-import lombok.extern.slf4j.Slf4j;
-
import org.apache.curator.x.discovery.ServiceInstance;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDependencies;
+import lombok.extern.slf4j.Slf4j;
+
/**
* @author Spencer Gibb
*/
@@ -41,13 +41,12 @@ public class ZookeeperDiscoveryHealthIndicator extends AbstractHealthIndicator {
}
@Override
- @SuppressWarnings("unchecked")
protected void doHealthCheck(Health.Builder builder) throws Exception {
try {
Collection names = getNamesToQuery();
ArrayList> allInstances = new ArrayList<>();
for (String name : names) {
- Collection> instances = serviceDiscovery
+ Collection> instances = this.serviceDiscovery
.getServiceDiscovery().queryForInstances(name);
for (ServiceInstance instance : instances) {
allInstances.add(instance);
@@ -61,11 +60,10 @@ public class ZookeeperDiscoveryHealthIndicator extends AbstractHealthIndicator {
}
}
- @SuppressWarnings("unchecked")
private Collection getNamesToQuery() throws Exception {
- if (zookeeperDependencies == null) {
- return serviceDiscovery.getServiceDiscovery().queryForNames();
+ if (this.zookeeperDependencies == null) {
+ return this.serviceDiscovery.getServiceDiscovery().queryForNames();
}
- return zookeeperDependencies.getDependencyNames();
+ return this.zookeeperDependencies.getDependencyNames();
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperInstance.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperInstance.java
index 662bd36c..c28c330e 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperInstance.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperInstance.java
@@ -27,6 +27,7 @@ import lombok.Data;
public class ZookeeperInstance {
private String id;
+ @SuppressWarnings("unused")
private ZookeeperInstance() {
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycle.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycle.java
index ed2a8375..607e511a 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycle.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperLifecycle.java
@@ -16,15 +16,13 @@
package org.springframework.cloud.zookeeper.discovery;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-
import org.springframework.cloud.client.discovery.AbstractDiscoveryLifecycle;
+import lombok.SneakyThrows;
+
/**
* @author Spencer Gibb
*/
-@Slf4j
public class ZookeeperLifecycle extends AbstractDiscoveryLifecycle {
private ZookeeperDiscoveryProperties properties;
@@ -55,22 +53,22 @@ public class ZookeeperLifecycle extends AbstractDiscoveryLifecycle {
@Override
protected boolean isEnabled() {
- return properties.isEnabled();
+ return this.properties.isEnabled();
}
@Override
protected int getConfiguredPort() {
- return serviceDiscovery.getPort();
+ return this.serviceDiscovery.getPort();
}
@Override
protected void setConfiguredPort(int port) {
- serviceDiscovery.setPort(port);
- serviceDiscovery.build();
+ this.serviceDiscovery.setPort(port);
+ this.serviceDiscovery.build();
}
@Override
protected Object getConfiguration() {
- return properties;
+ return this.properties;
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperRibbonClientConfiguration.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperRibbonClientConfiguration.java
index 74e656a1..69b6fbcf 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperRibbonClientConfiguration.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperRibbonClientConfiguration.java
@@ -16,12 +16,11 @@
package org.springframework.cloud.zookeeper.discovery;
-import com.netflix.client.config.IClientConfig;
-import com.netflix.config.ConfigurationManager;
-import com.netflix.config.DynamicPropertyFactory;
-import com.netflix.config.DynamicStringProperty;
-import com.netflix.loadbalancer.ILoadBalancer;
-import com.netflix.loadbalancer.ServerList;
+import static com.netflix.client.config.CommonClientConfigKey.DeploymentContextBasedVipAddresses;
+import static com.netflix.client.config.CommonClientConfigKey.EnableZoneAffinity;
+
+import javax.annotation.PostConstruct;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -32,10 +31,12 @@ import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDepende
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import javax.annotation.PostConstruct;
-
-import static com.netflix.client.config.CommonClientConfigKey.DeploymentContextBasedVipAddresses;
-import static com.netflix.client.config.CommonClientConfigKey.EnableZoneAffinity;
+import com.netflix.client.config.IClientConfig;
+import com.netflix.config.ConfigurationManager;
+import com.netflix.config.DynamicPropertyFactory;
+import com.netflix.config.DynamicStringProperty;
+import com.netflix.loadbalancer.ILoadBalancer;
+import com.netflix.loadbalancer.ServerList;
/**
* Preprocessor that configures defaults for zookeeper-discovered ribbon clients. Such as:
@@ -64,7 +65,7 @@ public class ZookeeperRibbonClientConfiguration {
@ConditionalOnMissingBean
@ConditionalOnDependenciesPassed
public ServerList> ribbonServerListFromDependencies(IClientConfig config, ZookeeperDependencies zookeeperDependencies) {
- ZookeeperServerList serverList = new ZookeeperServerList(serviceDiscovery.getServiceDiscovery());
+ ZookeeperServerList serverList = new ZookeeperServerList(this.serviceDiscovery.getServiceDiscovery());
serverList.initFromDependencies(config, zookeeperDependencies);
return serverList;
}
@@ -73,14 +74,14 @@ public class ZookeeperRibbonClientConfiguration {
@ConditionalOnMissingBean
@ConditionalOnDependenciesPassed
@ConditionalOnProperty(value = "spring.cloud.zookeeper.dependencies.ribbon.loadbalancer", matchIfMissing = true)
- public ILoadBalancer dependenciesBasedLoadBalancer(ZookeeperDependencies zookeeperDependencies, ServerList serverList) {
+ public ILoadBalancer dependenciesBasedLoadBalancer(ZookeeperDependencies zookeeperDependencies, ServerList> serverList) {
return new DependenciesBasedLoadBalancer(zookeeperDependencies, serverList);
}
@Bean
@ConditionalOnMissingBean
public ServerList> ribbonServerList(IClientConfig config) {
- ZookeeperServerList serverList = new ZookeeperServerList(serviceDiscovery.getServiceDiscovery());
+ ZookeeperServerList serverList = new ZookeeperServerList(this.serviceDiscovery.getServiceDiscovery());
serverList.initWithNiwsConfig(config);
return serverList;
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceWatch.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceWatch.java
index c6f07092..2cb08b31 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceWatch.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceWatch.java
@@ -20,21 +20,23 @@ import java.util.concurrent.atomic.AtomicLong;
import javax.annotation.PreDestroy;
-import lombok.SneakyThrows;
-
import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.recipes.cache.*;
+import org.apache.curator.framework.recipes.cache.TreeCache;
+import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
+import org.apache.curator.framework.recipes.cache.TreeCacheListener;
import org.springframework.cloud.client.discovery.event.HeartbeatEvent;
import org.springframework.cloud.client.discovery.event.InstanceRegisteredEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.ApplicationListener;
+import lombok.SneakyThrows;
+
/**
* @author Spencer Gibb
*/
public class ZookeeperServiceWatch implements
- ApplicationListener, TreeCacheListener,
+ ApplicationListener>, TreeCacheListener,
ApplicationEventPublisherAware {
private final CuratorFramework curator;
@@ -55,21 +57,21 @@ public class ZookeeperServiceWatch implements
}
public TreeCache getCache() {
- return cache;
+ return this.cache;
}
@Override
@SneakyThrows
- public void onApplicationEvent(InstanceRegisteredEvent event) {
- cache = TreeCache.newBuilder(curator, properties.getRoot()).build();
- cache.getListenable().addListener(this);
- cache.start();
+ public void onApplicationEvent(InstanceRegisteredEvent> event) {
+ this.cache = TreeCache.newBuilder(this.curator, this.properties.getRoot()).build();
+ this.cache.getListenable().addListener(this);
+ this.cache.start();
}
@PreDestroy
public void stop() throws Exception {
- if (cache != null) {
- cache.close();
+ if (this.cache != null) {
+ this.cache.close();
}
}
@@ -78,8 +80,8 @@ public class ZookeeperServiceWatch implements
if (event.getType().equals(TreeCacheEvent.Type.NODE_ADDED)
|| event.getType().equals(TreeCacheEvent.Type.NODE_REMOVED)
|| event.getType().equals(TreeCacheEvent.Type.NODE_UPDATED)) {
- long newCacheChange = cacheChange.incrementAndGet();
- publisher.publishEvent(new HeartbeatEvent(this, newCacheChange));
+ long newCacheChange = this.cacheChange.incrementAndGet();
+ this.publisher.publishEvent(new HeartbeatEvent(this, newCacheChange));
}
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependenciesBasedLoadBalancer.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependenciesBasedLoadBalancer.java
index 6d6df4c5..e6a93c76 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependenciesBasedLoadBalancer.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependenciesBasedLoadBalancer.java
@@ -16,16 +16,17 @@
package org.springframework.cloud.zookeeper.discovery.dependency;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
import com.netflix.loadbalancer.BaseLoadBalancer;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import com.netflix.loadbalancer.RoundRobinRule;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerList;
-import lombok.extern.slf4j.Slf4j;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import lombok.extern.slf4j.Slf4j;
/**
* LoadBalancer that delegates to other rules depending on the provided load balancing strategy
@@ -40,7 +41,7 @@ public class DependenciesBasedLoadBalancer extends BaseLoadBalancer {
private final ZookeeperDependencies zookeeperDependencies;
- public DependenciesBasedLoadBalancer(ZookeeperDependencies zookeeperDependencies, ServerList serverList) {
+ public DependenciesBasedLoadBalancer(ZookeeperDependencies zookeeperDependencies, ServerList> serverList) {
this.zookeeperDependencies = zookeeperDependencies;
setServersList(serverList.getInitialListOfServers());
}
@@ -48,20 +49,20 @@ public class DependenciesBasedLoadBalancer extends BaseLoadBalancer {
@Override
public Server chooseServer(Object key) {
String keyAsString = (String) key;
- ZookeeperDependency dependency = zookeeperDependencies.getDependencyForAlias(keyAsString);
+ ZookeeperDependency dependency = this.zookeeperDependencies.getDependencyForAlias(keyAsString);
if (dependency == null) {
- log.debug("No dependency found for alias [{}] - will use the default rule which is [{}]", keyAsString, rule);
- return rule.choose(key);
+ log.debug("No dependency found for alias [{}] - will use the default rule which is [{}]", keyAsString, this.rule);
+ return this.rule.choose(key);
};
cacheEntryIfMissing(keyAsString, dependency);
- log.debug("Will try to retrieve dependency for key [{}]. Current cache contents [{}]", keyAsString, ruleCache);
- return ruleCache.get(keyAsString).choose(key);
+ log.debug("Will try to retrieve dependency for key [{}]. Current cache contents [{}]", keyAsString, this.ruleCache);
+ return this.ruleCache.get(keyAsString).choose(key);
}
private void cacheEntryIfMissing(String keyAsString, ZookeeperDependency dependency) {
- if (!ruleCache.containsKey(keyAsString)) {
+ if (!this.ruleCache.containsKey(keyAsString)) {
log.debug("Cache doesn't contain entry for [{}]", keyAsString);
- ruleCache.put(keyAsString, chooseRuleForLoadBalancerType(dependency.getLoadBalancerType()));
+ this.ruleCache.put(keyAsString, chooseRuleForLoadBalancerType(dependency.getLoadBalancerType()));
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyFeignClientAutoConfiguration.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyFeignClientAutoConfiguration.java
index 33b145d3..9a0e7e8e 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyFeignClientAutoConfiguration.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyFeignClientAutoConfiguration.java
@@ -16,16 +16,6 @@
package org.springframework.cloud.zookeeper.discovery.dependency;
-import feign.Client;
-import feign.Request;
-import feign.Response;
-import feign.ribbon.RibbonClient;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-
import java.io.IOException;
import java.net.URI;
import java.util.Collection;
@@ -33,6 +23,18 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import feign.Client;
+import feign.Request;
+import feign.Response;
+import feign.ribbon.RibbonClient;
+
/**
*
* Configuration for ensuring that headers are set for a given dependency.
@@ -42,26 +44,35 @@ import java.util.Map;
@Configuration
@ConditionalOnDependenciesPassed
@ConditionalOnProperty(value = "spring.cloud.zookeeper.dependencies.headers.enabled", matchIfMissing = true)
-@ConditionalOnClass({Client.class, RibbonClient.class})
+@ConditionalOnClass({ Client.class, RibbonClient.class })
public class DependencyFeignClientAutoConfiguration {
@Bean
@Primary
- @SuppressWarnings("deprecation")
- Client dependencyBasedFeignClient(final RibbonClient ribbonClient, final ZookeeperDependencies zookeeperDependencies) {
+ @SuppressWarnings("deprecation")
+ Client dependencyBasedFeignClient(final LoadBalancerFeignClient ribbonClient,
+ final ZookeeperDependencies zookeeperDependencies) {
+ // TODO: remove dependency on feign-ribbon
return new RibbonClient() {
@Override
- public Response execute(Request request, Request.Options options) throws IOException {
+ public Response execute(Request request, Request.Options options)
+ throws IOException {
URI asUri = URI.create(request.url());
String clientName = asUri.getHost();
- ZookeeperDependency dependencyForAlias = zookeeperDependencies.getDependencyForAlias(clientName);
- Map> headers = getUpdatedHeadersIfPossible(request, dependencyForAlias);
- return ribbonClient.execute(Request.create(request.method(), request.url(), headers, request.body(), request.charset()), options);
+ ZookeeperDependency dependencyForAlias = zookeeperDependencies
+ .getDependencyForAlias(clientName);
+ Map> headers = getUpdatedHeadersIfPossible(
+ request, dependencyForAlias);
+ return ribbonClient.execute(Request.create(request.method(),
+ request.url(), headers, request.body(), request.charset()),
+ options);
}
- private Map> getUpdatedHeadersIfPossible(Request request, ZookeeperDependency dependencyForAlias) {
+ private Map> getUpdatedHeadersIfPossible(
+ Request request, ZookeeperDependency dependencyForAlias) {
if (dependencyForAlias != null) {
- return Collections.unmodifiableMap(new HashMap<>(dependencyForAlias.getUpdatedHeaders(request.headers())));
+ return Collections.unmodifiableMap(new HashMap<>(
+ dependencyForAlias.getUpdatedHeaders(request.headers())));
}
return request.headers();
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyRestTemplateAutoConfiguration.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyRestTemplateAutoConfiguration.java
index e73a243b..2dd9b844 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyRestTemplateAutoConfiguration.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/dependency/DependencyRestTemplateAutoConfiguration.java
@@ -16,9 +16,13 @@
package org.springframework.cloud.zookeeper.discovery.dependency;
-import com.google.common.base.Function;
-import com.google.common.collect.Maps;
-import lombok.extern.slf4j.Slf4j;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -32,11 +36,8 @@ import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.web.client.RestTemplate;
-import javax.annotation.PostConstruct;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import com.google.common.base.Function;
+import com.google.common.collect.Maps;
/**
*
@@ -49,7 +50,6 @@ import java.util.Map;
@Configuration
@ConditionalOnDependenciesPassed
@ConditionalOnProperty(value = "spring.cloud.zookeeper.dependencies.resttemplate.enabled", matchIfMissing = true)
-@Slf4j
public class DependencyRestTemplateAutoConfiguration {
@Autowired @LoadBalanced RestTemplate restTemplate;
@@ -57,11 +57,11 @@ public class DependencyRestTemplateAutoConfiguration {
@PostConstruct
void customizeRestTemplate() {
- restTemplate.getInterceptors().add(new ClientHttpRequestInterceptor() {
+ this.restTemplate.getInterceptors().add(new ClientHttpRequestInterceptor() {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
String clientName = request.getURI().getHost();
- ZookeeperDependency dependencyForAlias = zookeeperDependencies.getDependencyForAlias(clientName);
+ ZookeeperDependency dependencyForAlias = DependencyRestTemplateAutoConfiguration.this.zookeeperDependencies.getDependencyForAlias(clientName);
HttpHeaders headers = getUpdatedHeadersIfPossible(request, dependencyForAlias);
request.getHeaders().putAll(headers);
return execution.execute(request, body);
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcher.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcher.java
index 1b195774..c051e8aa 100755
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcher.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DefaultDependencyWatcher.java
@@ -15,7 +15,11 @@
*/
package org.springframework.cloud.zookeeper.discovery.watcher;
-import lombok.SneakyThrows;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.curator.x.discovery.ServiceCache;
import org.springframework.cloud.client.discovery.event.InstanceRegisteredEvent;
import org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery;
@@ -24,10 +28,7 @@ import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDepende
import org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier;
import org.springframework.context.ApplicationListener;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import lombok.SneakyThrows;
/**
* This Dependency Watcher will verify the presence of dependencies upon startup and registers listeners
@@ -39,10 +40,10 @@ import java.util.concurrent.ConcurrentHashMap;
* @author Marcin Grzejszczak, 4financeIT
* @author Michal Chmielarz, 4financeIT
*/
-public class DefaultDependencyWatcher implements DependencyRegistrationHookProvider, ApplicationListener {
+public class DefaultDependencyWatcher implements DependencyRegistrationHookProvider, ApplicationListener> {
private final ZookeeperServiceDiscovery serviceDiscovery;
- private final Map dependencyRegistry = new ConcurrentHashMap<>();
+ private final Map> dependencyRegistry = new ConcurrentHashMap<>();
private final List listeners;
private final DependencyPresenceOnStartupVerifier dependencyPresenceOnStartupVerifier;
private final ZookeeperDependencies zookeeperDependencies;
@@ -59,27 +60,26 @@ public class DefaultDependencyWatcher implements DependencyRegistrationHookProvi
@Override
@SneakyThrows
- public void onApplicationEvent(InstanceRegisteredEvent event) {
+ public void onApplicationEvent(InstanceRegisteredEvent> event) {
registerDependencyRegistrationHooks();
}
@Override
- @SuppressWarnings("unchecked")
public void registerDependencyRegistrationHooks() throws Exception {
- for (ZookeeperDependency zookeeperDependency : zookeeperDependencies.getDependencyConfigurations()) {
+ for (ZookeeperDependency zookeeperDependency : this.zookeeperDependencies.getDependencyConfigurations()) {
String dependencyPath = zookeeperDependency.getPath();
- ServiceCache serviceCache = serviceDiscovery.getServiceDiscovery()
+ ServiceCache> serviceCache = this.serviceDiscovery.getServiceDiscovery()
.serviceCacheBuilder().name(dependencyPath).build();
serviceCache.start();
- dependencyPresenceOnStartupVerifier.verifyDependencyPresence(dependencyPath, serviceCache, zookeeperDependency.isRequired());
- dependencyRegistry.put(dependencyPath, serviceCache);
- serviceCache.addListener(new DependencyStateChangeListenerRegistry(listeners, dependencyPath, serviceCache));
+ this.dependencyPresenceOnStartupVerifier.verifyDependencyPresence(dependencyPath, serviceCache, zookeeperDependency.isRequired());
+ this.dependencyRegistry.put(dependencyPath, serviceCache);
+ serviceCache.addListener(new DependencyStateChangeListenerRegistry(this.listeners, dependencyPath, serviceCache));
}
}
@Override
public void clearDependencyRegistrationHooks() throws IOException {
- for (ServiceCache cache : dependencyRegistry.values()) {
+ for (ServiceCache> cache : this.dependencyRegistry.values()) {
cache.close();
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DependencyStateChangeListenerRegistry.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DependencyStateChangeListenerRegistry.java
index e4cbe292..a5154c86 100755
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DependencyStateChangeListenerRegistry.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/DependencyStateChangeListenerRegistry.java
@@ -17,13 +17,13 @@ package org.springframework.cloud.zookeeper.discovery.watcher;
import java.util.List;
-import lombok.extern.slf4j.Slf4j;
-
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.x.discovery.ServiceCache;
import org.apache.curator.x.discovery.details.ServiceCacheListener;
+import lombok.extern.apachecommons.CommonsLog;
+
/**
*
* Informs all the DependencyWatcherListeners that a dependency's state has changed
@@ -31,14 +31,14 @@ import org.apache.curator.x.discovery.details.ServiceCacheListener;
* @author Marcin Grzejszczak, 4financeIT
* @author Tomasz Nurkiewicz, 4financeIT
*/
-@Slf4j
+@CommonsLog
public class DependencyStateChangeListenerRegistry implements ServiceCacheListener {
private final List listeners;
private final String dependencyName;
- private final ServiceCache serviceCache;
+ private final ServiceCache> serviceCache;
- public DependencyStateChangeListenerRegistry(List listeners, String dependencyName, ServiceCache serviceCache) {
+ public DependencyStateChangeListenerRegistry(List listeners, String dependencyName, ServiceCache> serviceCache) {
this.listeners = listeners;
this.dependencyName = dependencyName;
this.serviceCache = serviceCache;
@@ -46,23 +46,23 @@ public class DependencyStateChangeListenerRegistry implements ServiceCacheListen
@Override
public void cacheChanged() {
- DependencyState state = serviceCache.getInstances().isEmpty() ? DependencyState.DISCONNECTED : DependencyState.CONNECTED;
+ DependencyState state = this.serviceCache.getInstances().isEmpty() ? DependencyState.DISCONNECTED : DependencyState.CONNECTED;
logCurrentState(state);
informListeners(state);
}
private void logCurrentState(DependencyState dependencyState) {
- log.info("Service cache state change for '{}' instances, current service state: {}", dependencyName, dependencyState);
+ log.info("Service cache state change for '"+this.dependencyName+"' instances, current service state: " + dependencyState);
}
private void informListeners(DependencyState state) {
- for (DependencyWatcherListener listener : listeners) {
- listener.stateChanged(dependencyName, state);
+ for (DependencyWatcherListener listener : this.listeners) {
+ listener.stateChanged(this.dependencyName, state);
}
}
@Override
public void stateChanged(CuratorFramework client, ConnectionState newState) {
- // todo do something or ignore for what is worth
+ // TODO do something or ignore for what is worth
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/DependencyPresenceOnStartupVerifier.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/DependencyPresenceOnStartupVerifier.java
index 00ebdca3..dc90b108 100644
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/DependencyPresenceOnStartupVerifier.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/DependencyPresenceOnStartupVerifier.java
@@ -30,7 +30,6 @@ import org.apache.curator.x.discovery.ServiceCache;
* @author Marcin Grzejszczak, 4financeIT
* @author Tomasz Szymanski, 4financeIT
*/
-@SuppressWarnings("unchecked")
public abstract class DependencyPresenceOnStartupVerifier {
private static final PresenceChecker MANDATORY_DEPENDENCY_CHECKER = new FailOnMissingDependencyChecker();
private final PresenceChecker optionalDependencyChecker;
@@ -39,11 +38,12 @@ public abstract class DependencyPresenceOnStartupVerifier {
this.optionalDependencyChecker = optionalDependencyChecker;
}
- public void verifyDependencyPresence(String dependencyName, ServiceCache serviceCache, boolean required) {
+ @SuppressWarnings("unchecked")
+ public void verifyDependencyPresence(String dependencyName, @SuppressWarnings("rawtypes") ServiceCache serviceCache, boolean required) {
if (required) {
MANDATORY_DEPENDENCY_CHECKER.checkPresence(dependencyName, serviceCache.getInstances());
} else {
- optionalDependencyChecker.checkPresence(dependencyName, serviceCache.getInstances());
+ this.optionalDependencyChecker.checkPresence(dependencyName, serviceCache.getInstances());
}
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/FailOnMissingDependencyChecker.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/FailOnMissingDependencyChecker.java
index 86d5a068..c8e71118 100755
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/FailOnMissingDependencyChecker.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/FailOnMissingDependencyChecker.java
@@ -15,10 +15,10 @@
*/
package org.springframework.cloud.zookeeper.discovery.watcher.presence;
-import org.apache.curator.x.discovery.ServiceInstance;
-
import java.util.List;
+import org.apache.curator.x.discovery.ServiceInstance;
+
/**
*
* Will result in throwing an exception if there are no running instances of the dependency
@@ -28,7 +28,7 @@ import java.util.List;
*/
public class FailOnMissingDependencyChecker implements PresenceChecker {
@Override
- public void checkPresence(String dependencyName, List serviceInstances) {
+ public void checkPresence(String dependencyName, List> serviceInstances) {
if (serviceInstances.isEmpty()) {
throw new NoInstancesRunningException(dependencyName);
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/LogMissingDependencyChecker.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/LogMissingDependencyChecker.java
index f394b2ec..26b7d276 100755
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/LogMissingDependencyChecker.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/LogMissingDependencyChecker.java
@@ -15,13 +15,13 @@
*/
package org.springframework.cloud.zookeeper.discovery.watcher.presence;
-import org.apache.curator.x.discovery.ServiceInstance;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.lang.invoke.MethodHandles;
import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.curator.x.discovery.ServiceInstance;
+
/**
*
* Will log the missing microservice dependency
@@ -31,12 +31,12 @@ import java.util.List;
*/
public class LogMissingDependencyChecker implements PresenceChecker {
- private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass());
@Override
- public void checkPresence(String dependencyName, List serviceInstances) {
+ public void checkPresence(String dependencyName, List> serviceInstances) {
if (serviceInstances.isEmpty()) {
- log.warn("Microservice dependency with name [{}] is missing.", dependencyName);
+ log.warn("Microservice dependency with name ["+dependencyName+"] is missing.");
}
}
diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/PresenceChecker.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/PresenceChecker.java
index 1df71242..7b04b1db 100755
--- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/PresenceChecker.java
+++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/watcher/presence/PresenceChecker.java
@@ -15,10 +15,10 @@
*/
package org.springframework.cloud.zookeeper.discovery.watcher.presence;
-import org.apache.curator.x.discovery.ServiceInstance;
-
import java.util.List;
+import org.apache.curator.x.discovery.ServiceInstance;
+
/**
* The implementation of this interface will be called upon checking if a dependency with a given name
* is present upon startup within the provided service instances.
@@ -33,5 +33,5 @@ public interface PresenceChecker {
* @param dependencyName
* @param serviceInstances - instances to check the dependency for
*/
- void checkPresence(String dependencyName, List serviceInstances);
+ void checkPresence(String dependencyName, List> serviceInstances);
}