Author: oheger
Date: Sat Oct 21 08:23:45 2006
New Revision: 466413

URL: http://svn.apache.org/viewvc?view=rev&rev=466413
Log:
XPathExpressionEngine now constructs correct keys for attribute nodes; fixes 
CONFIGURATION-230

Modified:
    
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/xpath/XPathExpressionEngine.java
    
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
    
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
    jakarta/commons/proper/configuration/trunk/xdocs/changes.xml

Modified: 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/xpath/XPathExpressionEngine.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/xpath/XPathExpressionEngine.java?view=diff&rev=466413&r1=466412&r2=466413
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/xpath/XPathExpressionEngine.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/tree/xpath/XPathExpressionEngine.java
 Sat Oct 21 08:23:45 2006
@@ -170,10 +170,7 @@
             if (parentKey.length() > 0)
             {
                 buf.append(parentKey);
-                if (!node.isAttribute())
-                {
-                    buf.append(PATH_DELIMITER);
-                }
+                buf.append(PATH_DELIMITER);
             }
             if (node.isAttribute())
             {

Modified: 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java?view=diff&rev=466413&r1=466412&r2=466413
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
 Sat Oct 21 08:23:45 2006
@@ -34,6 +34,7 @@
 
 import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
 import org.apache.commons.configuration.reloading.InvariantReloadingStrategy;
+import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.helpers.DefaultHandler;
@@ -911,6 +912,18 @@
         assertEquals("New value not read", "newValue",
                 ((HierarchicalConfiguration) configs.get(0))
                         .getString("entity"));
+    }
+
+    /**
+     * Tests accessing properties when the XPATH expression engine is set.
+     */
+    public void testXPathExpressionEngine()
+    {
+        conf.setExpressionEngine(new XPathExpressionEngine());
+        assertEquals("Wrong attribute value", "foo\"bar", conf
+                .getString("test[1]/entity/@name"));
+        conf.clear();
+        assertNull(conf.getString("test[1]/entity/@name"));
     }
 
     /**

Modified: 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java?view=diff&rev=466413&r1=466412&r2=466413
==============================================================================
--- 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
 (original)
+++ 
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
 Sat Oct 21 08:23:45 2006
@@ -152,7 +152,7 @@
     {
         ConfigurationNode node = new DefaultConfigurationNode("attr");
         node.setAttribute(true);
-        assertEquals("Wrong attribute key", "[EMAIL PROTECTED]", 
engine.nodeKey(node,
+        assertEquals("Wrong attribute key", "node/@attr", engine.nodeKey(node,
                 "node"));
     }
 

Modified: jakarta/commons/proper/configuration/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/xdocs/changes.xml?view=diff&rev=466413&r1=466412&r2=466413
==============================================================================
--- jakarta/commons/proper/configuration/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/configuration/trunk/xdocs/changes.xml Sat Oct 21 
08:23:45 2006
@@ -23,6 +23,12 @@
 
   <body>
     <release version="1.4-dev" date="in SVN">
+      <action dev="oheger" type="update" issue="CONFIGURATION-230">
+        XPathExpressionEngine used to create wrong keys for attribute nodes.
+        This caused some operations on XMLConfiguration to fail when such an
+        expression engine was set (e.g. reloading). Now correct keys for
+        attributes are constructed.
+      </action>
       <action dev="oheger" type="update" issue="CONFIGURATION-228">
         Some of the methods of file-based hierarchical configurations (e.g.
         subset() or configurationAt()) did not take an eventually set reloading



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

Reply via email to