Author: oheger
Date: Wed Nov 26 21:22:03 2014
New Revision: 1641943
URL: http://svn.apache.org/r1641943
Log:
[CONFIGURATION-564] Properties without a value and separator are now supported.
The regular expression was slightly modified to support property
declarations that do not have a separator. Such keys are now added to the
configuration without a value.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
commons/proper/configuration/trunk/src/test/resources/test.properties
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java?rev=1641943&r1=1641942&r2=1641943&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java
(original)
+++
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/PropertiesConfiguration.java
Wed Nov 26 21:22:03 2014
@@ -628,7 +628,7 @@ public class PropertiesConfiguration ext
private static final Pattern PROPERTY_PATTERN = Pattern
.compile("(([\\S&&[^\\\\" + new String(SEPARATORS)
+ "]]|\\\\.)*)(\\s*(\\s+|[" + new String(SEPARATORS)
- + "])\\s*)(.*)");
+ + "])\\s*)?(.*)");
/** Constant for the index of the group for the key. */
private static final int IDX_KEY = 1;
@@ -1185,7 +1185,7 @@ public class PropertiesConfiguration ext
protected String fetchSeparator(String key, Object value)
{
return (getGlobalSeparator() != null) ? getGlobalSeparator()
- : getCurrentSeparator();
+ : StringUtils.defaultString(getCurrentSeparator());
}
} // class PropertiesWriter
Modified:
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java?rev=1641943&r1=1641942&r2=1641943&view=diff
==============================================================================
---
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
(original)
+++
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestPropertiesConfiguration.java
Wed Nov 26 21:22:03 2014
@@ -142,15 +142,35 @@ public class TestPropertiesConfiguration
}
/**
- * Tests that empty properties are treated as the empty string
- * (rather than as null).
+ * Checks for a property without a value.
+ *
+ * @param key the key to be checked
+ */
+ private void checkEmpty(String key)
+ {
+ String empty = conf.getString(key);
+ assertNotNull("Property not found: " + key, empty);
+ assertEquals("Wrong value for property " + key, "", empty);
+ }
+
+ /**
+ * Tests that empty properties are treated as the empty string (rather than
+ * as null).
+ */
+ @Test
+ public void testEmpty()
+ {
+ checkEmpty("test.empty");
+ }
+
+ /**
+ * Tests that properties are detected that do not have a separator and a
+ * value.
*/
@Test
- public void testEmpty() throws Exception
+ public void testEmptyNoSeparator()
{
- String empty = conf.getString("test.empty");
- assertNotNull(empty);
- assertEquals("", empty);
+ checkEmpty("test.empty2");
}
/**
Modified: commons/proper/configuration/trunk/src/test/resources/test.properties
URL:
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/resources/test.properties?rev=1641943&r1=1641942&r2=1641943&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/resources/test.properties
(original)
+++ commons/proper/configuration/trunk/src/test/resources/test.properties Wed
Nov 26 21:22:03 2014
@@ -32,6 +32,7 @@ test.unescape.list-separator = This stri
test.equals = value=one
test.empty =
+test.empty2
test.mixed.array = a
test.mixed.array = b, c, d