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


Reply via email to