Hi Senaka, Some quick comments: * I sent some comments in the other thread (http://markmail.org/message/vcnfattmwvt4jd7i), but I didn't see an answer yet. Maybe you missed the post? I think we should first concentrate on that part of the code. * MapMessageInputStream is no longer used; is that correct? If yes, please remove it. * Can you try to reduce the amount of duplicate code related to MapMessages in JMSSender? That would make it more readable.
Cheers, Andreas On Mon, Nov 3, 2008 at 15:45, Senaka Fernando <[EMAIL PROTECTED]> wrote: > 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()); >> } >> >> >> >
