Author: oheger
Date: Sat Mar 17 20:10:46 2012
New Revision: 1301990

URL: http://svn.apache.org/viewvc?rev=1301990&view=rev
Log:
[CONFIGURATION-487] DataConfiguration.get() now also works for data types that 
do not require a type conversion.

Modified:
    commons/proper/configuration/trunk/src/changes/changes.xml
    
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PropertyConverter.java
    
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDataConfiguration.java
    
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java

Modified: commons/proper/configuration/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/changes/changes.xml?rev=1301990&r1=1301989&r2=1301990&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/changes/changes.xml (original)
+++ commons/proper/configuration/trunk/src/changes/changes.xml Sat Mar 17 
20:10:46 2012
@@ -27,6 +27,10 @@
   <body>
     <release version="1.9" date="in SVN"
       description="TBD">
+      <action dev="oheger" type="fix" issue="CONFIGURATION-487">
+        DataConfiguration.get() now also works with String properties and if no
+        data type conversion is required.
+      </action>
       <action dev="oheger" type="fix" issue="CONFIGURATION-481">
         Variable substitution in configuration sources declared in a definition
         file for DefaultConfigurationBuilder now works across multiple sources.

Modified: 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PropertyConverter.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PropertyConverter.java?rev=1301990&r1=1301989&r2=1301990&view=diff
==============================================================================
--- 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PropertyConverter.java
 (original)
+++ 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PropertyConverter.java
 Sat Mar 17 20:10:46 2012
@@ -97,6 +97,11 @@ public final class PropertyConverter
      */
     static Object to(Class<?> cls, Object value, Object[] params) throws 
ConversionException
     {
+        if (cls.isInstance(value))
+        {
+            return value; // no conversion needed
+        }
+
         if (Boolean.class.equals(cls) || Boolean.TYPE.equals(cls))
         {
             return toBoolean(value);

Modified: 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDataConfiguration.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDataConfiguration.java?rev=1301990&r1=1301989&r2=1301990&view=diff
==============================================================================
--- 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDataConfiguration.java
 (original)
+++ 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDataConfiguration.java
 Sat Mar 17 20:10:46 2012
@@ -2386,4 +2386,17 @@ public class TestDataConfiguration
             // expected
         }
     }
+
+    /**
+     * Tests whether a string property can be obtained through get() if no type
+     * conversion is required.
+     */
+    @Test
+    public void testGetPropertyWithoutConversion()
+    {
+        String key = "test.str";
+        String value = "someTestValue";
+        conf.addProperty(key, value);
+        assertEquals("Wrong result", value, conf.get(String.class, key));
+    }
 }

Modified: 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java?rev=1301990&r1=1301989&r2=1301990&view=diff
==============================================================================
--- 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
 (original)
+++ 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
 Sat Mar 17 20:10:46 2012
@@ -338,4 +338,15 @@ public class TestPropertyConverter
     {
         PropertyConverter.toEnum(Integer.valueOf(-1), ENUM_CLASS);
     }
+
+    /**
+     * Tests a trivial conversion: the value has already the desired type.
+     */
+    @Test
+    public void testToNoConversionNeeded()
+    {
+        String value = "testValue";
+        assertEquals("Wrong conversion result", value,
+                PropertyConverter.to(String.class, value, null));
+    }
 }


Reply via email to