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