From de25a0973d08d1555ed06a1ee3e974e2db4b69eb Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 31 Dec 2015 12:46:51 +0100 Subject: [PATCH] [spring-cloud-sleuth/#83] Fixed the way localinstance's id is returned. Fixes spring-cloud-sleuth/#83 --- .../zookeeper/discovery/ZookeeperDiscoveryClient.java | 2 +- .../cloud/zookeeper/discovery/ZookeeperInstance.java | 1 + .../zookeeper/discovery/ZookeeperServiceDiscovery.java | 2 +- .../zookeeper/discovery/ZookeeperDiscoveryISpec.groovy | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) 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 78df72d4..250ab800 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 @@ -52,7 +52,7 @@ public class ZookeeperDiscoveryClient implements DiscoveryClient { @Override public org.springframework.cloud.client.ServiceInstance getLocalServiceInstance() { ServiceInstance serviceInstance = this.serviceDiscovery.getServiceInstance(); - return serviceInstance == null ? null : createServiceInstance(serviceInstance.getId(), serviceInstance); + return serviceInstance == null ? null : createServiceInstance(serviceInstance.getName(), serviceInstance); } private static org.springframework.cloud.client.ServiceInstance createServiceInstance(String serviceId, ServiceInstance serviceInstance) { 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 c28c330e..697bc070 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 @@ -26,6 +26,7 @@ import lombok.Data; @AllArgsConstructor public class ZookeeperInstance { private String id; + private String name; @SuppressWarnings("unused") private ZookeeperInstance() { diff --git a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceDiscovery.java b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceDiscovery.java index 1e2bab61..9d6511b5 100644 --- a/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceDiscovery.java +++ b/spring-cloud-zookeeper-discovery/src/main/java/org/springframework/cloud/zookeeper/discovery/ZookeeperServiceDiscovery.java @@ -113,7 +113,7 @@ public class ZookeeperServiceDiscovery implements ApplicationContextAware { // @formatter:off serviceInstance.set(ServiceInstance.builder() .name(appName) - .payload(new ZookeeperInstance(context.getId())) + .payload(new ZookeeperInstance(context.getId(), appName)) .port(port.get()) .address(host) .uriSpec(uriSpec).build()); diff --git a/spring-cloud-zookeeper-discovery/src/test/groovy/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryISpec.groovy b/spring-cloud-zookeeper-discovery/src/test/groovy/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryISpec.groovy index 7a43907b..39229f75 100644 --- a/spring-cloud-zookeeper-discovery/src/test/groovy/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryISpec.groovy +++ b/spring-cloud-zookeeper-discovery/src/test/groovy/org/springframework/cloud/zookeeper/discovery/ZookeeperDiscoveryISpec.groovy @@ -68,6 +68,13 @@ class ZookeeperDiscoveryISpec extends Specification implements PollingUtils { 'UP' == registeredServiceStatus(instance) } + def 'should present application name as id of the service instance'() { + given: + ServiceInstance instance = discoveryClient.getLocalServiceInstance() + expect: + springAppName == instance.serviceId + } + def 'should find an instance using feign via service id'() { expect: conditions.eventually willPass {