commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From raghunath tpk <raghu...@gmail.com>
Subject [configuration] Unable to persist CombinedConfiguration changes to the Filesystem.
Date Fri, 21 Oct 2011 20:49:28 GMT
Hi,

I am using apache commons configuration to load the configuration data from
various sources.

Following is the issue :

I use a config.xml file to load multiple Configuration Sources
Ex:
<configuration>
<header/>
<override>
<properties fileName="db.properties"/>
<properties fileName="jms.properties"/>
<xml fileName="gui.xml"/>
</override>
<additional/>
</configuration>

I load the config.xml and subsequently all the properties in my app to a
CombinedConfiguration Object as follows :

DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
builder.setFile(new File("config.xml"));
CombinedConfiguration combinedConfig = builder.getConfiguration(true);


Now I am trying to expose all the properties from all configuration sources
using a mbean and at runtime trying to update the Properties. I wouldn't
know though, from which source the properties came from as the
CombinedConfiguration takes care of that abstraction, but when I do the
following it doesn't change the persistance store(in this case the files on
the Filesystem).
/*combinedConfig.setProperty(Key, updatedValue);*/

There is no save method on the combinedConfiguration class so that the
persistance store gets updated.
There is a save method in PropertiesConfiguration class or XMLConfiguration
class, but I wouldn't know at runtime or inside the code which file or
configuration source the Key belongs to, so even If I add a config-name to
each source there is no use.

SO wouldn't the setProperty help me update the value of the Configuration
and persist it back to the original file. I don't know it is a bug or a
feature it doesn't support or there is a workaround in such scenarios.

Please advice.

Thanks
Raghu

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message