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