You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/07/20 16:34:05 UTC

svn commit: r678277 - in /synapse/trunk/java/modules/transports/src: main/java/org/apache/synapse/transport/base/BaseUtils.java main/java/org/apache/synapse/transport/jms/JMSUtils.java test/java/org/apache/synapse/transport/jms/JMSListenerTest.java

Author: veithen
Date: Sun Jul 20 07:34:05 2008
New Revision: 678277

URL: http://svn.apache.org/viewvc?rev=678277&view=rev
Log:
Solved SYNAPSE-402 and added the relevant test cases.

Modified:
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java?rev=678277&r1=678276&r2=678277&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java Sun Jul 20 07:34:05 2008
@@ -33,6 +33,7 @@
 import org.apache.axiom.attachments.ByteArrayDataSource;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.impl.builder.StAXBuilder;
@@ -228,15 +229,19 @@
             try {
                 builder = new StAXOMBuilder(StAXUtils.createXMLStreamReader(in, charSetEnc));
                 builder.setOMBuilderFactory(OMAbstractFactory.getOMFactory());
-                String ns = builder.getDocumentElement().getNamespace().getNamespaceURI();
+                OMNamespace ns = builder.getDocumentElement().getNamespace();
+                if (ns != null) {
+                    String nsUri = ns.getNamespaceURI();
 
-                if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(ns)) {
-                    envelope = BaseUtils.getEnvelope(in, SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
-
-                } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(ns)) {
-                    envelope = BaseUtils.getEnvelope(in, SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
-
-                } else {
+                    if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(nsUri)) {
+                        envelope = BaseUtils.getEnvelope(in, SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+    
+                    } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(nsUri)) {
+                        envelope = BaseUtils.getEnvelope(in, SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
+    
+                    }
+                }
+                if (envelope == null) {
                     // this is POX ... mark message as REST
                     msgContext.setDoingREST(true);
                     envelope = soapFactory.getDefaultEnvelope();

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java?rev=678277&r1=678276&r2=678277&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java Sun Jul 20 07:34:05 2008
@@ -309,6 +309,7 @@
                 ByteArrayOutputStream out = new ByteArrayOutputStream();
 
                 BytesMessage byteMsg = (BytesMessage) message;
+                byteMsg.reset();
                 for (int bytesRead = byteMsg.readBytes(buffer); bytesRead != -1;
                      bytesRead = byteMsg.readBytes(buffer)) {
                     out.write(buffer, 0, bytesRead);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java?rev=678277&r1=678276&r2=678277&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java Sun Jul 20 07:34:05 2008
@@ -160,8 +160,7 @@
                 TestStrategy strategy = new TestStrategyImpl(useTopic, useContentTypeHeader);
                 if (useContentTypeHeader) {
                     addSOAPTests(strategy, suite);
-                    // TODO: POX tests don't work yet for JMS
-                    // addPOXTests(strategy, suite);
+                    addPOXTests(strategy, suite);
                     addSwATests(strategy, suite);
                 } else {
                     // If no content type header is used, SwA can't be used and the JMS transport
@@ -170,6 +169,8 @@
                             MessageContext.DEFAULT_CHAR_SET_ENCODING));
                     suite.addTest(new SOAP12TestCaseImpl(strategy, "SOAP12", testString,
                             MessageContext.DEFAULT_CHAR_SET_ENCODING));
+                    suite.addTest(new POXTestCaseImpl(strategy, "POX", testString,
+                            MessageContext.DEFAULT_CHAR_SET_ENCODING));
                 }
                 // TODO: these tests are temporarily disabled because of SYNAPSE-304
                 // addTextPlainTests(strategy, suite);