commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Schaible <joerg.schai...@gmx.de>
Subject Re: [configuration] Merging overrides with defaults
Date Wed, 17 Jun 2009 07:45:53 GMT
Hi Alec,

as commons contains quite a lot of components, it is best practice to
include the component's name iln the subject to give a reader the context
of your question.

Alec Swan wrote at Mittwoch, 17. Juni 2009 00:00:

> I have a property file containing default configurations in a key=value
> format. I also have another file with the same format which contains
> overrides for some of the properties. I need to apply the overrides to the
> default configuration while preserving the format and comments. I also
> need to write the merged content to a string.
> 
> I am using the following code, but the mergedContent contains the default
> content and no overrides. I tried reversing the order in which I add
> defaultConfig and overridingConfig to CompositeConfiguration, but still no
> luck.
> 
>             PropertiesConfiguration mergedConfig = new
> PropertiesConfiguration();
>             CompositeConfiguration compositeConfig = new
> CompositeConfiguration(defaultConfig);
>             mergedConfig = defaultConfig;
> 
>             compositeConfig.addConfiguration(overridingConfig);
> 
>             StringWriter writer = new StringWriter();
>             mergedConfig.save(writer);
>             String mergedContent = writer.toString();
> 
> What's wrong with the code above?

You add the configurations in the wrong sequence. A configuration that
contains default values should always added last, since the
CompositeConfiguration will return the first found value for the requested
key.

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message