You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/06/13 21:26:17 UTC
svn commit: r1602503 -
/commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml
Author: oheger
Date: Fri Jun 13 19:26:17 2014
New Revision: 1602503
URL: http://svn.apache.org/r1602503
Log:
Reworked chapter about CompositeConfiguration in user's guide.
Modified:
commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml
Modified: commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml?rev=1602503&r1=1602502&r2=1602503&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml (original)
+++ commons/proper/configuration/trunk/src/site/xdoc/userguide/howto_compositeconfiguration.xml Fri Jun 13 19:26:17 2014
@@ -48,20 +48,27 @@
Composite Configuration as well as save changes made to your
Composite Configuration.
</p>
- <subsection name="Setting Up Defaults">
- <p>
- Defaults are very simple. You can just add them as your last configuration object,
- either through the ConfigurationFactory or manually:
+ <subsection name="Setting Up Defaults">
+ <p>
+ Defaults are very simple. You can just add them as your last configuration object:
</p>
<source><![CDATA[
-Configuration defaults = new PropertiesConfiguration(fileToDefaults);
-Configuration otherProperties = new PropertiesConfiguration(fileToOtherProperties);
+Parameters params = new Parameters();
+FileBasedConfigurationBuilder<Configuration> builderDefaults =
+ new FileBasedConfigurationBuilder<Configuration>(PropertiesConfiguration.class)
+ .configure(params.properties()
+ .setFile(fileToDefaults));
+FileBasedConfigurationBuilder<Configuration> builderOther =
+ new FileBasedConfigurationBuilder<Configuration>(PropertiesConfiguration.class)
+ .configure(params.properties()
+ .setFile(fileToOtherProperties));
+
CompositeConfiguration cc = new CompositeConfiguration();
-cc.addConfiguration(otherProperties);
-cc.addConfiguration(fileToDefaults);
+cc.addConfiguration(builderOther.getConfiguration());
+cc.addConfiguration(builderDefaults.getConfiguration());
]]></source>
</subsection>
-
+
<subsection name="Saving Changes">
<p>
If you have a non static Configuration where you want to
@@ -71,25 +78,32 @@ cc.addConfiguration(fileToDefaults);
to save the changes via.
</p>
<source><![CDATA[
-PropertiesConfiguration saveConfiguration = new PropertiesConfiguration(fileToSaveChangesIn);
-Configuration cc = new CompositeConfiguration(saveConfiguration);
+Parameters params = new Parameters();
+FileBasedConfigurationBuilder<Configuration> builder =
+ new FileBasedConfigurationBuilder<Configuration>(PropertiesConfiguration.class, null, true)
+ .configure(params.properties()
+ .setFile(fileToSaveChangesIn));
+
+Configuration cc = new CompositeConfiguration(builder.getConfiguration());
cc.setProperty("newProperty","new value");
-saveConfiguration.save();
+builder.save();
]]></source>
<p>
Alternatively, you can just request the
in-memory configuration that stores the changes. The following
example fragment copies all properties from the in-memory
- configuration into a <code>DatabaseConfiguration</code>, so
- that they are made persistent:
+ configuration into a <code>PropertiesConfiguration</code>, which
+ can be saved later:
<source><![CDATA[
Configuration changes = myCompositeConfiguration.getInMemoryConfiguration();
-DatabaseConfiguration config = new DatabaseConfiguration(datasource, "configuration", "key", "value");
+FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
+ new FileBasedConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class);
+PropertiesConfiguration config = builder.getConfiguration();
for (Iterator<String> i = changes.getKeys(); i.hasNext()){
- String key = i.next();
- Object value = changes.get(key);
- config.setProperty(key,value);
+ String key = i.next();
+ Object value = changes.get(key);
+ config.setProperty(key,value);
}
]]></source>
</p>