Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 20768 invoked from network); 6 Mar 2007 21:15:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Mar 2007 21:15:26 -0000 Received: (qmail 66358 invoked by uid 500); 6 Mar 2007 21:15:32 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 66278 invoked by uid 500); 6 Mar 2007 21:15:32 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 66267 invoked by uid 500); 6 Mar 2007 21:15:32 -0000 Received: (qmail 66264 invoked by uid 99); 6 Mar 2007 21:15:32 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Mar 2007 13:15:32 -0800 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Mar 2007 13:15:22 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 8FDE41A9838; Tue, 6 Mar 2007 13:15:02 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r515306 - in /jakarta/commons/proper/configuration/trunk: ./ src/java/org/apache/commons/configuration/ src/java/org/apache/commons/configuration/web/ src/test/org/apache/commons/configuration/ src/test/org/apache/commons/configuration/web/... Date: Tue, 06 Mar 2007 21:15:01 -0000 To: commons-cvs@jakarta.apache.org From: oheger@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070306211502.8FDE41A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: oheger Date: Tue Mar 6 13:15:00 2007 New Revision: 515306 URL: http://svn.apache.org/viewvc?view=rev&rev=515306 Log: CONFIGURATION-256: MapConfiguration and the web-based configurations now treat escaped list delimiters correctly Modified: jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/MapConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/AppletConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/BaseWebConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletContextConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletFilterConfiguration.java jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletRequestConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestAbstractConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestMapConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestAppletConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletContextConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletFilterConfiguration.java jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletRequestConfiguration.java jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Modified: jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt (original) +++ jakarta/commons/proper/configuration/trunk/RELEASE-NOTES.txt Tue Mar 6 13:15:00 2007 @@ -94,6 +94,11 @@ DatabaseConfiguration now handles list delimiters in property values correctly. +* [CONFIGURATION-256] + MapConfiguration and the web-based configurations now treat strings that + contain an escaped list delimiter correctly: The escape character will be + removed, so that for instance "foo\,bar" becomes "foo,bar". + IMPROVEMENTS IN 1.4 =================== * [CONFIGURATION-155] Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/MapConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/MapConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/MapConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/MapConfiguration.java Tue Mar 6 13:15:00 2007 @@ -62,7 +62,7 @@ if ((value instanceof String) && (!isDelimiterParsingDisabled())) { List list = PropertyConverter.split((String) value, getListDelimiter()); - return list.size() > 1 ? list : value; + return list.size() > 1 ? list : list.get(0); } else { Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/AppletConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/AppletConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/AppletConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/AppletConfiguration.java Tue Mar 6 13:15:00 2007 @@ -19,10 +19,8 @@ import java.applet.Applet; import java.util.Iterator; -import java.util.List; import org.apache.commons.collections.iterators.ArrayIterator; -import org.apache.commons.configuration.PropertyConverter; /** * A configuration wrapper to read applet parameters. This configuration is @@ -51,14 +49,7 @@ public Object getProperty(String key) { - Object value = applet.getParameter(key); - if (!isDelimiterParsingDisabled()) - { - List list = PropertyConverter.split((String) value, getListDelimiter()); - value = list.size() > 1 ? list : value; - } - - return value; + return handleDelimiters(applet.getParameter(key)); } public Iterator getKeys() Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/BaseWebConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/BaseWebConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/BaseWebConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/BaseWebConfiguration.java Tue Mar 6 13:15:00 2007 @@ -16,7 +16,10 @@ */ package org.apache.commons.configuration.web; +import java.util.List; + import org.apache.commons.configuration.AbstractConfiguration; +import org.apache.commons.configuration.PropertyConverter; /** *

