Details
-
Improvement
-
Status: Reopened
-
Major
-
Resolution: Unresolved
-
1.6
-
None
-
Linux java
Description
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.
Attachments
Issue Links
- duplicates
-
CONFIGURATION-159 Save the changes made to a Composite/CombinedConfiguration
- Open