This is an automated email from the ASF dual-hosted git repository. liujun pushed a commit to branch 3.0 in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit d95aa7e455af2e10d94e7bc356fdc27a0a844b8b Author: ken.lj <ken.lj...@gmail.com> AuthorDate: Tue Sep 8 17:16:20 2020 +0800 make sure dynamic configuration is included after globalConfiguration is cached. --- .../apache/dubbo/common/config/CompositeConfiguration.java | 12 ++++++++++++ .../java/org/apache/dubbo/common/config/Environment.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/CompositeConfiguration.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/CompositeConfiguration.java index eebf5a0..75a79a5 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/CompositeConfiguration.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/CompositeConfiguration.java @@ -38,6 +38,9 @@ public class CompositeConfiguration implements Configuration { */ private List<Configuration> configList = new LinkedList<Configuration>(); + //FIXME, consider change configList to SortedMap to replace this boolean status. + private boolean dynamicIncluded; + public CompositeConfiguration() { this(null, null); } @@ -58,6 +61,15 @@ public class CompositeConfiguration implements Configuration { } } + public void setDynamicIncluded(boolean dynamicIncluded) { + this.dynamicIncluded = dynamicIncluded; + } + + //FIXME, consider change configList to SortedMap to replace this boolean status. + public boolean isDynamicIncluded() { + return dynamicIncluded; + } + public void addConfiguration(Configuration configuration) { if (configList.contains(configuration)) { return; diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java index b5f24f7..afc5df3 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/Environment.java @@ -148,12 +148,18 @@ public class Environment extends LifecycleAdapter implements FrameworkExt { globalConfiguration = new CompositeConfiguration(); if (dynamicConfiguration != null) { globalConfiguration.addConfiguration(dynamicConfiguration); + globalConfiguration.setDynamicIncluded(true); } globalConfiguration.addConfiguration(systemConfiguration); globalConfiguration.addConfiguration(environmentConfiguration); globalConfiguration.addConfiguration(appExternalConfiguration); globalConfiguration.addConfiguration(externalConfiguration); globalConfiguration.addConfiguration(propertiesConfiguration); + } else { + if (!globalConfiguration.isDynamicIncluded() && dynamicConfiguration != null) { + globalConfiguration.addConfiguration(dynamicConfiguration); + globalConfiguration.setDynamicIncluded(true); + } } return globalConfiguration; }