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]

Reply via email to