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

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


The following commit(s) were added to refs/heads/master by this push:
     new 85b96e2  fixed registryConfig equals (#4359)
85b96e2 is described below

commit 85b96e2803a730be6953b72c45e919e73a1bab10
Author: huaifeng <[email protected]>
AuthorDate: Wed Jul 17 11:07:05 2019 +0800

    fixed registryConfig equals (#4359)
    
    * fixed registryConfig equals
    
    * port > 0
---
 .../java/org/apache/dubbo/config/RegistryConfig.java | 20 ++++++++++++++++++--
 .../org/apache/dubbo/config/RegistryConfigTest.java  | 12 +++++++++++-
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
index 83f56b1..abcc062 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/RegistryConfig.java
@@ -23,11 +23,11 @@ import org.apache.dubbo.remoting.Constants;
 import java.util.Map;
 
 import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;
-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PASSWORD_KEY;
-import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;
+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
 import static 
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.USERNAME_KEY;
+import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;
 import static org.apache.dubbo.config.Constants.ZOOKEEPER_PROTOCOL;
 import static org.apache.dubbo.registry.Constants.EXTRA_KEYS_KEY;
 
@@ -182,6 +182,11 @@ public class RegistryConfig extends AbstractConfig {
             int i = address.indexOf("://");
             if (i > 0) {
                 this.updateIdIfAbsent(address.substring(0, i));
+                this.updateProtocolIfAbsent(address.substring(0, i));
+                int port = address.lastIndexOf(":");
+                if (port > 0) {
+                    
this.updatePortIfAbsent(StringUtils.parseInteger(address.substring(port + 1)));
+                }
             }
         }
     }
@@ -432,4 +437,15 @@ public class RegistryConfig extends AbstractConfig {
         return !StringUtils.isEmpty(address);
     }
 
+    protected void updatePortIfAbsent(Integer value) {
+        if (value != null && value > 0 && port == null) {
+            this.port = value;
+        }
+    }
+
+    protected void updateProtocolIfAbsent(String value) {
+        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(protocol)) {
+            this.protocol = value;
+        }
+    }
 }
diff --git 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
index 51d91fc..fb74b1e 100644
--- 
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
+++ 
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
@@ -17,14 +17,15 @@
 
 package org.apache.dubbo.config;
 
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.apache.dubbo.config.Constants.SHUTDOWN_TIMEOUT_KEY;
 import static 
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
+import static org.apache.dubbo.config.Constants.SHUTDOWN_TIMEOUT_KEY;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
@@ -177,4 +178,13 @@ public class RegistryConfigTest {
         assertThat(registry.isDefault(), is(true));
     }
 
+    @Test
+    public void testEquals() throws Exception {
+        RegistryConfig registry1 = new RegistryConfig();
+        RegistryConfig registry2 = new RegistryConfig();
+        registry1.setAddress("zookeeper://127.0.0.1:2182");
+        registry2.setAddress("zookeeper://127.0.0.1:2183");
+        Assertions.assertNotEquals(registry1, registry2);
+    }
+
 }

Reply via email to