Author: ebourg
Date: Thu Apr 19 16:08:36 2007
New Revision: 530587

URL: http://svn.apache.org/viewvc?view=rev&rev=530587
Log:
Fixed the storage of byte[] properties in the plist configurations 
(addProperty() case)

Modified:
    
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/PropertyListConfiguration.java
    
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/XMLPropertyListConfiguration.java
    
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java
    
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.java

Modified: 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/PropertyListConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/PropertyListConfiguration.java?view=diff&rev=530587&r1=530586&r2=530587
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/PropertyListConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/PropertyListConfiguration.java
 Thu Apr 19 16:08:36 2007
@@ -155,6 +155,20 @@
         }
     }
 
+    public void addProperty(String key, Object value)
+    {
+        if (value instanceof byte[])
+        {
+            fireEvent(EVENT_ADD_PROPERTY, key, value, true);
+            addPropertyDirect(key, value);
+            fireEvent(EVENT_ADD_PROPERTY, key, value, false);
+        }
+        else
+        {
+            super.setProperty(key, value);
+        }
+    }
+
     public void load(Reader in) throws ConfigurationException
     {
         PropertyListParser parser = new PropertyListParser(in);

Modified: 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/XMLPropertyListConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/XMLPropertyListConfiguration.java?view=diff&rev=530587&r1=530586&r2=530587
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/XMLPropertyListConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/plist/XMLPropertyListConfiguration.java
 Thu Apr 19 16:08:36 2007
@@ -195,6 +195,20 @@
         }
     }
 
+    public void addProperty(String key, Object value)
+    {
+        if (value instanceof byte[])
+        {
+            fireEvent(EVENT_ADD_PROPERTY, key, value, true);
+            addPropertyDirect(key, value);
+            fireEvent(EVENT_ADD_PROPERTY, key, value, false);
+        }
+        else
+        {
+            super.setProperty(key, value);
+        }
+    }
+
     public void load(Reader in) throws ConfigurationException
     {
         // set up the DTD validation

Modified: 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java?view=diff&rev=530587&r1=530586&r2=530587
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java
 Thu Apr 19 16:08:36 2007
@@ -274,6 +274,24 @@
         ArrayAssert.assertEquals(expected, (byte[]) array);
     }
 
+    /**
+     * Ensure that addProperty doesn't alter an array of byte
+     */
+    public void testAddDataProperty() throws Exception
+    {
+        byte[] expected = new byte[]{1, 2, 3, 4};
+        PropertyListConfiguration config = new PropertyListConfiguration();
+        config.addProperty("foo", expected);
+        config.save("target/testdata.plist");
+
+        PropertyListConfiguration config2 = new 
PropertyListConfiguration("target/testdata.plist");
+        Object array = config2.getProperty("foo");
+
+        assertNotNull("data not found", array);
+        assertEquals("property type", byte[].class, array.getClass());
+        ArrayAssert.assertEquals(expected, (byte[]) array);
+    }
+
     public void testInitCopy()
     {
        PropertyListConfiguration copy = new PropertyListConfiguration(config);

Modified: 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.java?view=diff&rev=530587&r1=530586&r2=530587
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.java
 Thu Apr 19 16:08:36 2007
@@ -274,10 +274,28 @@
         ArrayAssert.assertEquals(expected, (byte[]) array);
     }
 
+    /**
+     * Ensure that addProperty doesn't alter an array of byte
+     */
+    public void testAddDataProperty() throws Exception
+    {
+        byte[] expected = new byte[]{1, 2, 3, 4};
+        XMLPropertyListConfiguration config = new 
XMLPropertyListConfiguration();
+        config.addProperty("foo", expected);
+        config.save("target/testdata.plist.xml");
+
+        XMLPropertyListConfiguration config2 = new 
XMLPropertyListConfiguration("target/testdata.plist.xml");
+        Object array = config2.getProperty("foo");
+
+        assertNotNull("data not found", array);
+        assertEquals("property type", byte[].class, array.getClass());
+        ArrayAssert.assertEquals(expected, (byte[]) array);
+    }
+
     public void testInitCopy()
        {
                XMLPropertyListConfiguration copy = new 
XMLPropertyListConfiguration((HierarchicalConfiguration) config);
                StrictConfigurationComparator comp = new 
StrictConfigurationComparator();
                assertTrue("Configurations are not equal", comp.compare(config, 
copy));
        }
-}
\ No newline at end of file
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to