Author: indika
Date: Mon Jun 22 17:44:41 2009
New Revision: 787326

URL: http://svn.apache.org/viewvc?rev=787326&view=rev
Log:
fix (workaround) for XPath eval failure on resources picked from Registry
Add a TestCase

Added:
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/resource.xml
Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/url/SimpleURLRegistryTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java?rev=787326&r1=787325&r2=787326&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/url/SimpleURLRegistry.java
 Mon Jun 22 17:44:41 2009
@@ -19,8 +19,7 @@
 
 package org.apache.synapse.registry.url;
 
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.*;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -53,6 +52,7 @@
 
     private static final int MAX_KEYS = 200;
     private String root = "";
+    private final OMFactory omFactory = OMAbstractFactory.getOMFactory();
 
     public OMNode lookup(String key) {
 
@@ -122,7 +122,10 @@
             } finally {
                 try {
                     if (result != null && result.getParent() != null) {
+                        //TODO Replace following code with the correct code 
when synapse is moving to AXIOM 1.2.9
                         result.detach();
+                        OMDocument omDocument = omFactory.createOMDocument();
+                        omDocument.addChild(result);
                     }
                     inputStream.close();
                 } catch (IOException e) {

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/url/SimpleURLRegistryTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/url/SimpleURLRegistryTest.java?rev=787326&r1=787325&r2=787326&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/url/SimpleURLRegistryTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/url/SimpleURLRegistryTest.java
 Mon Jun 22 17:44:41 2009
@@ -21,10 +21,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.*;
+import org.apache.axiom.om.xpath.AXIOMXPath;
 import org.apache.commons.io.output.NullOutputStream;
 import org.apache.synapse.config.Entry;
 import org.apache.synapse.registry.Registry;
@@ -114,6 +112,22 @@
         node.serialize(new NullOutputStream());
     }
 
+    public void testXPathEvaluationOnRegistryResource() throws Exception {
+        SimpleURLRegistry registry = new SimpleURLRegistry();
+        OMNode omNode =
+                registry.lookup(
+                        
"file:src/test/resources/org/apache/synapse/core/registry/resource.xml");
+
+        assertNotNull(omNode);
+
+        AXIOMXPath xpath = new 
AXIOMXPath("//table/ent...@id='one']/value/child::text()");
+        OMNode node = (OMNode) xpath.selectSingleNode(omNode);
+
+        assertNotNull(node);
+        assertTrue(node instanceof OMText);
+        assertEquals("ValueOne", ((OMText) node).getText());
+    }
+
     public void tearDown() throws Exception {
         new File(FILE).delete();
         new File(FILE2).delete();

Added: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/resource.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/resource.xml?rev=787326&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/resource.xml
 (added)
+++ 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/core/registry/resource.xml
 Mon Jun 22 17:44:41 2009
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--Test resource in registry-->
+<table>
+    <entry id="one">
+        <value>ValueOne</value>
+    </entry>
+    <entry id="two">
+        <value>ValueTwo</value>
+    </entry>
+</table>
\ No newline at end of file


Reply via email to