You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2010/09/15 11:56:42 UTC

svn commit: r997246 - in /cxf/trunk: rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/ rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ systests/transports/s...

Author: ningjiang
Date: Wed Sep 15 09:56:42 2010
New Revision: 997246

URL: http://svn.apache.org/viewvc?rev=997246&view=rev
Log:
CXF-2994 SoapBindingFactory should not break the backward compatible of the CXF JMSTransport configuration

Modified:
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSConstants.java
    cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/jms/GreeterSpecImpl.java

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?rev=997246&r1=997245&r2=997246&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Wed Sep 15 09:56:42 2010
@@ -59,6 +59,7 @@ import org.apache.cxf.binding.soap.inter
 import org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor;
 import org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor;
 import org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor;
+import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSConstants;
 import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSInInterceptor;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.binding.soap.model.SoapBodyInfo;
@@ -145,13 +146,9 @@ public class SoapBindingFactory extends 
 
         info.setName(config.getBindingName(si));
         info.setStyle(config.getStyle());
-        if ("http://cxf.apache.org/transports/jms".equals(config.getTransportURI())) {
-            info.setTransportURI("http://www.w3.org/2010/soapjms/");
-            config.setTransportURI("http://www.w3.org/2010/soapjms/");
-        } else {
-            info.setTransportURI(config.getTransportURI());
-        }
-
+       
+        info.setTransportURI(config.getTransportURI());
+        
         if (config.isMtomEnabled()) {
             info.setProperty(Message.MTOM_ENABLED, Boolean.TRUE);
         }
@@ -380,7 +377,7 @@ public class SoapBindingFactory extends 
             }
             
             //jms
-            if (sbi.getTransportURI().equals("http://www.w3.org/2010/soapjms/")) {
+            if (sbi.getTransportURI().equals(SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID)) {
                 sb.getInInterceptors().add(new SoapJMSInInterceptor());
             }
         } else {

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java?rev=997246&r1=997245&r2=997246&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java Wed Sep 15 09:56:42 2010
@@ -36,6 +36,7 @@ import javax.wsdl.factory.WSDLFactory;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
+import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSConstants;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.binding.soap.tcp.SoapTcpDestination;
 import org.apache.cxf.binding.soap.tcp.TCPConduit;
@@ -77,7 +78,7 @@ public class SoapTransportFactory extend
         return Collections.singleton("soap.tcp");
     }
     public String mapTransportURI(String s, String address) {
-        if ("http://www.w3.org/2010/soapjms/".equals(s)
+        if (SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID.equals(s)
             || (address != null && address.startsWith("jms"))) {
             s = "http://cxf.apache.org/transports/jms";
         } else if (SOAP_11_HTTP_BINDING.equals(s)
@@ -173,7 +174,7 @@ public class SoapTransportFactory extend
                     info.addExtensor(sa);
                     info.setAddress(sa.getLocationURI());
                     if (isJMSSpecAddress(sa.getLocationURI())) {
-                        info.setTransportId("http://www.w3.org/2010/soapjms/");
+                        info.setTransportId(SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID);
                     }
                 } else {
                     info.addExtensor(extensor);

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSConstants.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSConstants.java?rev=997246&r1=997245&r2=997246&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSConstants.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSConstants.java Wed Sep 15 09:56:42 2010
@@ -48,8 +48,7 @@ public final class SoapJMSConstants {
     public static final String CONTENTTYPE_FIELD = SOAP_JMS_PREFIX + CONTENTTYPE_PARAMETER_NAME;
     public static final String ISFAULT_FIELD = SOAP_JMS_PREFIX + ISFAULT_PARAMETER_NAME;
 
-    public static final String SOAP_JMS_SPECIFICIATION_TRANSPORTID = "http://www.w3.org/2008/07/"
-                                                                     + "soap/bindings/JMS/";
+    public static final String SOAP_JMS_SPECIFICIATION_TRANSPORTID = "http://www.w3.org/2010/soapjms/";
     public static final String SOAP_JMS_NAMESPACE = SOAP_JMS_SPECIFICIATION_TRANSPORTID;
     
     // fault codes

Modified: cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java?rev=997246&r1=997245&r2=997246&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java (original)
+++ cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.java Wed Sep 15 09:56:42 2010
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.apache.cxf.BusException;
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.soap.SoapBindingConfiguration;
+import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSConstants;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
@@ -239,6 +240,13 @@ public abstract class AbstractWSDLBasedE
     protected EndpointInfo createEndpointInfo() throws BusException {
         // Get the Service from the ServiceFactory if specified
         Service service = serviceFactory.getService();
+        // setup the transport ID for the soap over jms if there is only address information
+        if (transportId == null && getAddress() != null 
+            && getAddress().startsWith("jms:") && !"jms://".equals(getAddress())) {
+            // Set the transportId to be soap over jms transport
+            transportId = SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID;
+        }
+        
         // SOAP nonsense
         BindingInfo bindingInfo = createBindingInfo();
         if (bindingInfo instanceof SoapBindingInfo

Modified: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/jms/GreeterSpecImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/jms/GreeterSpecImpl.java?rev=997246&r1=997245&r2=997246&view=diff
==============================================================================
--- cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/jms/GreeterSpecImpl.java (original)
+++ cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/jms/GreeterSpecImpl.java Wed Sep 15 09:56:42 2010
@@ -23,8 +23,7 @@ import org.apache.cxf.jms_greeter.JMSGre
 @javax.jws.WebService(portName = "GreeterPort", 
                       serviceName = "JMSGreeterService",
                       targetNamespace = "http://cxf.apache.org/jms_greeter",
-                      endpointInterface = "org.apache.cxf.jms_greeter.JMSGreeterPortType",
-                      wsdlLocation = "testutils/jms_spec_test.wsdl")
+                      endpointInterface = "org.apache.cxf.jms_greeter.JMSGreeterPortType")
 public class GreeterSpecImpl implements JMSGreeterPortType {
 
     public String greetMe(String me) {