You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2021/12/11 10:46:09 UTC

[dubbo] branch 3.0-metadata-refactor updated (924e0bc -> 94cd246)

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

liujun pushed a change to branch 3.0-metadata-refactor
in repository https://gitbox.apache.org/repos/asf/dubbo.git.


    from 924e0bc  fix potential NPE
     new c32b75f  fix multip metadata cannot be initialized
     new 94cd246  fix shared metadata info being deleted unexpectedly

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/dubbo/config/deploy/DefaultApplicationDeployer.java   | 4 +++-
 .../org/apache/dubbo/metadata/report/MetadataReportInstance.java | 9 ++++++++-
 .../apache/dubbo/registry/client/AbstractServiceDiscovery.java   | 3 ++-
 3 files changed, 13 insertions(+), 3 deletions(-)

[dubbo] 01/02: fix multip metadata cannot be initialized

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 3.0-metadata-refactor
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit c32b75fb550ee088e6d7ea630960cb0931c92b5f
Author: ken.lj <ke...@gmail.com>
AuthorDate: Sat Dec 11 18:44:43 2021 +0800

    fix multip metadata cannot be initialized
---
 .../apache/dubbo/config/deploy/DefaultApplicationDeployer.java   | 4 +++-
 .../org/apache/dubbo/metadata/report/MetadataReportInstance.java | 9 ++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
index c535209..4ee9433 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
@@ -278,14 +278,16 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
         }
 
         MetadataReportInstance metadataReportInstance = applicationModel.getBeanFactory().getBean(MetadataReportInstance.class);
+        List<MetadataReportConfig> validMetadataReportConfigs = new ArrayList<>(metadataReportConfigs.size());
         for (MetadataReportConfig metadataReportConfig : metadataReportConfigs) {
             ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);
             if (!metadataReportConfig.isValid()) {
                 logger.info("Ignore invalid metadata-report config: " + metadataReportConfig);
                 continue;
             }
-            metadataReportInstance.init(metadataReportConfig);
+            validMetadataReportConfigs.add(metadataReportConfig);
         }
+        metadataReportInstance.init(validMetadataReportConfigs);
         if (!metadataReportInstance.inited()) {
             throw new IllegalStateException(String.format("%s MetadataConfigs found, but none of them is valid.", metadataReportConfigs.size()));
         }
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java
index bbb8d49..be4664d 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java
@@ -24,6 +24,7 @@ import org.apache.dubbo.metadata.report.support.NopMetadataReport;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -62,7 +63,7 @@ public class MetadataReportInstance implements Disposable {
         this.nopMetadataReport = new NopMetadataReport();
     }
 
-    public void init(MetadataReportConfig config) {
+    public void init(List<MetadataReportConfig> metadataReportConfigs) {
         if (!init.compareAndSet(false, true)) {
             return;
         }
@@ -73,6 +74,12 @@ public class MetadataReportInstance implements Disposable {
         }
 
         MetadataReportFactory metadataReportFactory = applicationModel.getExtensionLoader(MetadataReportFactory.class).getAdaptiveExtension();
+        for (MetadataReportConfig metadataReportConfig : metadataReportConfigs) {
+            init(metadataReportConfig, metadataReportFactory);
+        }
+    }
+
+    private void init(MetadataReportConfig config, MetadataReportFactory metadataReportFactory) {
         URL url = config.toUrl();
         if (METADATA_REPORT_KEY.equals(url.getProtocol())) {
             String protocol = url.getParameter(METADATA_REPORT_KEY, DEFAULT_DIRECTORY);

[dubbo] 02/02: fix shared metadata info being deleted unexpectedly

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 3.0-metadata-refactor
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 94cd246e694312f7d0826e90d2f0ce3e7372cf1b
Author: ken.lj <ke...@gmail.com>
AuthorDate: Sat Dec 11 18:45:13 2021 +0800

    fix shared metadata info being deleted unexpectedly
---
 .../org/apache/dubbo/registry/client/AbstractServiceDiscovery.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
index dab0e03..51532f9 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java
@@ -124,7 +124,8 @@ public abstract class AbstractServiceDiscovery implements ServiceDiscovery {
 
     @Override
     public synchronized void unregister() throws RuntimeException {
-        unReportMetadata(this.metadataInfo);
+        // fixme, this metadata info may still being shared by other instances
+//        unReportMetadata(this.metadataInfo);
         doUnregister(this.serviceInstance);
     }