/** * 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. */ public static Config getEmptyConfig() { return new Config(new CombinedConfiguration(new OverrideCombiner())); }
/** * 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. */ 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); }
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 { 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; }
private static CombinedConfiguration buildConfig(Collection<? extends AbstractConfiguration> intermediateConfigs) { final CombinedConfiguration result = new CombinedConfiguration(new OverrideCombiner()); result.addConfiguration(buildtimeConfig); // buildtime config cannot be overridden result.addConfiguration(clConfig); result.addConfiguration(sysConfig); for (AbstractConfiguration moduleConfig : intermediateConfigs) result.addConfiguration(moduleConfig); if (!userConfig.isEmpty()) result.addConfiguration(userConfig); result.addConfiguration(defaultConfig); return result; }
final CombinedConfiguration cc = new CombinedConfiguration(new OverrideCombiner());
/** * Creates the resulting combined configuration. This method is called by * {@code getConfiguration()}. It checks whether the * {@code header} section of the configuration definition file * contains a {@code result} element. If this is the case, it will be * used to initialize the properties of the newly created configuration * object. * * @return the resulting configuration object * @throws ConfigurationException if an error occurs */ protected CombinedConfiguration createResultConfiguration() throws ConfigurationException { XMLBeanDeclaration decl = new XMLBeanDeclaration(this, KEY_RESULT, true); CombinedConfiguration result = (CombinedConfiguration) BeanHelper .createBean(decl, CombinedConfiguration.class); if (getMaxIndex(KEY_COMBINER) < 0) { // No combiner defined => set default result.setNodeCombiner(new OverrideCombiner()); } return result; }
/** * Creates the resulting combined configuration. This method is called by * {@code getConfiguration()}. It checks whether the * {@code header} section of the configuration definition file * contains a {@code result} element. If this is the case, it will be * used to initialize the properties of the newly created configuration * object. * * @return the resulting configuration object * @throws ConfigurationException if an error occurs */ protected CombinedConfiguration createResultConfiguration() throws ConfigurationException { XMLBeanDeclaration decl = new XMLBeanDeclaration(this, KEY_RESULT, true); CombinedConfiguration result = (CombinedConfiguration) BeanHelper .createBean(decl, CombinedConfiguration.class); if (getMaxIndex(KEY_COMBINER) < 0) { // No combiner defined => set default result.setNodeCombiner(new OverrideCombiner()); } return result; }
@Nullable List<ConfigurationInfo<URL>> urls) throws ConfigurationLoadException { CombinedConfiguration combinedConfiguration = setupConfiguration(new CombinedConfiguration(new OverrideCombiner()));
@Nullable List<ConfigurationInfo<URL>> urls) throws ConfigurationLoadException { CombinedConfiguration combinedConfiguration = setupConfiguration(new CombinedConfiguration(new OverrideCombiner()));