Hi all, Sorry that I forgot to mention in the commit message; this commit has introduced Map Message support that is NOT USING STREAMS (I accept the fact that this again might not be 100%) as suggested by Andreas. However, it is still partial and I still have a lot of refactoring to do before I can say this is final. Meanwhile I'd like to know, especially from Andreas whether this meets the requirements expected.
Thanks, Senaka On Mon, Nov 3, 2008 at 7:54 PM, <[EMAIL PROTECTED]> wrote: > 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()); > } > > >
