Author: oheger
Date: Thu Jul 12 12:59:25 2007
New Revision: 555737
URL: http://svn.apache.org/viewvc?view=rev&rev=555737
Log:
CONFIGURATION-283: ConfigurationUtils.convertToHierarchical() now correctly
deals with properties whose values contain (escaped) list delimiters
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/TestCombinedConfiguration.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/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/ConfigurationUtils.java?view=diff&rev=555737&r1=555736&r2=555737
==============================================================================
---
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
Thu Jul 12 12:59:25 2007
@@ -188,7 +188,11 @@
else
{
HierarchicalConfiguration hc = new HierarchicalConfiguration();
+ // Workaround for problem with copy()
+ boolean delimiterParsingStatus = hc.isDelimiterParsingDisabled();
+ hc.setDelimiterParsingDisabled(true);
ConfigurationUtils.copy(conf, hc);
+ hc.setDelimiterParsingDisabled(delimiterParsingStatus);
return hc;
}
}
Modified:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCombinedConfiguration.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCombinedConfiguration.java?view=diff&rev=555737&r1=555736&r2=555737
==============================================================================
---
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCombinedConfiguration.java
(original)
+++
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCombinedConfiguration.java
Thu Jul 12 12:59:25 2007
@@ -559,6 +559,17 @@
}
/**
+ * Tests whether escaped list delimiters are treated correctly.
+ */
+ public void testEscapeListDelimiters()
+ {
+ PropertiesConfiguration sub = new PropertiesConfiguration();
+ sub.addProperty("test.pi", "3\\,1415");
+ config.addConfiguration(sub);
+ assertEquals("Wrong value", "3,1415", config.getString("test.pi"));
+ }
+
+ /**
* Helper method for writing a file.
*
* @param file the file to be written
Modified:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationUtils.java?view=diff&rev=555737&r1=555736&r2=555737
==============================================================================
---
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
Thu Jul 12 12:59:25 2007
@@ -48,10 +48,10 @@
config.setProperty("two", "2");
assertEquals("String representation of a configuration", "one=1" +
lineSeparator + "two=2" , ConfigurationUtils.toString(config));
-
+
config.clearProperty("one");
assertEquals("String representation of a configuration", "two=2" ,
ConfigurationUtils.toString(config));
-
+
config.setProperty("one","1");
assertEquals("String representation of a configuration", "two=2" +
lineSeparator + "one=1" , ConfigurationUtils.toString(config));
}
@@ -75,7 +75,7 @@
URL url = ConfigurationUtils.getURL(null, "config.xml");
assertEquals("file", url.getProtocol());
assertEquals("", url.getHost());
-
+
assertEquals(
"http://localhost:8080/webapp/config/config.xml",
ConfigurationUtils
@@ -97,7 +97,7 @@
assertEquals(
absFile.toURL(),
ConfigurationUtils.getURL(null, absFile.getAbsolutePath()));
-
+
assertEquals(absFile.toURL(),
ConfigurationUtils.getURL(absFile.getParent(), "config.xml"));
}
@@ -180,10 +180,10 @@
{
File directory = new File("target");
File reference = new File(directory, "test.txt").getAbsoluteFile();
-
+
assertEquals(reference, ConfigurationUtils.getFile(null,
reference.getAbsolutePath()));
assertEquals(reference,
ConfigurationUtils.getFile(directory.getAbsolutePath(),
reference.getAbsolutePath()));
- assertEquals(reference,
ConfigurationUtils.getFile(directory.getAbsolutePath(), reference.getName()));
+ assertEquals(reference,
ConfigurationUtils.getFile(directory.getAbsolutePath(), reference.getName()));
assertEquals(reference,
ConfigurationUtils.getFile(directory.toURL().toString(), reference.getName()));
assertEquals(reference, ConfigurationUtils.getFile("invalid",
reference.toURL().toString()));
assertEquals(reference, ConfigurationUtils.getFile(
@@ -249,6 +249,22 @@
{
assertNull("Wrong conversion result for null config",
ConfigurationUtils.convertToHierarchical(null));
+ }
+
+ /**
+ * Tests converting a configuration into a hierarchical one if some of its
+ * properties contain escaped list delimiter characters.
+ */
+ public void testConvertToHierarchicalDelimiters()
+ {
+ Configuration conf = new BaseConfiguration();
+ conf.addProperty("test.key", "1\\,2\\,3");
+ assertEquals("Wrong property value", "1,2,3", conf
+ .getString("test.key"));
+ HierarchicalConfiguration hc = ConfigurationUtils
+ .convertToHierarchical(conf);
+ assertEquals("Escaped list delimiters not correctly handled", "1,2,3",
+ hc.getString("test.key"));
}
/**
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=555737&r1=555736&r2=555737
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Thu Jul 12
12:59:25 2007
@@ -23,6 +23,12 @@
<body>
<release version="1.5-SNAPSHOT" date="in SVN" description="">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-283">
+ ConfigurationUtils.convertToHierarchical() now correctly deals with
+ property values containing escaped list delimiters. This also affects
+ CombinedConfiguration when sub configurations with such property values
+ are contained.
+ </action>
<action dev="oheger" type="fix" issue="CONFIGURATION-275">
AbstractConfiguration.addProperty() now correctly deals with list and
array properties if delimiter parsing is disabled.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]