List of usage examples for org.apache.commons.configuration CombinedConfiguration addConfiguration
public void addConfiguration(AbstractConfiguration config)
From source file:com.appeligo.config.ConfigurationService.java
private static AbstractConfiguration createConfig(File envFile, File baseFile) { if (log.isInfoEnabled()) { log.info("Initiating configuration " + baseFile + " : " + envFile); }//w ww .j av a2 s. c om AbstractConfiguration envConfig = null; AbstractConfiguration baseConfig = null; if (envFile.isFile()) { try { if (envFile.getName().endsWith(".xml")) { if (log.isDebugEnabled()) { log.debug("Creating xml config: " + envFile); } envConfig = new XMLConfiguration(); ((XMLConfiguration) envConfig).setValidating(false); ((XMLConfiguration) envConfig).load(envFile); } else if (envFile.getName().endsWith(".properties")) { if (log.isDebugEnabled()) { log.debug("Creating properties config: " + envFile); } envConfig = new PropertiesConfiguration(envFile); } } catch (ConfigurationException e) { if (log.isErrorEnabled()) { log.error("Cannot create AbstractConfiguration for: " + envFile, e); } } } if (baseFile.isFile()) { try { if (baseFile.getName().endsWith(".xml")) { if (log.isDebugEnabled()) { log.debug("Creating xml config: " + baseFile); } baseConfig = new XMLConfiguration(); ((XMLConfiguration) baseConfig).setValidating(false); ((XMLConfiguration) baseConfig).load(baseFile); } else if (baseFile.getName().endsWith(".properties")) { if (log.isDebugEnabled()) { log.debug("Creating properties config: " + baseFile); } baseConfig = new PropertiesConfiguration(baseFile); } } catch (ConfigurationException e) { if (log.isErrorEnabled()) { log.error("Cannot create AbstractConfiguration for: " + baseFile, e); } } } if (envConfig != null && baseConfig != null) { //create a combined AbstractConfiguration if (log.isDebugEnabled()) { log.debug("Creating combined config: " + envFile + " -> " + baseFile); } CombinedConfiguration combined = new CombinedConfiguration(); combined.addConfiguration(envConfig); combined.addConfiguration(baseConfig); return combined; } else if (envConfig != null) { return envConfig; } else { return baseConfig; } }
From source file:com.nesscomputing.config.Config.java
/** * Creates a fixed configuration for the supplied {@link AbstractConfiguration} objects. Only key/value * pairs from these objects will be present in the final configuration. * * There is no implicit override from system properties. *///from ww w .j a va 2 s . c o m public static Config getFixedConfig(@Nullable final AbstractConfiguration... configs) { final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); if (configs != null) { for (final AbstractConfiguration config : configs) { cc.addConfiguration(config); } } return new Config(cc); }
From source file:com.nesscomputing.config.Config.java
/** * Create a new configuration object from an existing object using overrides. If no overrides are passed in, the same object is returned. * * the/*from www . ja v a 2 s . c om*/ */ public static Config getOverriddenConfig(@Nonnull final Config config, @Nullable final AbstractConfiguration... overrideConfigurations) { if (overrideConfigurations == null || overrideConfigurations.length == 0) { return config; } final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); int index = 0; final AbstractConfiguration first = config.config.getNumberOfConfigurations() > 0 ? AbstractConfiguration.class.cast(config.config.getConfiguration(index)) // cast always succeeds, internally this returns cd.getConfiguration() which is AbstractConfiguration : null; // If the passed in configuration has a system config, add this as the very first one so // that system properties override still works. if (first != null && first.getClass() == SystemConfiguration.class) { cc.addConfiguration(first); index++; } else { // Otherwise, if any of the passed in configuration objects is a SystemConfiguration, // put that at the very beginning. for (AbstractConfiguration c : overrideConfigurations) { if (c.getClass() == SystemConfiguration.class) { cc.addConfiguration(c); } } } for (AbstractConfiguration c : overrideConfigurations) { if (c.getClass() != SystemConfiguration.class) { cc.addConfiguration(c); // Skip system configuration objects, they have been added earlier. } } // Finally, add the existing configuration elements at lowest priority. while (index < config.config.getNumberOfConfigurations()) { final AbstractConfiguration c = AbstractConfiguration.class .cast(config.config.getConfiguration(index++)); if (c.getClass() != SystemConfiguration.class) { cc.addConfiguration(c); } } return new Config(cc); }
From source file:com.nesscomputing.jdbc.C3P0DataSourceProvider.java
private Properties getProperties(final String suffix) { final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); if (props != null) { // Allow setting of internal defaults by using "ds.xxx" and "pool.xxx" if a properties // object is present. cc.addConfiguration( new ImmutableConfiguration(ConfigurationConverter.getConfiguration(props).subset(suffix))); }//from ww w . j a va 2s .co m if (config != null) { cc.addConfiguration(config.getConfiguration(propertiesPrefix + "." + suffix)); cc.addConfiguration(config.getConfiguration(DEFAULTS_PREFIX + "." + suffix)); } return ConfigurationConverter.getProperties(cc); }
From source file:com.comcast.viper.flume2storm.IntegrationTest.java
/** * Integration test with the test implementation of the Location Service and * the Connection API/*from w w w. j a v a2 s . c o m*/ * * @throws Exception * If anything went wrong */ // @Test public void testTestImpl() throws Exception { // Base storm sink configuration BaseConfiguration sinkBaseConfig = new BaseConfiguration(); sinkBaseConfig.addProperty(StormSinkConfiguration.LOCATION_SERVICE_FACTORY_CLASS, SimpleLocationServiceFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, SimpleServiceProviderSerialization.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.EVENT_SENDER_FACTORY_CLASS, SimpleEventSenderFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.CONNECTION_PARAMETERS_FACTORY_CLASS, SimpleConnectionParametersFactory.class.getName()); // First storm sink configuration BaseConfiguration sink1ConnectionParameters = new BaseConfiguration(); sink1ConnectionParameters.addProperty(SimpleConnectionParameters.HOSTNAME, "host1"); sink1ConnectionParameters.addProperty(SimpleConnectionParameters.PORT, 7001); CombinedConfiguration sink1Config = new CombinedConfiguration(); sink1Config.addConfiguration(sinkBaseConfig); sink1Config.addConfiguration(sink1ConnectionParameters, "connectionParams", SimpleConnectionParametersFactory.CONFIG_BASE_NAME); config.addConfiguration(sink1Config, SINK1_CONFIG); // Second storm sink configuration BaseConfiguration sink2ConnectionParameters = new BaseConfiguration(); sink2ConnectionParameters.addProperty(SimpleConnectionParameters.HOSTNAME, "host2"); sink2ConnectionParameters.addProperty(SimpleConnectionParameters.PORT, 7002); CombinedConfiguration sink2Config = new CombinedConfiguration(); sink2Config.addConfiguration(sinkBaseConfig); sink2Config.addConfiguration(sink2ConnectionParameters, "connectionParams", SimpleConnectionParametersFactory.CONFIG_BASE_NAME); config.addConfiguration(sink2Config, SINK2_CONFIG); // Flume-spout configuration BaseConfiguration flumeSpoutConfig = new BaseConfiguration(); flumeSpoutConfig.addProperty(FlumeSpoutConfiguration.LOCATION_SERVICE_FACTORY_CLASS, SimpleLocationServiceFactory.class.getName()); flumeSpoutConfig.addProperty(FlumeSpoutConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, SimpleServiceProviderSerialization.class.getName()); flumeSpoutConfig.addProperty(FlumeSpoutConfiguration.EVENT_RECEPTOR_FACTORY_CLASS, SimpleEventReceptorFactory.class.getName()); config.addConfiguration(flumeSpoutConfig, SPOUT_CONFIG); testAll(); }
From source file:com.aol.advertising.qiao.config.AgentXmlConfiguration.java
/** * Load configuration file and interpolate variables. Note that due to the * way Apache Commons Configuration treats property keys, user should avoid * using dot ('.') in the property key. Otherwise ACC may not substitute * some value if the variable contains valid element name(s). * * @param xmlConfigFile/*from ww w.j a va 2 s .c om*/ * @param propConfigFiles * @return * @throws ConfigurationException */ protected HierarchicalConfiguration readConfigurationFiles(String xmlConfigFile, String propConfigFiles) throws ConfigurationException { try { // convert URI to URL URL[] prop_urls = null; URL xml_url = CommonUtils.uriToURL(xmlConfigFile); if (propConfigFiles != null) { String[] prop_files = propConfigFiles.split(","); prop_urls = new URL[prop_files.length]; for (int i = 0; i < prop_files.length; i++) { prop_urls[i] = CommonUtils.uriToURL(prop_files[i]); } } // combine xml and properties configurations CombinedConfiguration combined_cfg = new CombinedConfiguration(new OverrideCombiner()); XMLConfiguration cfg_xml = new XMLConfiguration(); cfg_xml.setDelimiterParsingDisabled(true); cfg_xml.setAttributeSplittingDisabled(true); cfg_xml.load(xml_url); combined_cfg.addConfiguration(cfg_xml); if (prop_urls != null) { // properties in the earlier files take precedence if duplicate for (int i = 0; i < prop_urls.length; i++) { PropertiesConfiguration cfg_props = new PropertiesConfiguration(); cfg_props.setDelimiterParsingDisabled(true); cfg_props.load(prop_urls[i]); combined_cfg.addConfiguration(cfg_props); } } HierarchicalConfiguration config = (HierarchicalConfiguration) combined_cfg.interpolatedConfiguration(); // !!! resolve variables return config; } catch (Exception e) { throw new ConfigurationException(e.getMessage(), e); } }
From source file:com.comcast.viper.flume2storm.IntegrationTest.java
/** * Integration test with the Dynamic Location Service and the KryoNet * Connection API//from w ww . j a v a 2 s .c o m * * @throws Exception * If anything went wrong */ @Test public void testDynamicLocationServiceWithKryoNet() throws Exception { // // Flume Configuration // // Base storm sink configuration BaseConfiguration sinkBaseConfig = new BaseConfiguration(); sinkBaseConfig.addProperty(StormSinkConfiguration.LOCATION_SERVICE_FACTORY_CLASS, DynamicLocationServiceFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, KryoNetServiceProviderSerialization.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.EVENT_SENDER_FACTORY_CLASS, KryoNetEventSenderFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.CONNECTION_PARAMETERS_FACTORY_CLASS, KryoNetConnectionParametersFactory.class.getName()); // Location Service configuration BaseConfiguration locationServiceConfig = new BaseConfiguration(); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.CONNECTION_STRING, // zkServer.getConnectString()); "127.0.0.1:" + ZK_PORT); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.SESSION_TIMEOUT, 2000); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.CONNECTION_TIMEOUT, 500); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.RECONNECTION_DELAY, 1000); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.TERMINATION_TIMEOUT, 2000); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.BASE_PATH, "/unitTest"); locationServiceConfig.addProperty(DynamicLocationServiceConfiguration.SERVICE_NAME, "ut"); // First storm sink configuration BaseConfiguration sink1ConnectionParameters = new BaseConfiguration(); sink1ConnectionParameters.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); sink1ConnectionParameters.addProperty(KryoNetConnectionParameters.PORT, TestUtils.getAvailablePort()); CombinedConfiguration sink1Config = new CombinedConfiguration(); sink1Config.addConfiguration(sinkBaseConfig); sink1Config.addConfiguration(sink1ConnectionParameters, "connectionParams", KryoNetConnectionParametersFactory.CONFIG_BASE_NAME); sink1Config.addConfiguration(locationServiceConfig, "Location Service Configuration", DynamicLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(sink1Config, SINK1_CONFIG); // Second storm sink configuration BaseConfiguration sink2ConnectionParameters = new BaseConfiguration(); sink2ConnectionParameters.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); sink2ConnectionParameters.addProperty(KryoNetConnectionParameters.PORT, TestUtils.getAvailablePort()); CombinedConfiguration sink2Config = new CombinedConfiguration(); sink2Config.addConfiguration(sinkBaseConfig); sink2Config.addConfiguration(sink2ConnectionParameters, "connectionParams", KryoNetConnectionParametersFactory.CONFIG_BASE_NAME); sink2Config.addConfiguration(locationServiceConfig, "Location Service Configuration", DynamicLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(sink2Config, SINK2_CONFIG); // // Storm Configuration // // Global KryoNet configuration MapConfiguration kryoConfig = new MapConfiguration(new HashMap<String, Object>()); kryoConfig.addProperty(KryoNetParameters.CONNECTION_TIMEOUT, 500); kryoConfig.addProperty(KryoNetParameters.RECONNECTION_DELAY, 1000); kryoConfig.addProperty(KryoNetParameters.TERMINATION_TO, 2000); // Flume-spout base configuration CombinedConfiguration flumeSpoutBaseConfig = new CombinedConfiguration(); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.LOCATION_SERVICE_FACTORY_CLASS, DynamicLocationServiceFactory.class.getName()); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, KryoNetServiceProviderSerialization.class.getName()); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.EVENT_RECEPTOR_FACTORY_CLASS, KryoNetEventReceptorFactory.class.getName()); // Final flume-spout configuration CombinedConfiguration flumeSpoutConfig = new CombinedConfiguration(); flumeSpoutConfig.addConfiguration(flumeSpoutBaseConfig); flumeSpoutConfig.addConfiguration(kryoConfig, "Kryo Configuration", KryoNetParameters.CONFIG_BASE_NAME); flumeSpoutConfig.addConfiguration(locationServiceConfig, "Location Service Configuration", DynamicLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(flumeSpoutConfig, SPOUT_CONFIG); testAll(); }
From source file:com.comcast.viper.flume2storm.IntegrationTest.java
/** * Integration test with the Dynamic Location Service and the KryoNet * Connection API//from w w w .j a v a 2s . c o m * * @throws Exception * If anything went wrong */ @Test public void staticLocationService_KryoNet() throws Exception { // // Flume Configuration // // Base storm sink configuration BaseConfiguration sinkBaseConfig = new BaseConfiguration(); sinkBaseConfig.addProperty(StormSinkConfiguration.LOCATION_SERVICE_FACTORY_CLASS, StaticLocationServiceFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, KryoNetServiceProviderSerialization.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.EVENT_SENDER_FACTORY_CLASS, KryoNetEventSenderFactory.class.getName()); sinkBaseConfig.addProperty(StormSinkConfiguration.CONNECTION_PARAMETERS_FACTORY_CLASS, KryoNetConnectionParametersFactory.class.getName()); // Location Service configuration BaseConfiguration flumeLocationServiceConfig = new BaseConfiguration(); flumeLocationServiceConfig.addProperty(StaticLocationServiceConfiguration.CONFIGURATION_LOADER_CLASS, KryoNetServiceProvidersLoader.class.getName()); // First storm sink configuration int sink1Port = TestUtils.getAvailablePort(); BaseConfiguration sink1ConnectionParameters = new BaseConfiguration(); sink1ConnectionParameters.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); sink1ConnectionParameters.addProperty(KryoNetConnectionParameters.PORT, sink1Port); CombinedConfiguration sink1Config = new CombinedConfiguration(); sink1Config.addConfiguration(sinkBaseConfig); sink1Config.addConfiguration(sink1ConnectionParameters, "connectionParams", KryoNetConnectionParametersFactory.CONFIG_BASE_NAME); sink1Config.addConfiguration(flumeLocationServiceConfig, "Location Service Configuration", StaticLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(sink1Config, SINK1_CONFIG); // Second storm sink configuration int sink2Port = TestUtils.getAvailablePort(); BaseConfiguration sink2ConnectionParameters = new BaseConfiguration(); sink2ConnectionParameters.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); sink2ConnectionParameters.addProperty(KryoNetConnectionParameters.PORT, sink2Port); CombinedConfiguration sink2Config = new CombinedConfiguration(); sink2Config.addConfiguration(sinkBaseConfig); sink2Config.addConfiguration(sink2ConnectionParameters, "connectionParams", KryoNetConnectionParametersFactory.CONFIG_BASE_NAME); sink2Config.addConfiguration(flumeLocationServiceConfig, "Location Service Configuration", StaticLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(sink2Config, SINK2_CONFIG); // // Storm Configuration // String sp1Id = "sp1Id"; String sp2Id = "sp2Id"; BaseConfiguration stormLocationServiceBaseConfig = new BaseConfiguration(); stormLocationServiceBaseConfig.addProperty(StaticLocationServiceConfiguration.CONFIGURATION_LOADER_CLASS, KryoNetServiceProvidersLoader.class.getName()); stormLocationServiceBaseConfig.addProperty(StaticLocationServiceConfiguration.SERVICE_PROVIDER_LIST, StringUtils.join(sp1Id, StaticLocationServiceConfiguration.SERVICE_PROVIDER_LIST_SEPARATOR, sp2Id)); BaseConfiguration stormLocationServiceSink1Config = new BaseConfiguration(); stormLocationServiceSink1Config.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); stormLocationServiceSink1Config.addProperty(KryoNetConnectionParameters.PORT, sink1Port); BaseConfiguration stormLocationServiceSink2Config = new BaseConfiguration(); stormLocationServiceSink2Config.addProperty(KryoNetConnectionParameters.ADDRESS, KryoNetConnectionParameters.ADDRESS_DEFAULT); stormLocationServiceSink2Config.addProperty(KryoNetConnectionParameters.PORT, sink2Port); CombinedConfiguration stormLocationServiceConfig = new CombinedConfiguration(); stormLocationServiceConfig.addConfiguration(stormLocationServiceBaseConfig); stormLocationServiceConfig.addConfiguration(stormLocationServiceSink1Config, "sink1", StringUtils.join(StaticLocationServiceConfiguration.SERVICE_PROVIDER_BASE_DEFAULT, ".", sp1Id)); stormLocationServiceConfig.addConfiguration(stormLocationServiceSink2Config, "sink2", StringUtils.join(StaticLocationServiceConfiguration.SERVICE_PROVIDER_BASE_DEFAULT, ".", sp2Id)); // Global KryoNet configuration MapConfiguration kryoConfig = new MapConfiguration(new HashMap<String, Object>()); kryoConfig.addProperty(KryoNetParameters.CONNECTION_TIMEOUT, 500); kryoConfig.addProperty(KryoNetParameters.RECONNECTION_DELAY, 1000); kryoConfig.addProperty(KryoNetParameters.TERMINATION_TO, 2000); // Flume-spout base configuration CombinedConfiguration flumeSpoutBaseConfig = new CombinedConfiguration(); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.LOCATION_SERVICE_FACTORY_CLASS, StaticLocationServiceFactory.class.getName()); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.SERVICE_PROVIDER_SERIALIZATION_CLASS, KryoNetServiceProviderSerialization.class.getName()); flumeSpoutBaseConfig.addProperty(FlumeSpoutConfiguration.EVENT_RECEPTOR_FACTORY_CLASS, KryoNetEventReceptorFactory.class.getName()); // Final flume-spout configuration CombinedConfiguration flumeSpoutConfig = new CombinedConfiguration(); flumeSpoutConfig.addConfiguration(flumeSpoutBaseConfig); flumeSpoutConfig.addConfiguration(kryoConfig, "Kryo Configuration", KryoNetParameters.CONFIG_BASE_NAME); flumeSpoutConfig.addConfiguration(stormLocationServiceConfig, "Location Service Configuration", StaticLocationServiceFactory.CONFIG_BASE_NAME); config.addConfiguration(flumeSpoutConfig, SPOUT_CONFIG); testAll(); }
From source file:de.uni_rostock.goodod.tools.Configuration.java
private HierarchicalConfiguration readTestConfig(File testFile) throws ConfigurationException, FileNotFoundException, IOException { HierarchicalConfiguration finalConf = null; CombinedConfiguration mergedConf = null; HierarchicalConfiguration loadedConf = null; if (isXMLConfig(testFile)) { loadedConf = new XMLPropertyListConfiguration(testFile); } else {// w w w . ja va 2 s .c o m loadedConf = new PropertyListConfiguration(testFile); } /* * Some compatibility magic: Our initial version had very specific uses and according configuration wording. * We want to be more generic, so we re-route some information in the configs. */ HierarchicalConfiguration groupsConf = (HierarchicalConfiguration) loadedConf .getProperty("groupOntologies"); if (null == loadedConf.getProperty("studentOntologies") && (null != groupsConf)) { HierarchicalConfiguration cfg = new HierarchicalConfiguration(); mergedConf = new CombinedConfiguration(new OverrideCombiner()); cfg.setProperty("studentOntologies", groupsConf); mergedConf.addConfiguration(cfg); mergedConf.addConfiguration(loadedConf); finalConf = mergedConf; } else { finalConf = loadedConf; } return finalConf; }
From source file:org.ambraproject.configuration.ConfigurationStore.java
/** * Iterate over all the resources of the given name and add them to our root * configuration.// www . j a v a 2s . c o m * @param root the root configuration to add to * @param resource the resource to add * @throws ConfigurationException on an error in adding the new config */ public static void addResources(CombinedConfiguration root, String resource) throws ConfigurationException { Class<?> klass = ConfigurationStore.class; if (resource.startsWith("/")) { root.addConfiguration(getConfigurationFromUrl(klass.getResource(resource))); log.info("Added resource '" + resource + "' to configuration"); } else { try { Enumeration<URL> rs = klass.getClassLoader().getResources(resource); while (rs.hasMoreElements()) { URL resourceUrl = rs.nextElement(); root.addConfiguration(getConfigurationFromUrl(resourceUrl)); log.info("Added resource '" + resourceUrl + "' from path '" + resource + "' to configuration"); } } catch (IOException ioe) { throw new Error("Unexpected error loading resources", ioe); } } }