List of usage examples for org.apache.commons.configuration CombinedConfiguration getConfiguration
public Configuration getConfiguration(String name)
From source file:com.netflix.config.util.ConfigurationUtils.java
/** * Gets all named sub-configuration from a configuration in a map. This method examines each sub-configuration * which is an instance of {@link ConcurrentCompositeConfiguration} or CombinedConfiguration and extract the * named configurations out of them.//w ww. ja va2 s . c o m * * @param conf Configuration to get all the named sub-configurations * @return map where key is the name of the sub-configuration and value is the sub-configuration */ public static Map<String, Configuration> getAllNamedConfiguration(Configuration conf) { List<Configuration> toProcess = new ArrayList<Configuration>(); Map<String, Configuration> map = new HashMap<String, Configuration>(); toProcess.add(conf); while (!toProcess.isEmpty()) { Configuration current = toProcess.remove(0); if (current instanceof ConcurrentCompositeConfiguration) { ConcurrentCompositeConfiguration composite = (ConcurrentCompositeConfiguration) current; for (String name : composite.getConfigurationNames()) { map.put(name, composite.getConfiguration(name)); } for (Configuration c : composite.getConfigurations()) { toProcess.add(c); } } else if (current instanceof CombinedConfiguration) { CombinedConfiguration combined = (CombinedConfiguration) current; for (String name : (Set<String>) combined.getConfigurationNames()) { map.put(name, combined.getConfiguration(name)); } for (int i = 0; i < combined.getNumberOfConfigurations(); i++) { toProcess.add(combined.getConfiguration(i)); } } } return map; }
From source file:com.netflix.config.util.ConfigurationUtils.java
/** * Convert CombinedConfiguration into {@link ConcurrentCompositeConfiguration} as the later has better performance * and thread safety. // w w w . j a v a 2 s . c o m * * @param config Configuration to be converted */ public static ConcurrentCompositeConfiguration convertToConcurrentCompositeConfiguration( CombinedConfiguration config) { ConcurrentCompositeConfiguration root = new ConcurrentCompositeConfiguration(); IdentityHashMap<Configuration, String> reverseMap = new IdentityHashMap<Configuration, String>(); for (String name : (Set<String>) config.getConfigurationNames()) { Configuration child = config.getConfiguration(name); reverseMap.put(child, name); } for (int i = 0; i < config.getNumberOfConfigurations(); i++) { Configuration child = config.getConfiguration(i); String name = reverseMap.get(child); if (child instanceof CombinedConfiguration) { CombinedConfiguration combinedConf = (CombinedConfiguration) child; ConcurrentCompositeConfiguration newConf = convertToConcurrentCompositeConfiguration(combinedConf); root.addConfiguration(newConf, name); } else { Configuration conf = new ConcurrentMapConfiguration(child); root.addConfiguration((AbstractConfiguration) conf, name); } } return root; }