use of org.apache.commons.configuration2.CombinedConfiguration in project engine by craftercms.
the class MultiResourceConfigurationBuilder method getConfiguration.
@Override
public HierarchicalConfiguration getConfiguration() throws ConfigurationException {
List<HierarchicalConfiguration> configs = new ArrayList<>();
// Last configurations should be loaded and added first so that they have greater priority.
logger.info("Loading XML configurations in the order in which the properties will be resolved");
for (int i = configPaths.length - 1; i >= 0; i--) {
try {
Resource resource = resourceLoader.getResource(configPaths[i]);
if (resource.exists()) {
Map<String, Lookup> prefixLookups = null;
if (configDecryptor != null) {
prefixLookups = Collections.singletonMap(encryptedValuePrefix, new DecryptionLookup(configDecryptor));
}
XMLConfiguration config = ConfigUtils.readXmlConfiguration(resource, configListDelimiter, prefixLookups);
logger.info("XML configuration loaded from " + resource);
configs.add(config);
}
} catch (Exception e) {
throw new ConfigurationException("Unable to load configuration at " + configPaths[i], e);
}
}
if (configs.size() > 1) {
CombinedConfiguration combinedConfig = new CombinedConfiguration(new OverrideCombiner());
for (Configuration config : configs) {
combinedConfig.addConfiguration(config);
}
return combinedConfig;
} else if (configs.size() == 1) {
return configs.get(0);
} else {
return null;
}
}
use of org.apache.commons.configuration2.CombinedConfiguration in project sponge by softelnet.
the class DefaultConfigurationManager method createRootConfig.
protected CommonsConfiguration createRootConfig() {
MergeCombiner combiner = new MergeCombiner();
combiner.addListNode(PluginManagerConstants.CFG_PLUGIN);
CombinedConfiguration cc = new CombinedConfiguration(combiner);
// Try to add explicit configuration
if (configurationFilename != null) {
logger.info("Loading configuration file {}...", configurationFilename);
Pair<XMLConfiguration, URL> configurationPair = createXmlConfiguration(configurationFilename);
cc.addConfiguration(configurationPair.getLeft());
configurationFileUrl = configurationPair.getRight();
}
// Add default configuration
cc.addConfiguration(createXmlConfiguration(ConfigurationConstants.DEFAULT_CONFIG).getLeft());
return new CommonsConfiguration(cc);
}
Aggregations