You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2009/06/21 19:02:44 UTC
svn commit: r787051 - in
/commons/proper/configuration/branches/configuration2_experimental/src:
main/java/org/apache/commons/configuration2/plist/
test/java/org/apache/commons/configuration2/plist/
Author: ebourg
Date: Sun Jun 21 17:02:43 2009
New Revision: 787051
URL: http://svn.apache.org/viewvc?rev=787051&view=rev
Log:
Removed the trimming of empty dictionaries for consistency with XMLPropertyListConfiguration
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/plist/PropertyListConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/plist/TestPropertyListConfiguration.java
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/plist/PropertyListConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/plist/PropertyListConfiguration.java?rev=787051&r1=787050&r2=787051&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/plist/PropertyListConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/plist/PropertyListConfiguration.java Sun Jun 21 17:02:43 2009
@@ -48,7 +48,7 @@
* References:
* <ul>
* <li><a
- * href="http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Articles/OldStylePListsConcept.html">
+ * href="http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/OldStylePlists/OldStylePLists.html#//apple_ref/doc/uid/20001012-BBCBDBJE">
* Apple Documentation - Old-Style ASCII Property Lists</a></li>
* <li><a
* href="http://www.gnustep.org/resources/documentation/Developer/Base/Reference/NSPropertyList.html">
@@ -225,18 +225,7 @@
out.print(padding + quoteString(node.getName()) + " = ");
}
- // get all non trivial nodes
List<ConfigurationNode> children = new ArrayList<ConfigurationNode>(node.getChildren());
- Iterator<ConfigurationNode> it = children.iterator();
- while (it.hasNext())
- {
- ConfigurationNode child = it.next();
- if (child.getValue() == null && (child.getChildren() == null || child.getChildren().isEmpty()))
- {
- it.remove();
- }
- }
-
if (!children.isEmpty())
{
// skip a line, except for the root dictionary
@@ -248,7 +237,7 @@
out.println(padding + "{");
// display the children
- it = children.iterator();
+ Iterator<ConfigurationNode> it = children.iterator();
while (it.hasNext())
{
ConfigurationNode child = it.next();
@@ -277,11 +266,21 @@
out.println();
}
}
+ else if (node.getValue() == null)
+ {
+ out.println();
+ out.print(padding + "{ };");
+
+ // line feed if the dictionary is not in an array
+ if (node.getParentNode() != null)
+ {
+ out.println();
+ }
+ }
else
{
// display the leaf value
- Object value = node.getValue();
- printValue(out, indentLevel, value);
+ printValue(out, indentLevel, node.getValue());
}
}
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/plist/TestPropertyListConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/plist/TestPropertyListConfiguration.java?rev=787051&r1=787050&r2=787051&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/plist/TestPropertyListConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/plist/TestPropertyListConfiguration.java Sun Jun 21 17:02:43 2009
@@ -285,6 +285,29 @@
}
}
+ public void testSaveEmptyDictionary() throws Exception
+ {
+ File savedFile = new File("target/testsave.plist");
+
+ // remove the file previously saved if necessary
+ if (savedFile.exists())
+ {
+ assertTrue(savedFile.delete());
+ }
+
+ // save the configuration
+ String filename = savedFile.getAbsolutePath();
+ config.save(filename);
+
+ assertTrue("The saved file doesn't exist", savedFile.exists());
+
+ // read the configuration and compare the properties
+ PropertyListConfiguration checkConfig = new PropertyListConfiguration(new File(filename));
+
+ assertFalse(config.getRootNode().getChildren("empty-dictionary").isEmpty());
+ assertFalse(checkConfig.getRootNode().getChildren("empty-dictionary").isEmpty());
+ }
+
public void testQuoteString()
{
assertEquals("null string", null, config.quoteString(null));