This is an automated email from the ASF dual-hosted git repository.
liujun 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 5a827df support multiple address format (#6209)
5a827df is described below
commit 5a827df766f98afcaa723bb24231c3505bd7dcb8
Author: ken.lj
AuthorDate: Fri May 29 15:24:29 2020 +0800
support multiple address format (#6209)
---
.../src/main/java/org/apache/dubbo/config/RegistryConfig.java | 5 -
.../org/apache/dubbo/config/bootstrap/DubboBootstrap.java | 11 ++-
.../org/apache/dubbo/config/utils/ConfigValidationUtils.java | 5 -
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java
index 3b868fe..7a8e304 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java
@@ -25,6 +25,7 @@ import java.util.Map;
import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY;
import static
org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;
+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;
import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;
/**
@@ -216,7 +217,9 @@ public class RegistryConfig extends AbstractConfig {
//updateIdIfAbsent(url.getProtocol());
updateProtocolIfAbsent(url.getProtocol());
updatePortIfAbsent(url.getPort());
-updateParameters(url.getParameters());
+Map params = url.getParameters();
+params.remove(BACKUP_KEY);
+updateParameters(params);
} catch (Exception ignored) {
}
}
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index eee642b..cd92fe5 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@ -91,6 +91,7 @@ import static
java.util.concurrent.Executors.newSingleThreadExecutor;
import static
org.apache.dubbo.common.config.ConfigurationUtils.parseProperties;
import static
org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration;
import static
org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
+import static
org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;
import static
org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
import static org.apache.dubbo.common.function.ThrowableAction.execute;
import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;
@@ -661,7 +662,7 @@ public class DubboBootstrap extends GenericEventListener {
cc.getParameters().put(CLIENT_KEY,
registryConfig.getClient());
cc.setProtocol(registryConfig.getProtocol());
cc.setPort(registryConfig.getPort());
-cc.setAddress(registryConfig.getAddress());
+
cc.setAddress(getRegistryCompatibleAddress(registryConfig.getAddress()));
cc.setNamespace(registryConfig.getGroup());
cc.setUsername(registryConfig.getUsername());
cc.setPassword(registryConfig.getPassword());
@@ -674,6 +675,14 @@ public class DubboBootstrap extends GenericEventListener {
startConfigCenter();
}
+private String getRegistryCompatibleAddress(String registryAddress) {
+String[] addresses = REGISTRY_SPLIT_PATTERN.split(registryAddress);
+if (addresses == null || addresses.length == 0) {
+throw new IllegalStateException("Invalid registry address found.");
+}
+return addresses[0];
+}
+
private void loadRemoteConfigs() {
// registry ids to registry configs
List tmpRegistries = new ArrayList<>();
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
index 43a2f5b..ba8b9a7 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ConfigValidationUtils.java
@@ -89,6 +89,7 @@ import static
org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
import static