This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit c847fe3aca08581fa2bb1c67c56deec4a210f16b
Author: wujimin <wuji...@huawei.com>
AuthorDate: Mon Jul 16 15:19:04 2018 +0800

    [SCB-729] bug fix: local file serviceRegistry did not set serviceId in 
memory
---
 .../client/LocalServiceRegistryClientImpl.java           |  7 +++++--
 .../registry/TestLocalServiceRegistry.java               | 16 ++++++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
index 877b886..196cd24 100644
--- 
a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
+++ 
b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/LocalServiceRegistryClientImpl.java
@@ -171,8 +171,11 @@ public class LocalServiceRegistryClientImpl implements 
ServiceRegistryClient {
 
   @Override
   public String registerMicroservice(Microservice microservice) {
-    String serviceId =
-        microservice.getServiceId() == null ? UUID.randomUUID().toString() : 
microservice.getServiceId();
+    String serviceId = microservice.getServiceId();
+    if (serviceId == null) {
+      serviceId = UUID.randomUUID().toString();
+      microservice.setServiceId(serviceId);
+    }
     microserviceIdMap.put(serviceId, microservice);
 
     microserviceInstanceMap.computeIfAbsent(serviceId, k -> new 
ConcurrentHashMap<>());
diff --git 
a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
 
b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
index d4d2b5d..3b01fe8 100644
--- 
a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
+++ 
b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/registry/TestLocalServiceRegistry.java
@@ -100,4 +100,20 @@ public class TestLocalServiceRegistry {
     String content = 
serviceRegistry.getServiceRegistryClient().getSchema(microservice.getServiceId(),
 "s1");
     Assert.assertEquals("s1-content", content);
   }
+
+  @Test
+  public void registerMicroservice() {
+    ServiceRegistry serviceRegistry = ServiceRegistryFactory.createLocal();
+    serviceRegistry.init();
+    serviceRegistry.run();
+    
+    Microservice microservice = new Microservice();
+    microservice.setAppId("appId");
+    microservice.setServiceName("msName");
+
+    String serviceId = 
serviceRegistry.getServiceRegistryClient().registerMicroservice(microservice);
+    Microservice remoteMicroservice = 
serviceRegistry.getRemoteMicroservice(serviceId);
+
+    Assert.assertEquals(serviceId, remoteMicroservice.getServiceId());
+  }
 }

Reply via email to