make sure dynamic configuration is included after globalConfiguration is cached.

This commit is contained in:
ken.lj 2020-09-08 17:16:20 +08:00
parent b5bb147249
commit d95aa7e455
2 changed files with 18 additions and 0 deletions

View File

@ -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;

View File

@ -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;
}