Author: veithen
Date: Thu Sep 4 13:51:56 2008
New Revision: 692238
URL: http://svn.apache.org/viewvc?rev=692238&view=rev
Log:
Transport test kit: make SwA work with Axis clients and non Axis endpoints
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java?rev=692238&r1=692237&r2=692238&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
Thu Sep 4 13:51:56 2008
@@ -22,6 +22,7 @@
import javax.mail.internet.ContentType;
import javax.xml.namespace.QName;
+import org.apache.axiom.attachments.Attachments;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.OperationClient;
@@ -90,7 +91,12 @@
MessageContext mc = new MessageContext();
mc.setProperty(Constants.Configuration.MESSAGE_TYPE,
message.getMessageType());
mc.setEnvelope(message.getEnvelope());
- mc.setAttachmentMap(message.getAttachments());
+ Attachments attachments = message.getAttachments();
+ if (attachments != null) {
+ mc.setAttachmentMap(attachments);
+ mc.setDoingSwA(true);
+ mc.setProperty(Constants.Configuration.ENABLE_SWA, true);
+ }
channel.setupRequestMessageContext(mc);
if (setup != null) {
setup.setupRequestMessageContext(mc);
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java?rev=692238&r1=692237&r2=692238&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
Thu Sep 4 13:51:56 2008
@@ -96,8 +96,7 @@
public XMLMessage decode(ContentType contentType, byte[] message)
throws Exception {
String baseType = contentType.getBaseType();
- String charset = contentType.getParameter("charset");
- XMLStreamReader reader = StAXUtils.createXMLStreamReader(new
ByteArrayInputStream(message), charset);
+ ByteArrayInputStream in = new ByteArrayInputStream(message);
XMLMessage.Type type = null;
for (XMLMessage.Type candidate : XMLMessage.Type.values()) {
if (candidate.getContentType().getBaseType().equals(baseType))
{
@@ -108,13 +107,21 @@
if (type == null) {
throw new Exception("Unrecognized content type " + baseType);
}
- OMElement payload;
- if (type == XMLMessage.Type.POX) {
- payload = new StAXOMBuilder(reader).getDocumentElement();
+ if (type == XMLMessage.Type.SWA) {
+ Attachments attachments = new Attachments(in,
contentType.toString());
+ XMLStreamReader reader =
StAXUtils.createXMLStreamReader(attachments.getSOAPPartInputStream());
+ OMElement payload = new
StAXSOAPModelBuilder(reader).getSOAPEnvelope().getBody().getFirstElement();
+ return new XMLMessage(payload, type, attachments);
} else {
- payload = new
StAXSOAPModelBuilder(reader).getSOAPEnvelope().getBody().getFirstElement();
+ XMLStreamReader reader = StAXUtils.createXMLStreamReader(in,
contentType.getParameter("charset"));
+ OMElement payload;
+ if (type == XMLMessage.Type.POX) {
+ payload = new StAXOMBuilder(reader).getDocumentElement();
+ } else {
+ payload = new
StAXSOAPModelBuilder(reader).getSOAPEnvelope().getBody().getFirstElement();
+ }
+ return new XMLMessage(payload, type);
}
- return new XMLMessage(payload, type);
}
};
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java?rev=692238&r1=692237&r2=692238&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java
Thu Sep 4 13:51:56 2008
@@ -49,7 +49,7 @@
XMLMessage.Type type = message.getType();
AxisMessage result = new AxisMessage();
SOAPFactory factory;
- if (type == XMLMessage.Type.SOAP12) {
+ if (type == XMLMessage.Type.SOAP12 || type == XMLMessage.Type.SWA)
{
factory = OMAbstractFactory.getSOAP12Factory();
} else {
factory = OMAbstractFactory.getSOAP11Factory();
@@ -58,6 +58,9 @@
SOAPEnvelope envelope = factory.getDefaultEnvelope();
envelope.getBody().addChild(message.getPayload());
result.setEnvelope(envelope);
+ if (type == XMLMessage.Type.SWA) {
+ result.setAttachments(message.getAttachments());
+ }
return result;
}
};