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/19 18:22:16 UTC
svn commit: r530473 - in /webservices/synapse/trunk/java/modules:
core/src/main/java/org/apache/synapse/core/axis2/
nhttp/src/org/apache/axis2/transport/nhttp/
Author: asankha
Date: Thu Apr 19 09:22:14 2007
New Revision: 530473
URL: http://svn.apache.org/viewvc?view=rev&rev=530473
Log:
fix SYNAPSE-84 for MTOM and SwA handling, and properly use message formatters and attachments etc
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?view=diff&rev=530473&r1=530472&r2=530473
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Thu Apr 19 09:22:14 2007
@@ -44,6 +44,7 @@
import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.axiom.attachments.Attachments;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.neethi.Policy;
@@ -93,7 +94,18 @@
wsAddressingEnabled = endpoint.isAddressingOn() || wsSecurityEnabled || wsRMEnabled;
}
- log.debug("sending [add = "+wsAddressingEnabled+"] [sec = "+wsSecurityEnabled + "] [ rm = "+wsRMEnabled+"] [ to "+synapseOutMessageContext.getTo()+"]");
+ if (log.isDebugEnabled()) {
+ log.debug(
+ "sending [add = " + wsAddressingEnabled +
+ "] [sec = " + wsSecurityEnabled +
+ "] [rm = " + wsRMEnabled +
+ (endpoint != null ?
+ "] [ mtom = " + endpoint.isUseMTOM() +
+ "] [ swa = " + endpoint.isUseSwa() +
+ "] [ force soap=" + endpoint.isForceSOAP() +
+ "; pox=" + endpoint.isForcePOX() : "") +
+ "] [ to " + synapseOutMessageContext.getTo() + "]");
+ }
// save the original message context wihout altering it, so we can tie the response
MessageContext originalInMsgCtx = ((Axis2MessageContext) synapseOutMessageContext).getAxis2MessageContext();
@@ -124,13 +136,15 @@
axisOutMsgCtx.setProperty(
org.apache.axis2.Constants.Configuration.ENABLE_MTOM,
org.apache.axis2.Constants.VALUE_TRUE);
+ axisOutMsgCtx.setDoingMTOM(true);
} else if (endpoint.isUseSwa()) {
axisOutMsgCtx.setDoingSwA(true);
// fix / workaround for AXIS2-1798
axisOutMsgCtx.setProperty(
- org.apache.axis2.Constants.Configuration.ENABLE_MTOM,
+ org.apache.axis2.Constants.Configuration.ENABLE_SWA,
org.apache.axis2.Constants.VALUE_TRUE);
+ axisOutMsgCtx.setDoingSwA(true);
}
if (endpoint.isUseSeparateListener()) {
@@ -233,6 +247,19 @@
newMC.setDoingREST(ori.isDoingREST());
newMC.setDoingMTOM(ori.isDoingMTOM());
+ newMC.setDoingSwA(ori.isDoingSwA());
+
+ // if the original request carries any attachments, copy them to the clone
+ // as well, except for the soap part if any
+ Attachments attachments = ori.getAttachmentMap();
+ String[] cIDs = attachments.getAllContentIDs();
+ String soapPart = attachments.getSOAPPartContentID();
+ for (int i=0; i<cIDs.length; i++) {
+ if (!cIDs[i].equals(soapPart)) {
+ newMC.addAttachment(cIDs[i], attachments.getDataHandler(cIDs[i]));
+ }
+ }
+
newMC.setServerSide(false);
// set SOAP envelope on the message context, removing WS-A headers
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?view=diff&rev=530473&r1=530472&r2=530473
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Thu Apr 19 09:22:14 2007
@@ -152,6 +152,19 @@
// If request is REST assume that the response is REST too
response.setDoingREST(axisOutMsgCtx.isDoingREST());
+ if (axisOutMsgCtx.isDoingMTOM()) {
+ response.setDoingMTOM(true);
+ response.setProperty(
+ org.apache.axis2.Constants.Configuration.ENABLE_MTOM,
+ org.apache.axis2.Constants.VALUE_TRUE);
+ }
+ if (axisOutMsgCtx.isDoingSwA()) {
+ response.setDoingSwA(true);
+ response.setProperty(
+ org.apache.axis2.Constants.Configuration.ENABLE_SWA,
+ org.apache.axis2.Constants.VALUE_TRUE);
+ }
+
if (axisOutMsgCtx.getMessageID() != null) {
response.setRelationships(
new RelatesTo[]{new RelatesTo(axisOutMsgCtx.getMessageID())});
Modified: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java?view=diff&rev=530473&r1=530472&r2=530473
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java (original)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java Thu Apr 19 09:22:14 2007
@@ -163,8 +163,16 @@
log.debug("start streaming outgoing http request");
OutputStream out = Channels.newOutputStream(pipe.sink());
- messageFormatter.writeTo(msgContext, format, out, false);
- try {
+
+ if (format == null) {
+ format = Util.getOMOutputFormat(msgContext);
+ }
+ if (messageFormatter == null) {
+ messageFormatter = TransportUtils.getMessageFormatter(msgContext);
+ }
+
+ messageFormatter.writeTo(msgContext, format, out, true);
+ try {
out.flush();
out.close();
} catch (IOException e) {
Modified: webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java?view=diff&rev=530473&r1=530472&r2=530473
==============================================================================
--- webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java (original)
+++ webservices/synapse/trunk/java/modules/nhttp/src/org/apache/axis2/transport/nhttp/HttpCoreNIOSender.java Thu Apr 19 09:22:14 2007
@@ -235,6 +235,7 @@
headers.remove(HTTP.SERVER_DIRECTIVE);
headers.remove(HTTP.CONTENT_TYPE);
headers.remove(HTTP.CONTENT_LEN);
+ headers.remove(HTTP.USER_AGENT);
}
}
@@ -312,7 +313,7 @@
OutputStream out = worker.getOutputStream();
try {
- messageFormatter.writeTo(msgContext, format, out, false);
+ messageFormatter.writeTo(msgContext, format, out, true);
out.close();
} catch (IOException e) {
handleException("IO Error sending response message", e);
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org