@@ -82,5 +85,25 @@ protected void addPropertyDirect(String key, Object obj) { throw new UnsupportedOperationException("Read only configuration"); + } + + /** + * Takes care of list delimiters in property values. This method checks if + * delimiter parsing is enabled and the passed in value contains a delimiter + * character. If this is the case, a split operation is performed. + * + * @param value the property value to be examined + * @return the processed value + */ + protected Object handleDelimiters(Object value) + { + if (!isDelimiterParsingDisabled() && value instanceof String) + { + List list = PropertyConverter.split((String) value, + getListDelimiter()); + value = list.size() > 1 ? list : list.get(0); + } + + return value; } } Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletConfiguration.java Tue Mar 6 13:15:00 2007 @@ -18,12 +18,10 @@ package org.apache.commons.configuration.web; import java.util.Iterator; -import java.util.List; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import org.apache.commons.collections.iterators.EnumerationIterator; -import org.apache.commons.configuration.PropertyConverter; /** * A configuration wrapper around a {@link ServletConfig}. This configuration @@ -62,14 +60,7 @@ public Object getProperty(String key) { - Object value = config.getInitParameter(key); - if (!isDelimiterParsingDisabled()) - { - List list = PropertyConverter.split((String) value, getListDelimiter()); - value = list.size() > 1 ? list : value; - } - - return value; + return handleDelimiters(config.getInitParameter(key)); } public Iterator getKeys() Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletContextConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletContextConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletContextConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletContextConfiguration.java Tue Mar 6 13:15:00 2007 @@ -18,12 +18,10 @@ package org.apache.commons.configuration.web; import java.util.Iterator; -import java.util.List; import javax.servlet.Servlet; import javax.servlet.ServletContext; import org.apache.commons.collections.iterators.EnumerationIterator; -import org.apache.commons.configuration.PropertyConverter; /** * A configuration wrapper to read the initialization parameters of a servlet @@ -63,14 +61,7 @@ public Object getProperty(String key) { - Object value = context.getInitParameter(key); - if (!isDelimiterParsingDisabled()) - { - List list = PropertyConverter.split((String) value, getListDelimiter()); - value = list.size() > 1 ? list : value; - } - - return value; + return handleDelimiters(context.getInitParameter(key)); } public Iterator getKeys() Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletFilterConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletFilterConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletFilterConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletFilterConfiguration.java Tue Mar 6 13:15:00 2007 @@ -18,11 +18,9 @@ package org.apache.commons.configuration.web; import java.util.Iterator; -import java.util.List; import javax.servlet.FilterConfig; import org.apache.commons.collections.iterators.EnumerationIterator; -import org.apache.commons.configuration.PropertyConverter; /** * A configuration wrapper around a {@link FilterConfig}. This configuration is @@ -50,14 +48,7 @@ public Object getProperty(String key) { - Object value = config.getInitParameter(key); - if (!isDelimiterParsingDisabled()) - { - List list = PropertyConverter.split((String) value, getListDelimiter()); - value = list.size() > 1 ? list : value; - } - - return value; + return handleDelimiters(config.getInitParameter(key)); } public Iterator getKeys() Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletRequestConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletRequestConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletRequestConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/web/ServletRequestConfiguration.java Tue Mar 6 13:15:00 2007 @@ -17,8 +17,11 @@ package org.apache.commons.configuration.web; +import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; -import java.util.Arrays; +import java.util.List; + import javax.servlet.ServletRequest; import org.apache.commons.collections.iterators.EnumerationIterator; @@ -57,11 +60,25 @@ } else if (values.length == 1) { - return values[0]; + return handleDelimiters(values[0]); } else { - return Arrays.asList(values); + // ensure that escape characters in all list elements are removed + List result = new ArrayList(values.length); + for (int i = 0; i < values.length; i++) + { + Object val = handleDelimiters(values[i]); + if (val instanceof Collection) + { + result.addAll((Collection) val); + } + else + { + result.add(val); + } + } + return result; } } Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestAbstractConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestAbstractConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestAbstractConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestAbstractConfiguration.java Tue Mar 6 13:15:00 2007 @@ -36,11 +36,12 @@ public abstract class TestAbstractConfiguration extends TestCase { /** - * Return an abstract configuration with 2 key/value pairs:
+ * Return an abstract configuration with the following data:
*

      * key1 = value1
      * key2 = value2
      * list = value1, value2
+     * listesc = value1\\,value2
      * 
*/ protected abstract AbstractConfiguration getConfiguration(); @@ -69,6 +70,16 @@ assertTrue("'value2' is not in the list", list.contains("value2")); } + /** + * Tests whether the escape character for list delimiters is recocknized and + * removed. + */ + public void testListEscaped() + { + assertEquals("Wrong value for escaped list", "value1,value2", + getConfiguration().getString("listesc")); + } + public void testAddPropertyDirect() { AbstractConfiguration config = getConfiguration(); @@ -118,6 +129,7 @@ expectedKeys.add("key1"); expectedKeys.add("key2"); expectedKeys.add("list"); + expectedKeys.add("listesc"); assertNotNull("null iterator", keys); assertTrue("empty iterator", keys.hasNext()); Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestMapConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestMapConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestMapConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestMapConfiguration.java Tue Mar 6 13:15:00 2007 @@ -37,6 +37,7 @@ map.put("key1", "value1"); map.put("key2", "value2"); map.put("list", "value1, value2"); + map.put("listesc", "value1\\,value2"); return new MapConfiguration(map); } Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestAppletConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestAppletConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestAppletConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestAppletConfiguration.java Tue Mar 6 13:15:00 2007 @@ -64,6 +64,7 @@ parameters.setProperty("key1", "value1"); parameters.setProperty("key2", "value2"); parameters.setProperty("list", "value1, value2"); + parameters.setProperty("listesc", "value1\\,value2"); if (supportsApplet) { @@ -80,7 +81,8 @@ { { "key1", "String", "" }, { "key2", "String", "" }, - { "list", "String[]", "" } }; + { "list", "String[]", "" }, + { "listesc", "String", "" } }; } }; Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletConfiguration.java Tue Mar 6 13:15:00 2007 @@ -39,6 +39,7 @@ config.setInitParameter("key1", "value1"); config.setInitParameter("key2", "value2"); config.setInitParameter("list", "value1, value2"); + config.setInitParameter("listesc", "value1\\,value2"); Servlet servlet = new HttpServlet() { public ServletConfig getServletConfig() Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletContextConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletContextConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletContextConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletContextConfiguration.java Tue Mar 6 13:15:00 2007 @@ -43,6 +43,7 @@ parameters.setProperty("key1", "value1"); parameters.setProperty("key2", "value2"); parameters.setProperty("list", "value1, value2"); + parameters.setProperty("listesc", "value1\\,value2"); // create a servlet context ServletContext context = new MockServletContext() Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletFilterConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletFilterConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletFilterConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletFilterConfiguration.java Tue Mar 6 13:15:00 2007 @@ -39,6 +39,7 @@ config.setInitParameter("key1", "value1"); config.setInitParameter("key2", "value2"); config.setInitParameter("list", "value1, value2"); + config.setInitParameter("listesc", "value1\\,value2"); return new ServletFilterConfiguration(config); } Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletRequestConfiguration.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletRequestConfiguration.java?view=diff&rev=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletRequestConfiguration.java (original) +++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/web/TestServletRequestConfiguration.java Tue Mar 6 13:15:00 2007 @@ -18,6 +18,8 @@ package org.apache.commons.configuration.web; import java.util.Enumeration; +import java.util.List; + import javax.servlet.ServletRequest; import com.mockobjects.servlet.MockHttpServletRequest; @@ -26,6 +28,7 @@ import org.apache.commons.configuration.BaseConfiguration; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.TestAbstractConfiguration; +import org.apache.commons.lang.StringUtils; /** * Test case for the {@link ServletRequestConfiguration} class. @@ -38,16 +41,25 @@ protected AbstractConfiguration getConfiguration() { final Configuration configuration = new BaseConfiguration(); + ((BaseConfiguration) configuration).setListDelimiter('\0'); configuration.setProperty("key1", "value1"); configuration.setProperty("key2", "value2"); configuration.addProperty("list", "value1"); configuration.addProperty("list", "value2"); + configuration.addProperty("listesc", "value1\\,value2"); + + return createConfiguration(configuration); + } + + protected AbstractConfiguration getEmptyConfiguration() + { + final Configuration configuration = new BaseConfiguration(); ServletRequest request = new MockHttpServletRequest() { - public String[] getParameterValues(String key) + public String getParameter(String key) { - return configuration.getStringArray(key); + return null; } public Enumeration getParameterNames() @@ -59,20 +71,26 @@ return new ServletRequestConfiguration(request); } - protected AbstractConfiguration getEmptyConfiguration() + /** + * Returns a new servlet request configuration that is backed by the passed + * in configuration. + * + * @param base the configuration with the underlying values + * @return the servlet request configuration + */ + private ServletRequestConfiguration createConfiguration( + final Configuration base) { - final Configuration configuration = new BaseConfiguration(); - ServletRequest request = new MockHttpServletRequest() { - public String getParameter(String key) + public String[] getParameterValues(String key) { - return null; + return base.getStringArray(key); } public Enumeration getParameterNames() { - return new IteratorEnumeration(configuration.getKeys()); + return new IteratorEnumeration(base.getKeys()); } }; @@ -105,4 +123,27 @@ } } + /** + * Tests a list with elements that contain an escaped list delimiter. + */ + public void testListWithEscapedElements() + { + String[] values = + { "test1", "test2\\,test3", "test4\\,test5" }; + final String listKey = "test.list"; + BaseConfiguration config = new BaseConfiguration(); + config.setListDelimiter('\0'); + config.addProperty(listKey, values); + assertEquals("Wrong number of list elements", values.length, config + .getList(listKey).size()); + Configuration c = createConfiguration(config); + List v = c.getList(listKey); + assertEquals("Wrong number of elements in list", values.length, v + .size()); + for (int i = 0; i < values.length; i++) + { + assertEquals("Wrong value at index " + i, StringUtils.replace( + values[i], "\\", StringUtils.EMPTY), v.get(i)); + } + } } 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=515306&r1=515305&r2=515306 ============================================================================== --- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original) +++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Tue Mar 6 13:15:00 2007 @@ -23,6 +23,11 @@ + + MapConfiguration and the web-based configurations now treat strings + that contain an escaped list delimiter correctly: The escape character + will be removed, so that for instance "foo\,bar" becomes "foo,bar". + DatabaseConfiguration now handles list delimiters in property values correctly. --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org