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 <ken.lj...@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; + } }