Author: oheger
Date: Sat Oct 28 08:11:02 2006
New Revision: 468694
URL: http://svn.apache.org/viewvc?view=rev&rev=468694
Log:
Updated CompositeConfiguration.getList() to fully support interpolation; fix
for CONFIGURATION-233; thanks to Rainer Jung for the patch
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java?view=diff&rev=468694&r1=468693&r2=468694
==============================================================================
---
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
(original)
+++
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
Sat Oct 28 08:11:02 2006
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.ListIterator;
/**
* This Configuration class allows you to add multiple different types of
Configuration
@@ -319,6 +320,12 @@
if (list.isEmpty())
{
return defaultValue;
+ }
+
+ ListIterator lit = list.listIterator();
+ while (lit.hasNext())
+ {
+ lit.set(interpolate(lit.next()));
}
return list;
Modified:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java?view=diff&rev=468694&r1=468693&r2=468694
==============================================================================
---
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
(original)
+++
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
Sat Oct 28 08:11:02 2006
@@ -440,6 +440,24 @@
assertEquals("2nd element", "foo.bar2", array[1]);
assertEquals("3rd element", "foo.bar3", array[2]);
}
+
+ /**
+ * Tests whether global interpolation works with lists.
+ */
+ public void testListInterpolation()
+ {
+ PropertiesConfiguration c1 = new PropertiesConfiguration();
+ c1.addProperty("c1.value", "test1");
+ c1.addProperty("c1.value", "${c2.value}");
+ cc.addConfiguration(c1);
+ PropertiesConfiguration c2 = new PropertiesConfiguration();
+ c2.addProperty("c2.value", "test2");
+ cc.addConfiguration(c2);
+ List lst = cc.getList("c1.value");
+ assertEquals("Wrong list size", 2, lst.size());
+ assertEquals("Wrong first element", "test1", lst.get(0));
+ assertEquals("Wrong second element", "test2", lst.get(1));
+ }
public void testInstanciateWithCollection()
{
Modified: jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/xdocs/changes.xml?view=diff&rev=468694&r1=468693&r2=468694
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Sat Oct 28
08:11:02 2006
@@ -23,6 +23,11 @@
<body>
<release version="1.4-dev" date="in SVN">
+ <action dev="oheger" type="update" issue="CONFIGURATION-233"
due-to="Rainer Jung">
+ The getList() method of CompositeConfiguration does now fully support
+ variable interpolation. So it is possible to refer to a variable in
+ one (sub) configuration that is defined in another configuration.
+ </action>
<action dev="oheger" type="update" issue="CONFIGURATION-230">
XPathExpressionEngine used to create wrong keys for attribute nodes.
This caused some operations on XMLConfiguration to fail when such an
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]