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 03:30:11 UTC
[incubator-dubbo] 01/03: support standard spring PropertySource
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 042ab09db1940c73b5171b88b2cbb1607477af4d
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Nov 13 23:02:39 2018 +0800
support standard spring PropertySource
---
.../dubbo/config/spring/ConfigCenterBean.java | 25 ++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
index 653a2f5..a0bc0a6 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
@@ -25,7 +25,9 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.EnvironmentAware;
+import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.Environment;
+import org.springframework.core.env.PropertySource;
import java.util.HashMap;
import java.util.Map;
@@ -85,9 +87,20 @@ public class ConfigCenterBean extends ConfigCenterConfig implements Initializing
Map<String, String> externalProperties = new HashMap<>();
try {
if (rawProperties instanceof Map) {
- externalProperties = (Map<String, String>) rawProperties;
+ externalProperties.putAll((Map<String, String>) rawProperties);
} else if (rawProperties instanceof String) {
- externalProperties = parseProperties((String) rawProperties);
+ externalProperties.putAll(parseProperties((String) rawProperties));
+ }
+
+ if (environment instanceof ConfigurableEnvironment && externalProperties.isEmpty()) {
+ ConfigurableEnvironment configurableEnvironment = (ConfigurableEnvironment) environment;
+ PropertySource propertySource = configurableEnvironment.getPropertySources().get("dubbo.properties");
+ Object source = propertySource.getSource();
+ if (source instanceof Map) {
+ ((Map<String, Object>) source).forEach((k, v) -> {
+ externalProperties.put(k, (String) v);
+ });
+ }
}
org.apache.dubbo.config.context.Environment.getInstance().updateExternalConfigurationMap(externalProperties);
} catch (Exception e) {
@@ -95,4 +108,12 @@ public class ConfigCenterBean extends ConfigCenterConfig implements Initializing
}
}
}
+
+ public boolean isAuto() {
+ return auto;
+ }
+
+ public void setAuto(boolean auto) {
+ this.auto = auto;
+ }
}