You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2007/04/30 14:46:54 UTC
svn commit: r533728 - in
/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform:
FaultMediator.java HeaderMediator.java
Author: asankha
Date: Mon Apr 30 05:46:54 2007
New Revision: 533728
URL: http://svn.apache.org/viewvc?view=rev&rev=533728
Log:
make a newly created fault message go to the FaultTo (if available) or the ReplyTo, or else the transport out
support adding of custom simple string value headers
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java?view=diff&rev=533728&r1=533727&r2=533728
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/FaultMediator.java Mon Apr 30 05:46:54 2007
@@ -154,6 +154,15 @@
log.error(msg);
throw new SynapseException(af);
}
+
+ if (synCtx.getFaultTo() != null) {
+ synCtx.setTo(synCtx.getFaultTo());
+ } else if (synCtx.getReplyTo() != null) {
+ synCtx.setTo(synCtx.getReplyTo());
+ } else {
+ synCtx.setTo(null);
+ }
+
if (shouldTrace) {
trace.trace("End : Fault mediator");
}
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java?view=diff&rev=533728&r1=533727&r2=533728
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java Mon Apr 30 05:46:54 2007
@@ -22,6 +22,9 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPHeader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.*;
@@ -89,8 +92,10 @@
} else if (Constants.HEADER_REPLY_TO.equals(qName.getLocalPart())) {
synCtx.setReplyTo(new EndpointReference(value));
} else {
- handleException("Unsupported header : " + qName.getLocalPart());
+ addCustomHeader(synCtx);
}
+ } else {
+ addCustomHeader(synCtx);
}
} else {
@@ -123,6 +128,18 @@
trace.trace("End : Header mediator");
}
return true;
+ }
+
+ private void addCustomHeader(MessageContext synCtx) {
+ SOAPEnvelope env = synCtx.getEnvelope();
+ SOAPFactory fac = (SOAPFactory) env.getOMFactory();
+ SOAPHeader header = env.getHeader();
+ if (header == null) {
+ header = fac.createSOAPHeader(env);
+ }
+ SOAPHeaderBlock hb = header.addHeaderBlock(qName.getLocalPart(),
+ fac.createOMNamespace(qName.getNamespaceURI(), qName.getPrefix()));
+ hb.setText(value);
}
private void removeFromHeaderList(List headersList) {
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org