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 5210265b..30249953 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 @@ -40,8 +40,19 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient { throw new IllegalStateException("Unable to locate instance in zookeeper: " + context.getId()); } - return new DefaultServiceInstance(instance.getId(), instance.getAddress(), - instance.getPort(), instance.getSslPort()!=null); + + return createServiceInstance(instance.getId(), instance); + } + + private static org.springframework.cloud.client.ServiceInstance createServiceInstance(String serviceId, ServiceInstance serviceInstance) { + boolean secure = serviceInstance.getSslPort() != null; + Integer port = serviceInstance.getPort(); + + if (secure) { + port = serviceInstance.getSslPort(); + } + + return new DefaultServiceInstance(serviceId, serviceInstance.getAddress(), port, secure); } @Override @@ -54,14 +65,12 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient { ArrayList instances = new ArrayList<>(); for (ServiceInstance instance : zkInstances) { - instances.add(new DefaultServiceInstance(serviceId, instance.getAddress(), - instance.getPort(), instance.getSslPort()!=null)); + instances.add(createServiceInstance(serviceId, instance)); } return instances; } - @Override public List getServices() { ArrayList services = null;