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 2020/09/10 04:34:28 UTC
[dubbo] 01/04: make sure dynamic configuration is included after
globalConfiguration is cached.
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 <ke...@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;
}