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;
         }
     };


Reply via email to