You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by eb...@apache.org on 2004/10/19 15:41:44 UTC
cvs commit: jakarta-commons/configuration/src/test/org/apache/commons/configuration TestConfigurationUtils.java
ebourg 2004/10/19 06:41:44
Modified: configuration/xdocs changes.xml
configuration/src/java/org/apache/commons/configuration
ConfigurationUtils.java
configuration/src/test/org/apache/commons/configuration
TestConfigurationUtils.java
Log:
Added copy() and append() in ConfigurationUtils
Revision Changes Path
1.66 +5 -0 jakarta-commons/configuration/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/xdocs/changes.xml,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- changes.xml 19 Oct 2004 11:44:31 -0000 1.65
+++ changes.xml 19 Oct 2004 13:41:44 -0000 1.66
@@ -8,6 +8,11 @@
<body>
<release version="1.1-dev" date="in CVS">
+ <action dev="ebourg" type="add">
+ Added two methods copy(Configuration, Configuration) and
+ append(Configuration, Configuration) in ConfigurationUtils to copy
+ properties between configurations.
+ </action>
<action dev="ebourg" type="update">
Moved the constructors implementations from PropertiesConfiguration and
XMLConfiguration to AbstractFileConfiguration.
1.10 +39 -1 jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationUtils.java
Index: ConfigurationUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ConfigurationUtils.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ConfigurationUtils.java 23 Sep 2004 11:42:00 -0000 1.9
+++ ConfigurationUtils.java 19 Oct 2004 13:41:44 -0000 1.10
@@ -98,6 +98,44 @@
}
/**
+ * Copy all properties from the source configuration to the target
+ * configuration. Properties in the target configuration are replaced with
+ * the properties with the same key in the source configuration.
+ *
+ * @param source the source configuration
+ * @param target the target configuration
+ * @since 1.1
+ */
+ public static void copy(Configuration source, Configuration target)
+ {
+ Iterator keys = source.getKeys();
+ while (keys.hasNext())
+ {
+ String key = (String) keys.next();
+ target.setProperty(key, source.getProperty(key));
+ }
+ }
+
+ /**
+ * Append all properties from the source configuration to the target
+ * configuration. Properties in the source configuration are appended to
+ * the properties with the same key in the target configuration.
+ *
+ * @param source the source configuration
+ * @param target the target configuration
+ * @since 1.1
+ */
+ public static void append(Configuration source, Configuration target)
+ {
+ Iterator keys = source.getKeys();
+ while (keys.hasNext())
+ {
+ String key = (String) keys.next();
+ target.addProperty(key, source.getProperty(key));
+ }
+ }
+
+ /**
* 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.
1.8 +50 -2 jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestConfigurationUtils.java
Index: TestConfigurationUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons/configuration/src/test/org/apache/commons/configuration/TestConfigurationUtils.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestConfigurationUtils.java 23 Sep 2004 11:42:00 -0000 1.7
+++ TestConfigurationUtils.java 19 Oct 2004 13:41:44 -0000 1.8
@@ -1,5 +1,3 @@
-package org.apache.commons.configuration;
-
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
@@ -16,14 +14,20 @@
* limitations under the License.
*/
+package org.apache.commons.configuration;
+
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
import junit.framework.TestCase;
+import junitx.framework.ListAssert;
/**
* Tests the ConfigurationUtils class
*
+ * @version $Revision$, $Date$
*/
public class TestConfigurationUtils extends TestCase
{
@@ -123,4 +127,48 @@
assertEquals("file name for a valid URL " + url, "bar.xml", ConfigurationUtils.getFileName(url));
}
+ public void testCopy()
+ {
+ // create the source configuration
+ Configuration conf1 = new BaseConfiguration();
+ conf1.addProperty("key1", "value1");
+ conf1.addProperty("key2", "value2");
+
+ // create the target configuration
+ Configuration conf2 = new BaseConfiguration();
+ conf2.addProperty("key1", "value3");
+ conf2.addProperty("key2", "value4");
+
+ // copy the source configuration into the target configuration
+ ConfigurationUtils.copy(conf1, conf2);
+
+ assertEquals("'key1' property", "value1", conf2.getProperty("key1"));
+ assertEquals("'key2' property", "value2", conf2.getProperty("key2"));
+ }
+
+ public void testAppend()
+ {
+ // create the source configuration
+ Configuration conf1 = new BaseConfiguration();
+ conf1.addProperty("key1", "value1");
+ conf1.addProperty("key2", "value2");
+
+ // create the target configuration
+ Configuration conf2 = new BaseConfiguration();
+ conf2.addProperty("key1", "value3");
+ conf2.addProperty("key2", "value4");
+
+ // append the source configuration to the target configuration
+ ConfigurationUtils.append(conf1, conf2);
+
+ List expected = new ArrayList();
+ expected.add("value3");
+ expected.add("value1");
+ ListAssert.assertEquals("'key1' property", expected, conf2.getList("key1"));
+
+ expected = new ArrayList();
+ expected.add("value4");
+ expected.add("value2");
+ ListAssert.assertEquals("'key2' property", expected, conf2.getList("key2"));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org