List of usage examples for org.apache.commons.configuration CombinedConfiguration CombinedConfiguration
public CombinedConfiguration(NodeCombiner comb)
CombinedConfiguration
and initializes the combiner to be used. From source file:com.mobiaware.util.PropertyManager.java
public PropertyManager(final String defaultFile, final String overrideFile) { _configuration = new CombinedConfiguration(new OverrideCombiner()); loadProperties(defaultFile, overrideFile); }
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. *///w ww. j a v a 2s. 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.opentable.config.ConfigFactory.java
private CombinedConfiguration loadOTStrategy() throws ConfigurationException { final String[] configPaths = StringUtils.stripAll(StringUtils.split(configName, ",")); final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); // All properties can be overridden by the System properties. cc.addConfiguration(new SystemConfiguration(), "systemProperties"); LOG.info("Configuration source: SYSTEM"); for (int i = configPaths.length - 1; i >= 0; i--) { final String configPath = configPaths[i]; final AbstractConfiguration subConfig = configStrategy.load(configPath, configPath); if (subConfig == null) { throw new IllegalStateException(String.format("Configuration '%s' does not exist!", configPath)); }/*from www . j a v a2 s . c o m*/ cc.addConfiguration(subConfig, configPath); LOG.info("New-style configuration source: {}", configPath); } return cc; }
From source file:com.nesscomputing.config.ConfigFactory.java
CombinedConfiguration load() { // Allow foo/bar/baz and foo:bar:baz final String[] configNames = StringUtils.stripAll(StringUtils.split(configName, "/:")); final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); // All properties can be overridden by the System properties. cc.addConfiguration(new SystemConfiguration(), "systemProperties"); boolean loadedConfig = false; for (int i = 0; i < configNames.length; i++) { final String configFileName = configNames[configNames.length - i - 1]; final String configFilePath = StringUtils.join(configNames, "/", 0, configNames.length - i); try {//ww w .j ava 2 s .co m final AbstractConfiguration subConfig = configStrategy.load(configFileName, configFilePath); if (subConfig == null) { LOG.debug("Configuration '%s' does not exist, skipping", configFileName); } else { cc.addConfiguration(subConfig, configFileName); loadedConfig = true; } } catch (ConfigurationException ce) { LOG.error(String.format("While loading configuration '%s'", configFileName), ce); } } if (!loadedConfig && configNames.length > 0) { LOG.warn("Config name '%s' was given but no config file could be found, this looks fishy!", configName); } return cc; }
From source file:com.opentable.config.ConfigFactory.java
private CombinedConfiguration loadNessStrategy() { // Allow foo/bar/baz and foo:bar:baz final String[] configNames = StringUtils.stripAll(StringUtils.split(configName, "/:")); final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner()); // All properties can be overridden by the System properties. cc.addConfiguration(new SystemConfiguration(), "systemProperties"); LOG.info("Configuration source: SYSTEM"); boolean loadedConfig = false; for (int i = 0; i < configNames.length; i++) { final String configFileName = configNames[configNames.length - i - 1]; final String configFilePath = StringUtils.join(configNames, "/", 0, configNames.length - i); try {// ww w .j a v a 2 s.c om final AbstractConfiguration subConfig = configStrategy.load(configFileName, configFilePath); if (subConfig == null) { throw new IllegalStateException( String.format("Configuration '%s' does not exist!", configFileName)); } else { cc.addConfiguration(subConfig, configFileName); LOG.info("Configuration source: {}", configFileName); loadedConfig = true; } } catch (ConfigurationException ce) { LOG.error(String.format("While loading configuration '%s'", configFileName), ce); } } if (!loadedConfig && configNames.length > 0) { throw new IllegalStateException(String.format( "Config name '%s' was given but no config file could be found, this looks fishy!", configName)); } return cc; }
From source file:com.nesscomputing.config.Config.java
/** * Return an empty configuration object without any properties set. This object is immutable so every * bean created from this config object will only have the defaults. This is mostly useful for testing. *//*from w w w. j a v a2s.c o m*/ public static Config getEmptyConfig() { return new Config(new CombinedConfiguration(new OverrideCombiner())); }
From source file:com.nesscomputing.migratory.mojo.database.AbstractDatabaseMojo.java
@Override public final void execute() throws MojoExecutionException, MojoFailureException { ConfigureLog4j.start(this); try {// w w w . j av a 2 s . c o m // Load the default manifest information. // final CombinedConfiguration config = new CombinedConfiguration(new OverrideCombiner()); // everything can be overridden by system properties. config.addConfiguration(new SystemConfiguration(), "systemProperties"); final String userHome = System.getProperty("user.home"); if (userHome != null) { final File propertyFile = new File(userHome, MIGRATORY_PROPERTIES_FILE); if (propertyFile.exists() && propertyFile.canRead() && propertyFile.isFile()) { config.addConfiguration(new PropertiesConfiguration(propertyFile)); } } final ConfigurationObjectFactory initialConfigFactory = new ConfigurationObjectFactory( new CommonsConfigSource(config)); // Load the initial config from the local config file this.initialConfig = initialConfigFactory.build(InitialConfig.class); if (this.manifestUrl == null) { this.manifestUrl = initialConfig.getManifestUrl(); } if (this.manifestName == null) { this.manifestName = initialConfig.getManifestName(); } if (manifestUrl == null) { throw new MojoExecutionException( "no manifest url found (did you create a .migratory.properties file?)"); } if (manifestName == null) { throw new MojoExecutionException( "no manifest name found (did you create a .migratory.properties file?)"); } LOG.debug("Manifest URL: %s", manifestUrl); LOG.debug("Manifest Name: %s", manifestName); this.optionList = parseOptions(options); final StringBuilder location = new StringBuilder(manifestUrl); if (!this.manifestUrl.endsWith("/")) { location.append("/"); } // After here, the manifestUrl is guaranteed to have a / at the end! this.manifestUrl = location.toString(); location.append(manifestName); location.append(".manifest"); LOG.debug("Manifest Location: %s", location); final MigratoryConfig initialMigratoryConfig = initialConfigFactory.build(MigratoryConfig.class); final LoaderManager initialLoaderManager = createLoaderManager(initialMigratoryConfig); final String contents = initialLoaderManager.loadFile(URI.create(location.toString())); if (contents == null) { throw new MojoExecutionException( format("Could not load manifest '%s' from '%s'", manifestName, manifestUrl)); } // // Now add the contents of the manifest file to the configuration creating the // final configuration for building the sql migration sets. // final PropertiesConfiguration pc = new PropertiesConfiguration(); pc.load(new StringReader(contents)); config.addConfiguration(pc); if (!validateConfiguration(config)) { throw new MojoExecutionException( format("Manifest '%s' is not valid. Refusing to execute!", manifestName)); } this.config = config; this.factory = new ConfigurationObjectFactory(new CommonsConfigSource(config)); this.migratoryConfig = factory.build(MigratoryConfig.class); this.loaderManager = createLoaderManager(migratoryConfig); LOG.debug("Configuration: %s", this.config); this.rootDBIConfig = getDBIConfig(getPropertyName("default.root_")); stateCheck(); doExecute(); } catch (Exception e) { Throwables.propagateIfInstanceOf(e, MojoExecutionException.class); LOG.errorDebug(e, "While executing Mojo %s", this.getClass().getSimpleName()); throw new MojoExecutionException("Failure:", e); } finally { ConfigureLog4j.stop(this); } }
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(// ww w . ja v a2 s . c o m new ImmutableConfiguration(ConfigurationConverter.getConfiguration(props).subset(suffix))); } if (config != null) { cc.addConfiguration(config.getConfiguration(propertiesPrefix + "." + suffix)); cc.addConfiguration(config.getConfiguration(DEFAULTS_PREFIX + "." + suffix)); } return ConfigurationConverter.getProperties(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/* w w w . ja v a 2s. co m*/ */ 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.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 v a 2 s. co m * @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); } }