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/22 19:43:29 UTC
svn commit: r640046 - in
/commons/proper/configuration/branches/configuration2_experimental/src:
main/java/org/apache/commons/configuration2/XMLConfiguration.java
test/java/org/apache/commons/configuration2/TestXMLConfiguration.java
Author: oheger
Date: Sat Mar 22 11:43:29 2008
New Revision: 640046
URL: http://svn.apache.org/viewvc?rev=640046&view=rev
Log:
File-based hierarchical configurations are now derived from AbstractHierarchicalConfiguration
Modified:
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java
Modified: commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java?rev=640046&r1=640045&r2=640046&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java Sat Mar 22 11:43:29 2008
@@ -196,7 +196,7 @@
* @param c the configuration to copy
* @since 1.4
*/
- public XMLConfiguration(HierarchicalConfiguration c)
+ public XMLConfiguration(AbstractHierarchicalConfiguration<? extends ConfigurationNode> c)
{
super(c);
clearReferences(getRootNode());
@@ -532,7 +532,7 @@
{
Iterator<String> it = values.iterator();
// Create new node for the original child's first value
- ConfigurationNode c = createNode(child.getName());
+ ConfigurationNode c = createNode(parent, child.getName());
c.setValue(it.next());
// Copy original attributes to the new node
for (ConfigurationNode ndAttr : child.getAttributes())
@@ -541,7 +541,7 @@
c.addAttribute(ndAttr);
}
parent.removeChild(child);
- parent.addChild(c);
+ //parent.addChild(c);
// add multiple new children
while (it.hasNext())
@@ -623,9 +623,9 @@
XMLBuilderVisitor builder = new XMLBuilderVisitor(document,
isDelimiterParsingDisabled() ? (char) 0 : getListDelimiter());
- builder.processDocument(getRootNode());
+ visit(getRootNode(), builder);
return document;
- } /* try */
+ }
catch (DOMException domEx)
{
throw new ConfigurationException(domEx);
@@ -640,12 +640,19 @@
* Creates a new node object. This implementation returns an instance of the
* <code>XMLNode</code> class.
*
+ * @param parent the parent node
* @param name the node's name
* @return the new node
*/
- protected ConfigurationNode createNode(String name)
+ @Override
+ protected ConfigurationNode createNode(ConfigurationNode parent, String name)
{
- return new XMLNode(name, null);
+ ConfigurationNode node = new XMLNode(name, null);
+ if (parent != null)
+ {
+ parent.addChild(node);
+ }
+ return node;
}
/**
@@ -838,7 +845,7 @@
return (XMLNode) node;
}
- XMLNode xmlNode = (XMLNode) createNode(node.getName());
+ XMLNode xmlNode = (XMLNode) createNode(null, node.getName());
xmlNode.setValue(node.getValue());
for (ConfigurationNode child : node.getChildren())
{
@@ -985,6 +992,7 @@
*
* @param value the node's new value
*/
+ @Override
public void setValue(Object value)
{
super.setValue(value);
@@ -1005,6 +1013,7 @@
/**
* Updates the associated XML elements when a node is removed.
*/
+ @Override
protected void removeReference()
{
if (getReference() != null)
@@ -1145,16 +1154,6 @@
{
document = doc;
this.listDelimiter = listDelimiter;
- }
-
- /**
- * Processes the node hierarchy and adds new nodes to the document.
- *
- * @param rootNode the root node
- */
- public void processDocument(ConfigurationNode rootNode)
- {
- rootNode.visit(this);
}
/**
Modified: commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java?rev=640046&r1=640045&r2=640046&view=diff
==============================================================================
--- commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java (original)
+++ commons/proper/configuration/branches/configuration2_experimental/src/test/java/org/apache/commons/configuration2/TestXMLConfiguration.java Sat Mar 22 11:43:29 2008
@@ -42,11 +42,11 @@
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.SubnodeConfiguration;
import org.apache.commons.configuration2.XMLConfiguration;
+import org.apache.commons.configuration2.expr.xpath.XPathExpressionEngine;
import org.apache.commons.configuration2.reloading.FileAlwaysReloadingStrategy;
import org.apache.commons.configuration2.reloading.InvariantReloadingStrategy;
import org.apache.commons.configuration2.tree.ConfigurationNode;
import org.apache.commons.configuration2.tree.DefaultConfigurationNode;
-import org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
@@ -955,7 +955,7 @@
public void testConfigurationAtWithReload() throws ConfigurationException
{
XMLConfiguration c = setUpReloadTest();
- HierarchicalConfiguration sub = c.configurationAt("test(0)");
+ AbstractHierarchicalConfiguration<ConfigurationNode> sub = c.configurationAt("test(0)");
assertEquals("New value not read", "newValue", sub.getString("entity"));
}
@@ -965,10 +965,10 @@
public void testConfigurationsAtWithReload() throws ConfigurationException
{
XMLConfiguration c = setUpReloadTest();
- List configs = c.configurationsAt("test");
+ List<SubConfiguration<ConfigurationNode>> configs =
+ c.configurationsAt("test");
assertEquals("New value not read", "newValue",
- ((HierarchicalConfiguration) configs.get(0))
- .getString("entity"));
+ (configs.get(0)).getString("entity"));
}
/**
@@ -1095,8 +1095,8 @@
final String newValue = "I am autosaved";
conf.setFile(testSaveConf);
conf.setAutoSave(true);
- SubnodeConfiguration sub1 = conf.configurationAt("element2");
- SubnodeConfiguration sub2 = sub1.configurationAt("subelement");
+ AbstractHierarchicalConfiguration<ConfigurationNode> sub1 = conf.configurationAt("element2");
+ AbstractHierarchicalConfiguration<ConfigurationNode> sub2 = sub1.configurationAt("subelement");
sub2.setProperty("subsubelement", newValue);
assertEquals("Change not visible to parent", newValue, conf
.getString("element2.subelement.subsubelement"));
@@ -1229,7 +1229,7 @@
node.addChild(child);
ConfigurationNode attr = new DefaultConfigurationNode("attr");
node.addAttribute(attr);
- ConfigurationNode node2 = conf.createNode("test2");
+ ConfigurationNode node2 = conf.createNode(null, "test2");
Collection<ConfigurationNode> nodes = new ArrayList<ConfigurationNode>(2);
nodes.add(node);
nodes.add(node2);
@@ -1293,7 +1293,7 @@
public void testSaveAfterCreateWithCopyConstructor()
throws ConfigurationException
{
- HierarchicalConfiguration hc = conf.configurationAt("element2");
+ AbstractHierarchicalConfiguration<ConfigurationNode> hc = conf.configurationAt("element2");
conf = new XMLConfiguration(hc);
conf.save(testSaveConf);
XMLConfiguration checkConfig = new XMLConfiguration();