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

huxing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 8321c8f  fix for #4111 do not ignore empty value when we construct 
servicename (#4112)
8321c8f is described below

commit 8321c8f8a3a0fafd66d4a2ffc58deacbfdf34c55
Author: uglycow <[email protected]>
AuthorDate: Thu May 23 18:36:53 2019 +0800

    fix for #4111 do not ignore empty value when we construct servicename 
(#4112)
---
 .../apache/dubbo/registry/nacos/NacosRegistry.java | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
index ff53d64..6639962 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
@@ -278,19 +278,19 @@ public class NacosRegistry extends FailbackRegistry {
 
         final String targetServiceInterface = url.getServiceInterface();
 
-        final String targetVersion = url.getParameter(VERSION_KEY);
+        final String targetVersion = url.getParameter(VERSION_KEY,"");
 
-        final String targetGroup = url.getParameter(GROUP_KEY);
+        final String targetGroup = url.getParameter(GROUP_KEY,"");
 
         filterData(serviceNames, serviceName -> {
             // split service name to segments
             // (required) segments[0] = category
             // (required) segments[1] = serviceInterface
-            // (required) segments[2] = version
+            // (optional) segments[2] = version
             // (optional) segments[3] = group
             String[] segments = StringUtils.split(serviceName, 
SERVICE_NAME_SEPARATOR);
             int length = segments.length;
-            if (length < 3) { // must present 3 segments or more
+            if (length != 4) { // must present 4 segments
                 return false;
             }
 
@@ -311,8 +311,7 @@ public class NacosRegistry extends FailbackRegistry {
                 return false;
             }
 
-            String group = length > 3 ? segments[SERVICE_GROUP_INDEX] : null;
-            // no match service group
+            String group = segments[SERVICE_GROUP_INDEX];
             return group == null || WILDCARD.equals(targetGroup)
                     || StringUtils.equals(targetGroup, group);
         });
@@ -420,16 +419,17 @@ public class NacosRegistry extends FailbackRegistry {
 
     private String getServiceName(URL url, String category) {
         StringBuilder serviceNameBuilder = new StringBuilder(category);
-        appendIfPresent(serviceNameBuilder, url, INTERFACE_KEY);
-        appendIfPresent(serviceNameBuilder, url, VERSION_KEY);
-        appendIfPresent(serviceNameBuilder, url, GROUP_KEY);
+        append(serviceNameBuilder, url, INTERFACE_KEY);
+        append(serviceNameBuilder, url, VERSION_KEY);
+        append(serviceNameBuilder, url, GROUP_KEY);
         return serviceNameBuilder.toString();
     }
 
-    private void appendIfPresent(StringBuilder target, URL url, String 
parameterName) {
+    private void append(StringBuilder target, URL url, String parameterName) {
+        target.append(SERVICE_NAME_SEPARATOR);
         String parameterValue = url.getParameter(parameterName);
         if (!StringUtils.isBlank(parameterValue)) {
-            target.append(SERVICE_NAME_SEPARATOR).append(parameterValue);
+            target.append(parameterValue);
         }
     }
 

Reply via email to