You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2008/03/24 17:30:48 UTC
svn commit: r640458 - in /commons/proper/configuration/trunk:
src/java/org/apache/commons/configuration/
src/test/org/apache/commons/configuration/ xdocs/
Author: oheger
Date: Mon Mar 24 09:30:44 2008
New Revision: 640458
URL: http://svn.apache.org/viewvc?rev=640458&view=rev
Log:
CONFIGURATION-318: Take the name of the root element into account when creating an XMLConfiguration using the copy constructor
Modified:
commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java
commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
commons/proper/configuration/trunk/xdocs/changes.xml
Modified: commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java?rev=640458&r1=640457&r2=640458&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java Mon Mar 24 09:30:44 2008
@@ -279,6 +279,7 @@
+ "cannot be changed when loaded from an XML document!");
}
rootElementName = name;
+ getRootNode().setName(name);
}
/**
@@ -422,6 +423,7 @@
}
constructHierarchy(getRoot(), document.getDocumentElement(), elemRefs);
+ getRootNode().setName(document.getDocumentElement().getNodeName());
if (elemRefs)
{
getRoot().setReference(document.getDocumentElement());
Modified: commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java?rev=640458&r1=640457&r2=640458&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java (original)
+++ commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java Mon Mar 24 09:30:44 2008
@@ -67,7 +67,7 @@
Node root = ((Document) result.getNode()).getDocumentElement();
JXPathContext ctx = JXPathContext.newContext(root);
- assertEquals("Wrong name of root element", "config", root.getNodeName());
+ assertEquals("Wrong name of root element", "database", root.getNodeName());
assertEquals("Wrong number of children of root", 1, ctx.selectNodes(
"/*").size());
assertEquals("Wrong number of tables", 2, ctx.selectNodes(
Modified: commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java?rev=640458&r1=640457&r2=640458&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java Mon Mar 24 09:30:44 2008
@@ -1326,6 +1326,45 @@
}
/**
+ * Tests whether the name of the root element is copied when a configuration
+ * is created using the copy constructor.
+ */
+ public void testCopyRootName() throws ConfigurationException
+ {
+ final String rootName = "rootElement";
+ final String xml = "<" + rootName + "><test>true</test></" + rootName
+ + ">";
+ conf.clear();
+ conf.load(new StringReader(xml));
+ XMLConfiguration copy = new XMLConfiguration(conf);
+ assertEquals("Wrong name of root element", rootName, copy
+ .getRootElementName());
+ copy.save(testSaveConf);
+ copy = new XMLConfiguration(testSaveConf);
+ assertEquals("Wrong name of root element after save", rootName, copy
+ .getRootElementName());
+ }
+
+ /**
+ * Tests whether the name of the root element is copied for a configuration
+ * for which not yet a document exists.
+ */
+ public void testCopyRootNameNoDocument() throws ConfigurationException
+ {
+ final String rootName = "rootElement";
+ conf = new XMLConfiguration();
+ conf.setRootElementName(rootName);
+ conf.setProperty("test", Boolean.TRUE);
+ XMLConfiguration copy = new XMLConfiguration(conf);
+ assertEquals("Wrong name of root element", rootName, copy
+ .getRootElementName());
+ copy.save(testSaveConf);
+ copy = new XMLConfiguration(testSaveConf);
+ assertEquals("Wrong name of root element after save", rootName, copy
+ .getRootElementName());
+ }
+
+ /**
* Prepares a configuration object for testing a reload operation.
*
* @return the initialized configuration
Modified: commons/proper/configuration/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/changes.xml?rev=640458&r1=640457&r2=640458&view=diff
==============================================================================
--- commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ commons/proper/configuration/trunk/xdocs/changes.xml Mon Mar 24 09:30:44 2008
@@ -23,6 +23,10 @@
<body>
<release version="1.6" date="in SVN" description="">
+ <action dev="oheger" type="fix" issue="CONFIGURATION-318">
+ When an XMLConfiguration is created using the copy constructor, the name
+ of the root element is now preserved.
+ </action>
<action dev="oheger" type="fix" issue="CONFIGURATION-316">
Changing the text of the root element of an XMLConfiguration had no
effect when the configuration was saved. This has been fixed.