About Us Home Contributors License Components Sandbox Configuration Home Overview Simple Howto ConfigurationFactory Howto XML Howto Composite Config Howto Runtime Dependencies Roadmap Javadoc Extensions Avalon Component Project Documentation About Commons Configuration Downloads Project Info Project Reports Development Process General Information Charter Volunteering Contributing Patches Releasing Components Jakarta Community Get Involved Mailing Lists Access CVS Repositories Commons Resources (Unofficial) Wiki Japanese Translation Korean Translation Related Apache Commons DB Commons XML Commons | ### Composite Configuration Details We will discuss how you can establish a "default" choice for your Composite Configuration as well as save changes made to your Composite Configuration. #### Setting Up Defaults Defaults are very simple. You can just add them as your last configuration object, either through the ConfigurationFactory or manually:
    Configuration defaults = new PropertiesConfiguration(fileToDefaults);
    Configuration otherProperties = new PropertiesConfiguration(fileToOtherProperties);
    CompositeConfiguration cc = new CompositeConfiguration();
    cc.addConfiguration(otherProperties);
    cc.addDefaults(fileToDefaults);
#### Saving Changes If you have a non static Configuration where you want to save changes made to a configuration, and you are using a CompositeConfiguration, then you will need to pass into the constructor of the CompositeConfiguration what Configuration to save the changes via.
    PropertiesConfiguration saveConfiguration = new PropertiesConfiguration(fileToSaveChangesIn);
    Configuration cc = new CompositeConfiguration(saveConfiguration);
    cc.setProperty("newProperty","new value");

    saveConfiguration.save();
Alternatively, you can just request the inMemoryConfiguration that stores the changes:
    Configuration changes = myCompositeConfiguration.getInMemoryConfiguration();
    DatabaseConfiguration config = new DatabaseConfiguration(datasource, "configuration", "key", "value");
    for (Iterator i = changes.getKeys().iterator();i.hasNext()){
    	String key = (key)i.next();
    	Object value = changes.get(key);
    	config.setProperty(key,value);
    }