Author: indika
Date: Wed Feb 21 22:17:43 2007
New Revision: 510413

URL: http://svn.apache.org/viewvc?view=rev&rev=510413
Log:
Committing  for Michael Griffin--- applied patch 
 fixed issue in JIRA SYNAPSE-56 and change XSLTMediatorTest to test fixes 

Modified:
    
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
    
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/XSLTMediatorTest.java
    
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/TestUtils.java

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java?view=diff&rev=510413&r1=510412&r2=510413
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
 Wed Feb 21 22:17:43 2007
@@ -190,14 +190,9 @@
                 log.debug("Transformation result : " + result);
             }
 
-            OMContainer parent = sourceNode.getParent();
-            if (parent instanceof SOAPEnvelope) {
-                ((SOAPEnvelope) parent).getBody().getFirstOMChild().detach();
-                ((SOAPEnvelope) parent).getBody().setFirstChild(result);
-            } else {
-                parent.getFirstOMChild().detach();
-                parent.addChild(result);
-            }
+            // replace the sourceNode with the result.
+            sourceNode.insertSiblingAfter( result );
+            sourceNode.detach();
 
         } catch (TransformerException e) {
             handleException("Error performing XSLT transformation " + xsltKey, 
e);

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/XSLTMediatorTest.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/XSLTMediatorTest.java?view=diff&rev=510413&r1=510412&r2=510413
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/XSLTMediatorTest.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/XSLTMediatorTest.java
 Wed Feb 21 22:17:43 2007
@@ -68,14 +68,14 @@
         props.put("xslt-key", prop);
 
         // invoke transformation, with static enveope
-        MessageContext synCtx = TestUtils.getTestContext(SOURCE, props);
+        MessageContext synCtx = 
TestUtils.getTestContextForXSLTMediator(SOURCE, props);
         transformMediator.mediate(synCtx);
 
         // validate result
         OMContainer body = synCtx.getEnvelope().getBody();
-        if (body.getFirstOMChild() instanceof OMElement) {
+        if (body.getFirstOMChild().getNextOMSibling() instanceof OMElement) {
 
-            OMElement getQuoteElem = (OMElement) body.getFirstOMChild();
+            OMElement getQuoteElem = (OMElement) 
body.getFirstOMChild().getNextOMSibling();
             assertTrue("GetQuote".equals(getQuoteElem.getLocalName()));
             
assertTrue("http://www.webserviceX.NET/".equals(getQuoteElem.getNamespace().getName()));
 
@@ -108,14 +108,14 @@
         props.put("xslt-key", prop);
 
         // invoke transformation, with static enveope
-        MessageContext synCtx = TestUtils.getTestContext(SOURCE, props);
+        MessageContext synCtx = 
TestUtils.getTestContextForXSLTMediator(SOURCE, props);
         transformMediator.mediate(synCtx);
 
         // validate result
         OMContainer body = synCtx.getEnvelope().getBody();
-        if (body.getFirstOMChild() instanceof OMElement) {
+        if (body.getFirstOMChild().getNextOMSibling() instanceof OMElement) {
 
-            OMElement getQuoteElem = (OMElement) body.getFirstOMChild();
+            OMElement getQuoteElem = (OMElement) 
body.getFirstOMChild().getNextOMSibling();
             assertTrue("GetQuote".equals(getQuoteElem.getLocalName()));
             
assertTrue("http://www.webserviceX.NET/".equals(getQuoteElem.getNamespace().getName()));
 
@@ -149,14 +149,14 @@
         props.put("xslt-key", prop);
         
         // invoke transformation, with static enveope
-        MessageContext synCtx = TestUtils.getTestContext(ENCLOSING_SOURCE, 
props);
+        MessageContext synCtx = 
TestUtils.getTestContextForXSLTMediator(ENCLOSING_SOURCE, props);
         transformMediator.mediate(synCtx);
 
         // validate result
         OMContainer body = synCtx.getEnvelope().getBody();
-        if (body.getFirstOMChild() instanceof OMElement) {
+        if (body.getFirstOMChild().getNextOMSibling() instanceof OMElement) {
 
-            OMElement someOtherElem = (OMElement) body.getFirstOMChild();
+            OMElement someOtherElem = (OMElement) 
body.getFirstOMChild().getNextOMSibling();
             
assertTrue("someOtherElement".equals(someOtherElem.getLocalName()));
             
assertTrue("http://someother".equals(someOtherElem.getNamespace().getName()));
 

Modified: 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/TestUtils.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/TestUtils.java?view=diff&rev=510413&r1=510412&r2=510413
==============================================================================
--- 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/TestUtils.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/TestUtils.java
 Wed Feb 21 22:17:43 2007
@@ -31,6 +31,7 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.synapse.MessageContext;
@@ -75,6 +76,39 @@
         return synCtx;
     }
 
+    public static TestMessageContext getTestContextForXSLTMediator(String 
bodyText, Map props) throws Exception {
+
+        // create a test synapse context
+        TestMessageContext synCtx = new TestMessageContext();
+        SynapseConfiguration testConfig = new SynapseConfiguration();
+        testConfig.addRegistry(null, new SimpleURLRegistry());
+
+        if (props != null) {
+            Iterator iter = props.keySet().iterator();
+            while (iter.hasNext()) {
+                String key = (String) iter.next();
+                testConfig.addProperty(key, (Property) props.get(key));
+            }
+        }
+        synCtx.setConfiguration(testConfig);
+
+        SOAPEnvelope envelope = 
OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
+        OMDocument omDoc = 
OMAbstractFactory.getSOAP11Factory().createOMDocument();
+        omDoc.addChild(envelope);
+
+        XMLStreamReader parser = XMLInputFactory.newInstance().
+                createXMLStreamReader(new StringReader(bodyText));
+        StAXOMBuilder builder = new StAXOMBuilder(parser);
+
+        // set a dummy static message
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        envelope.getBody().addChild(fac.createOMText("first text child "));
+        envelope.getBody().addChild(builder.getDocumentElement());
+        envelope.getBody().addChild(fac.createOMText("second text child "));
+
+        synCtx.setEnvelope(envelope);
+        return synCtx;
+    }
     public static TestMessageContext getTestContext(String bodyText) throws 
Exception {
         return getTestContext(bodyText, null);
     }



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

Reply via email to