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; }
