in archaius2-guice/src/main/java/com/netflix/archaius/guice/InternalArchaiusModule.java [154:194]
Config getConfig(ConfigParameters params, @Raw CompositeConfig config, ConfigLoader loader) throws Exception {
CompositeConfig applicationLayer = new DefaultCompositeConfig();
CompositeConfig remoteLayer = new DefaultCompositeConfig();
config.addConfig(RUNTIME_LAYER_NAME, params.runtimeLayer);
config.addConfig(REMOTE_LAYER_NAME, remoteLayer);
config.addConfig(SYSTEM_LAYER_NAME, SystemConfig.INSTANCE);
config.addConfig(ENVIRONMENT_LAYER_NAME, EnvironmentConfig.INSTANCE);
config.addConfig(APPLICATION_LAYER_NAME, applicationLayer);
config.addConfig(LIBRARIES_LAYER_NAME, params.librariesLayer);
// Load defaults layer
if (params.hasDefaultConfigs()) {
CompositeConfig defaultLayer = new DefaultCompositeConfig();
config.addConfig(DEFAULT_LAYER_NAME, defaultLayer);
for (Config c : params.defaultConfigs) {
defaultLayer.addConfig(getUniqueName("default"), c);
}
}
if (params.hasOverrideResources()) {
for (String resourceName : params.overrideResources) {
applicationLayer.addConfig(resourceName, loader.newLoader().load(resourceName));
}
}
if (params.hasApplicationOverride()) {
applicationLayer.addConfig(getUniqueName("override"), params.applicationOverride);
}
applicationLayer.addConfig(params.getConfigName(), loader
.newLoader()
.load(params.getConfigName()));
// Load remote properties
if (params.hasRemoteLayer()) {
remoteLayer.addConfig(getUniqueName("remote"), params.remoteLayerProvider.get());
}
return config;
}