You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oh...@apache.org on 2006/04/23 20:31:03 UTC
svn commit: r396301 - in /jakarta/commons/proper/configuration/trunk:
src/java/org/apache/commons/configuration/ConfigurationUtils.java
src/test/org/apache/commons/configuration/TestConfigurationUtils.java
xdocs/changes.xml
Author: oheger
Date: Sun Apr 23 11:31:01 2006
New Revision: 396301
URL: http://svn.apache.org/viewcvs?rev=396301&view=rev
Log:
Added new method convertToHierarchical() to ConfigurationUtils
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java
jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java?rev=396301&r1=396300&r2=396301&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java Sun Apr 23 11:31:01 2006
@@ -152,6 +152,36 @@
}
/**
+ * Converts the passed in configuration to a hierarchical one. If the
+ * configuration is already hierarchical, it is directly returned. Otherwise
+ * all properties are copied into a new hierarchical configuration.
+ *
+ * @param conf the configuration to convert
+ * @return the new hierarchical configuration (the result is <b>null</b> if
+ * and only if the passed in configuration is <b>null</b>)
+ * @since 1.3
+ */
+ public static HierarchicalConfiguration convertToHierarchical(
+ Configuration conf)
+ {
+ if (conf == null)
+ {
+ return null;
+ }
+
+ if (conf instanceof HierarchicalConfiguration)
+ {
+ return (HierarchicalConfiguration) conf;
+ }
+ else
+ {
+ HierarchicalConfiguration hc = new HierarchicalConfiguration();
+ ConfigurationUtils.copy(conf, hc);
+ return hc;
+ }
+ }
+
+ /**
* Constructs a URL from a base path and a file name. The file name can
* be absolute, relative or a full URL. If necessary the base path URL is
* applied.
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java?rev=396301&r1=396300&r2=396301&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java Sun Apr 23 11:31:01 2006
@@ -19,6 +19,7 @@
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
@@ -197,5 +198,49 @@
{
Thread.currentThread().setContextClassLoader(cl);
}
+ }
+
+ /**
+ * Tests converting a configuration into a hierarchical one.
+ */
+ public void testConvertToHierarchical()
+ {
+ Configuration conf = new BaseConfiguration();
+ for (int i = 0; i < 10; i++)
+ {
+ conf.addProperty("test" + i, "value" + i);
+ conf.addProperty("test.list", "item" + i);
+ }
+
+ HierarchicalConfiguration hc = ConfigurationUtils
+ .convertToHierarchical(conf);
+ for (Iterator it = conf.getKeys(); it.hasNext();)
+ {
+ String key = (String) it.next();
+ assertEquals("Wrong value for key " + key, conf.getProperty(key),
+ hc.getProperty(key));
+ }
+ }
+
+ /**
+ * Tests converting a configuration into a hierarchical one that is already
+ * hierarchical.
+ */
+ public void testConvertHierarchicalToHierarchical()
+ {
+ Configuration conf = new HierarchicalConfiguration();
+ conf.addProperty("test", "yes");
+ assertSame("Wrong configuration returned", conf, ConfigurationUtils
+ .convertToHierarchical(conf));
+ }
+
+ /**
+ * Tests converting a null configuration to a hierarchical one. The result
+ * should be null, too.
+ */
+ public void testConvertNullToHierarchical()
+ {
+ assertNull("Wrong conversion result for null config",
+ ConfigurationUtils.convertToHierarchical(null));
}
}
Modified: jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/xdocs/changes.xml?rev=396301&r1=396300&r2=396301&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Sun Apr 23 11:31:01 2006
@@ -23,6 +23,11 @@
<body>
<release version="1.3-SNAPSHOT" date="in SVN">
+ <action dev="oheger" type="add">
+ A new method convertToHierarchical() was added to ConfigurationUtils,
+ which is able to convert an arbitrary configuration object into a
+ hierarchical configuration.
+ </action>
<action dev="oheger" type="update" issue="39169">
Loading of file-based configurations no longer throws a NullPointerException
in setups where the thread context class loader is not set.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org