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()); + } }