You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/11/15 11:18:09 UTC
[incubator-dubbo] branch dev-metadata updated: avoid repeat init of
dynamicconfiguration
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
The following commit(s) were added to refs/heads/dev-metadata by this push:
new 2e9e85a avoid repeat init of dynamicconfiguration
new 92e8825 Merge branch 'dev-metadata' of https://github.com/apache/incubator-dubbo into dev-metadata
2e9e85a is described below
commit 2e9e85a55a42c0212d1b7d4813e846eb7ff29bfb
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Nov 15 19:17:30 2018 +0800
avoid repeat init of dynamicconfiguration
---
.../org/apache/dubbo/config/ConfigCenterConfig.java | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
index ad63468..523d2e0 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ConfigCenterConfig.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.config;
import org.apache.dubbo.common.Constants;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.ExtensionLoader;
+import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.common.utils.UrlUtils;
import org.apache.dubbo.config.context.Environment;
@@ -30,6 +31,7 @@ import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
/**
*
@@ -94,11 +96,16 @@ public class ConfigCenterConfig extends AbstractConfig {
// checkConfigCenter();
URL url = toConfigUrl();
- DynamicConfiguration dynamicConfiguration = ExtensionLoader.getExtensionLoader(DynamicConfiguration.class).getExtension(url.getProtocol());
- // TODO, maybe we need a factory to do this?
- dynamicConfiguration.setUrl(url);
- dynamicConfiguration.init();
- return dynamicConfiguration;
+ Set<Object> loadedConfigurations = ExtensionLoader.getExtensionLoader(DynamicConfiguration.class).getLoadedExtensionInstances();
+ if (CollectionUtils.isEmpty(loadedConfigurations)) {
+ DynamicConfiguration dynamicConfiguration = ExtensionLoader.getExtensionLoader(DynamicConfiguration.class).getExtension(url.getProtocol());
+ // TODO, maybe we need a factory to do this?
+ dynamicConfiguration.setUrl(url);
+ dynamicConfiguration.init();
+ return dynamicConfiguration;
+ }
+
+ return (DynamicConfiguration) loadedConfigurations.iterator().next();
}
private URL toConfigUrl() {