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

Reply via email to