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/20 06:17:31 UTC

[dubbo] branch 3.0 updated: Fix the issue that ApplicationConfig#getmetadataserviceprotocol method maps the wrong key (#9415)

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

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


The following commit(s) were added to refs/heads/3.0 by this push:
     new a9673ee  Fix the issue that ApplicationConfig#getmetadataserviceprotocol method maps the wrong key (#9415)
a9673ee is described below

commit a9673ee53e5c0557c13d9dab1cdacad1f3ba8867
Author: 灼华 <43...@users.noreply.github.com>
AuthorDate: Mon Dec 20 14:17:16 2021 +0800

    Fix the issue that ApplicationConfig#getmetadataserviceprotocol method maps the wrong key (#9415)
---
 .../src/main/java/org/apache/dubbo/config/ApplicationConfig.java   | 3 ++-
 .../dubbo/config/metadata/ConfigurableMetadataServiceExporter.java | 3 +--
 .../src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java | 4 ++++
 .../registry/client/metadata/ServiceInstanceMetadataUtils.java     | 7 ++-----
 .../dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java       | 2 +-
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
index 454b76d..772c313 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java
@@ -42,6 +42,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.LIVENESS_PROBE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PORT_KEY;
+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PROTOCOL_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.READINESS_PROBE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED;
 import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
@@ -532,7 +533,7 @@ public class ApplicationConfig extends AbstractConfig {
         this.metadataServicePort = metadataServicePort;
     }
 
-    @Parameter(key = METADATA_SERVICE_PORT_KEY)
+    @Parameter(key = METADATA_SERVICE_PROTOCOL_KEY)
     public String getMetadataServiceProtocol() {
         return metadataServiceProtocol;
     }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java
index 89659fe..39a1fc6 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java
@@ -183,7 +183,6 @@ public class ConfigurableMetadataServiceExporter implements MetadataServiceExpor
                     if (it.hasNext()) {
                         String addr = it.next().getAddress();
                         String rawPort = addr.substring(addr.indexOf(":") + 1);
-                        logger.info("Using " + specifiedProtocol +" protocol to export MetadataService on port " + rawPort);
                         protocolConfig.setPort(Integer.parseInt(rawPort));
                     }
                 }
@@ -198,7 +197,7 @@ public class ConfigurableMetadataServiceExporter implements MetadataServiceExpor
             protocolConfig.setPort(-1);
         }
 
-        logger.info("Using dubbo protocol to export metadata service on port " + protocolConfig.getPort());
+        logger.info("Using " + specifiedProtocol + " protocol to export metadata service on port " + protocolConfig.getPort());
 
         return protocolConfig;
     }
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
index 3a0b747..ecc7e8d 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
@@ -92,6 +92,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.LIVENESS_PROBE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PORT_KEY;
+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PROTOCOL_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.READINESS_PROBE_KEY;
@@ -180,6 +181,7 @@ public class ReferenceConfigTest {
         applicationConfig.setPublishInterface(false);
         applicationConfig.setProtocol("dubbo");
         applicationConfig.setMetadataServicePort(88888);
+        applicationConfig.setMetadataServiceProtocol("tri");
         applicationConfig.setLivenessProbe("livenessProbe");
         applicationConfig.setReadinessProbe("readinessProb");
         applicationConfig.setStartupProbe("startupProbe");
@@ -320,6 +322,8 @@ public class ReferenceConfigTest {
         Assertions.assertTrue(serviceMetadata.getAttachments().containsKey(REGISTRY_PUBLISH_INTERFACE_KEY));
         Assertions.assertEquals(applicationConfig.getMetadataServicePort().toString(),
             serviceMetadata.getAttachments().get(METADATA_SERVICE_PORT_KEY));
+        Assertions.assertEquals(applicationConfig.getMetadataServiceProtocol().toString(),
+            serviceMetadata.getAttachments().get(METADATA_SERVICE_PROTOCOL_KEY));
         Assertions.assertEquals(applicationConfig.getLivenessProbe(),
             serviceMetadata.getAttachments().get(LIVENESS_PROBE_KEY));
         Assertions.assertEquals(applicationConfig.getReadinessProbe(),
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
index bc9064e..0ba0d14 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java
@@ -116,10 +116,7 @@ public class ServiceInstanceMetadataUtils {
         if (url == null) {
             return "";
         }
-        url = url.removeParameter(APPLICATION_KEY);
-        url = url.removeParameter(GROUP_KEY);
-        url = url.removeParameter(DEPRECATED_KEY);
-        url = url.removeParameter(TIMESTAMP_KEY);
+        url = url.removeParameters(APPLICATION_KEY, GROUP_KEY, DEPRECATED_KEY, TIMESTAMP_KEY);
         Map<String, String> params = getParams(url);
 
         if (params.isEmpty()) {
@@ -278,7 +275,7 @@ public class ServiceInstanceMetadataUtils {
                 LOGGER.warn("Refreshing of service instance started, but instance hasn't been registered yet.");
                 instance = serviceInstance;
             }
-            // copy instance again, in case the same instance accidently shared among registries
+            // copy instance again, in case the same instance accidentally shared among registries
             instance = new DefaultServiceInstance((DefaultServiceInstance) instance);
             calInstanceRevision(serviceDiscovery, instance);
             customizeInstance(instance);
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
index 97e471f..725857f 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java
@@ -107,7 +107,7 @@ public abstract class CuratorFrameworkUtils {
         int port = serviceInstance.getPort();
         Map<String, String> metadata = serviceInstance.getSortedMetadata();
         String id = generateId(host, port);
-        ZookeeperInstance zookeeperInstance = new ZookeeperInstance(null, serviceName, metadata);
+        ZookeeperInstance zookeeperInstance = new ZookeeperInstance(id, serviceName, metadata);
         try {
             builder = builder()
                 .id(id)