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

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

commit d2126d3f68c2414287d4462c372b903b0237141d
Author: yhs0092 <[email protected]>
AuthorDate: Sun Feb 16 21:32:44 2020 +0800

    [SCB-1691] add schema and endpoint into all ServiceRegistry instances
---
 .../servicecomb/core/provider/producer/ProducerBootListener.java | 9 +++++++--
 .../org/apache/servicecomb/core/transport/TransportManager.java  | 7 +++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
 
b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
index aec2e33..4b85909 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerBootListener.java
@@ -28,6 +28,7 @@ import 
org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.foundation.common.utils.IOUtils;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.Const;
 import org.apache.servicecomb.serviceregistry.api.registry.BasePath;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
@@ -65,10 +66,14 @@ public class ProducerBootListener implements BootListener {
           microserviceMeta.getMicroserviceName(),
           schemaMeta.getSchemaId(),
           content);
-      microservice.addSchema(schemaMeta.getSchemaId(), content);
+      RegistryUtils.executeOnEachServiceRegistry(sr -> {
+        sr.getMicroservice().addSchema(schemaMeta.getSchemaId(), content);
+      });
     }
 
-    saveBasePaths(microserviceMeta, microservice);
+    RegistryUtils.executeOnEachServiceRegistry(sr -> {
+      saveBasePaths(microserviceMeta, sr.getMicroservice());
+    });
   }
 
   // just compatible to old 3rd components, servicecomb not use it......
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
 
b/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
index 2e02279..a52c93b 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/transport/TransportManager.java
@@ -29,6 +29,7 @@ import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import 
org.apache.servicecomb.foundation.common.exceptions.ServiceCombException;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -60,8 +61,10 @@ public class TransportManager {
         Endpoint endpoint = transport.getPublishEndpoint();
         if (endpoint != null && endpoint.getEndpoint() != null) {
           LOGGER.info("endpoint to publish: {}", endpoint.getEndpoint());
-          Microservice microservice = 
scbEngine.getServiceRegistry().getMicroservice();
-          
microservice.getInstance().getEndpoints().add(endpoint.getEndpoint());
+          RegistryUtils.executeOnEachServiceRegistry(sr -> {
+            Microservice microservice = sr.getMicroservice();
+            
microservice.getInstance().getEndpoints().add(endpoint.getEndpoint());
+          });
         }
         continue;
       }

Reply via email to