Author: hiranya
Date: Mon Aug 8 05:07:28 2011
New Revision: 1154823
URL: http://svn.apache.org/viewvc?rev=1154823&view=rev
Log:
Fixing SYNAPSE-780
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java?rev=1154823&r1=1154822&r2=1154823&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
Mon Aug 8 05:07:28 2011
@@ -211,6 +211,7 @@ public class XSLTMediator extends Abstra
OMNode sourceNode = source.selectOMNode(synCtx, synLog);
boolean isSoapEnvelope = (sourceNode == synCtx.getEnvelope());
boolean isSoapBody = (sourceNode == synCtx.getEnvelope().getBody());
+ boolean isSoapHeader = (sourceNode ==
synCtx.getEnvelope().getHeader());
// Derive actual key from message context
String generatedXsltKey = xsltKey.evaluateValue(synCtx);
@@ -332,6 +333,18 @@ public class XSLTMediator extends Abstra
synCtx.getEnvelope().getBody().addChild(child);
}
+ } else if (isSoapHeader) {
+ for (Iterator itr =
synCtx.getEnvelope().getHeader().getChildElements();
+ itr.hasNext();) {
+ OMElement child = (OMElement)
itr.next();
+ child.detach();
+ }
+
+ for (Iterator itr =
result.getChildElements(); itr.hasNext();) {
+ OMElement child = (OMElement)
itr.next();
+
synCtx.getEnvelope().getHeader().addChild(child);
+ }
+
} else {
sourceNode.insertSiblingAfter(result);
sourceNode.detach();