Author: senaka
Date: Mon Nov  3 06:24:12 2008
New Revision: 710062

URL: http://svn.apache.org/viewvc?rev=710062&view=rev
Log:
Intermediate working version of JMS Map Message support.

Modified:
    
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
    
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/MapMessageInputStream.java
    
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLMapRequestResponseMessageTestCase.java

Modified: 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java?rev=710062&r1=710061&r2=710062&view=diff
==============================================================================
--- 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 (original)
+++ 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 Mon Nov  3 06:24:12 2008
@@ -15,7 +15,11 @@
 */
 package org.apache.axis2.transport.jms;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.ds.MapDataSource;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
@@ -345,16 +349,6 @@
             TextMessageBuilder textMessageBuilder;
             if (builder instanceof TextMessageBuilder) {
                 textMessageBuilder = (TextMessageBuilder)builder;
-            } else if (message instanceof MapMessage) {
-                MapMessage mapMsg = (MapMessage) message;
-                String contentType = getProperty(mapMsg, 
BaseConstants.CONTENT_TYPE);
-
-                if (contentType != null) {
-                    return new MapMessageInputStream(mapMsg, 
BuilderUtil.getCharSetEncoding(contentType));
-                } else {
-                    return new MapMessageInputStream(mapMsg, 
MessageContext.DEFAULT_CHAR_SET_ENCODING);
-                }
-
             } else {
                 textMessageBuilder = new TextMessageBuilderAdapter(builder);
             }
@@ -362,6 +356,11 @@
             OMElement documentElement
                     = textMessageBuilder.processDocument(content, contentType, 
msgContext);
             
msgContext.setEnvelope(TransportUtils.createSOAPEnvelope(documentElement));
+        } else if (message instanceof MapMessage) {
+            Map payloadMap = getMessageMapPayload(message);
+            OMFactory omBuilderFactory = OMAbstractFactory.getOMFactory();
+            OMElement payload = omBuilderFactory.createOMElement(new 
MapDataSource(payloadMap, "map", 
omBuilderFactory.createOMNamespace("http://ws.apache.org/commons/ns/payload";, 
"ns")), 
"map",omBuilderFactory.createOMNamespace("http://ws.apache.org/commons/ns/payload";,
 "ns")); 
+            msgContext.setEnvelope(TransportUtils.createSOAPEnvelope(payload));
         }
     }
 
@@ -708,7 +707,7 @@
     }
 
 
-    public Map getMessageMapPayload(Object message) {
+    public static Map getMessageMapPayload(Object message) {
 
         if (message instanceof MapMessage) {
             MapMessage mapMessage = (MapMessage) message;

Modified: 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/MapMessageInputStream.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/MapMessageInputStream.java?rev=710062&r1=710061&r2=710062&view=diff
==============================================================================
--- 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/MapMessageInputStream.java
 (original)
+++ 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/MapMessageInputStream.java
 Mon Nov  3 06:24:12 2008
@@ -57,8 +57,7 @@
         if (byteStream != null) {
             return byteStream;
         } else {
-            JMSUtils utils = new JMSUtils();
-            Map payloadMap = utils.getMessageMapPayload(message);
+            Map payloadMap = JMSUtils.getMessageMapPayload(message);
             if (payloadMap != null) {
                 QName wrapperQName = BaseConstants.DEFAULT_MAP_WRAPPER;
                 OMFactory ombuilderFactory = OMAbstractFactory.getOMFactory();

Modified: 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLMapRequestResponseMessageTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLMapRequestResponseMessageTestCase.java?rev=710062&r1=710061&r2=710062&view=diff
==============================================================================
--- 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLMapRequestResponseMessageTestCase.java
 (original)
+++ 
webservices/commons/trunk/scratch/senaka/sci-flex/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLMapRequestResponseMessageTestCase.java
 Mon Nov  3 06:24:12 2008
@@ -25,6 +25,7 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.ds.MapDataSource;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.testkit.MessageTestData;
@@ -59,6 +60,10 @@
     protected void checkResponse(XMLMessage request, XMLMessage response) 
throws Exception {
         OMElement orgElement = request.getPayload();
         OMElement element = response.getPayload();
+        assertTrue(orgElement != null);
+        assertTrue(element != null);
+        assertTrue(orgElement instanceof OMSourcedElement);
+        assertTrue(element instanceof OMSourcedElement);
         assertEquals(orgElement.getQName(), element.getQName());
         assertEquals(orgElement.toString(), element.toString());
     }


Reply via email to