This is an automated email from the ASF dual-hosted git repository. liujun pushed a commit to branch dev-metadata in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
commit 8839c9b2067a6fb3cc53c9f76463370a0dbb9efa Author: ken.lj <[email protected]> AuthorDate: Wed Oct 24 11:03:11 2018 +0800 Ignore invalid configurators --- dubbo-dependencies-bom/pom.xml | 1 - dubbo-governance/dubbo-governance-zookeeper/pom.xml | 5 ----- .../support/archaius/sources/ZooKeeperConfigurationSource.java | 4 ++++ .../org/apache/dubbo/registry/integration/RegistryDirectory.java | 9 +++++++-- .../org/apache/dubbo/registry/integration/RegistryProtocol.java | 9 +++++++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 4cd3a04..1c4cbc5 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -378,7 +378,6 @@ <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>${commons_configuration_version}</version> - <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> diff --git a/dubbo-governance/dubbo-governance-zookeeper/pom.xml b/dubbo-governance/dubbo-governance-zookeeper/pom.xml index 55b7bba..2e5c61a 100644 --- a/dubbo-governance/dubbo-governance-zookeeper/pom.xml +++ b/dubbo-governance/dubbo-governance-zookeeper/pom.xml @@ -34,11 +34,6 @@ <version>${project.parent.version}</version> </dependency> <dependency> - <groupId>org.apache.dubbo</groupId> - <artifactId>dubbo-remoting-zookeeper</artifactId> - <version>${project.parent.version}</version> - </dependency> - <dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> </dependency> diff --git a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java b/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java index 0da40ea..7a96c4d 100644 --- a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java +++ b/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java @@ -77,6 +77,10 @@ public class ZooKeeperConfigurationSource implements WatchedConfigurationSource, throw new IllegalArgumentException("connectString==null, must specify the address to connect for zookeeper archaius source."); } + if (!configRootPath.startsWith("/")) { + configRootPath = "/" + configRootPath; + } + CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, sessionTimeout, connectTimeout, new ExponentialBackoffRetry(1000, 3)); client.start(); diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java index 09e82fd..6c51eb7 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java @@ -170,8 +170,13 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify if (StringUtils.isEmpty(rawConfig)) { return new LinkedList<>(); } - List<URL> urls = ConfigParser.parseConfigurators(rawConfig); - return urls.stream().map(configuratorFactory::getConfigurator).collect(Collectors.toList()); + try { + List<URL> urls = ConfigParser.parseConfigurators(rawConfig); + return urls.stream().map(configuratorFactory::getConfigurator).collect(Collectors.toList()); + } catch (Exception e) { + logger.error("Failed to parse raw dynamic config and it will not take effect, the raw config is: " + rawConfig, e); + } + return new LinkedList<>(); } public void setProtocol(Protocol protocol) { diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java index 764b873..7003a4c 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java @@ -616,8 +616,13 @@ public class RegistryProtocol implements Protocol { urls = new ArrayList<>(); urls.add(originUrl); } else { - // parseConfigurators will recognize app/service config automatically. - urls = ConfigParser.parseConfigurators(event.getNewValue()); + try { + // parseConfigurators will recognize app/service config automatically. + urls = ConfigParser.parseConfigurators(event.getNewValue()); + } catch (Exception e) { + logger.error("Failed to parse raw dynamic config and it will not take effect, the raw config is: " + event.getNewValue(), e); + return; + } } notify(urls); }
