cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cschnei...@apache.org
Subject [2/5] CXF-5543 Removing jms old style config, changing tests to use soap over jms style
Date Mon, 03 Mar 2014 14:14:08 GMT
http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSMTOMImpl.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSMTOMImpl.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSMTOMImpl.java
index 6f7b79b..309e442 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSMTOMImpl.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSMTOMImpl.java
@@ -18,13 +18,13 @@
  */
 package org.apache.cxf.systest.jms;
 
+import java.io.IOException;
 import java.net.URL;
 
 import javax.activation.DataHandler;
 import javax.jws.WebService;
 import javax.xml.ws.Holder;
 
-
 import org.apache.cxf.jms_mtom.JMSMTOMPortType;
 
 @WebService(serviceName = "JMSMTOMService", 
@@ -35,7 +35,6 @@ import org.apache.cxf.jms_mtom.JMSMTOMPortType;
 public class JMSMTOMImpl implements JMSMTOMPortType {
 
     public void testDataHandler(Holder<String> name, Holder<DataHandler> attachinfo) {
-        /*
         System.out.println(name.value);
         try {
             System.out.println(attachinfo.value.getInputStream().available());
@@ -43,7 +42,6 @@ public class JMSMTOMImpl implements JMSMTOMPortType {
             e.printStackTrace();
         }
         System.out.println("TestDataHandler End");
-        */
     }
 
    

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSTestMtom.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSTestMtom.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSTestMtom.java
new file mode 100644
index 0000000..e95de26
--- /dev/null
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JMSTestMtom.java
@@ -0,0 +1,119 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.systest.jms;
+
+import java.net.URL;
+
+import javax.activation.DataHandler;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Binding;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.Holder;
+import javax.xml.ws.soap.SOAPBinding;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.helpers.IOUtils;
+import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.jms_mtom.JMSMTOMPortType;
+import org.apache.cxf.jms_mtom.JMSMTOMService;
+import org.apache.cxf.jms_mtom.JMSOutMTOMService;
+import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+@Ignore
+public class JMSTestMtom {
+    private static EmbeddedJMSBrokerLauncher broker;
+    private static Bus bus;
+    
+    @BeforeClass
+    public static void startServers() throws Exception {
+        broker = new EmbeddedJMSBrokerLauncher();
+        broker.startInProcess();
+        bus = BusFactory.getDefaultBus();
+        broker.updateWsdl(bus, "testutils/jms_test_mtom.wsdl");
+        Object mtom = new JMSMTOMImpl();
+        EndpointImpl ep = (EndpointImpl)Endpoint
+            .publish("jms:jndi:dynamicQueues/test.cxf.jmstransport.queue&amp;receiveTimeout=10000", mtom);
+        Binding binding = ep.getBinding();        
+        ((SOAPBinding)binding).setMTOMEnabled(true); 
+    }
+    
+    @AfterClass
+    public static void stopServers() throws Exception {
+        broker.stop();
+    }
+    
+    @Test
+    public void testMTOM() throws Exception {
+        QName serviceName = new QName("http://cxf.apache.org/jms_mtom", "JMSMTOMService");
+        QName portName = new QName("http://cxf.apache.org/jms_mtom", "MTOMPort");
+
+        URL wsdl = getWSDLURL("/wsdl/jms_test_mtom.wsdl");
+        JMSMTOMService service = new JMSMTOMService(wsdl, serviceName);
+
+        JMSMTOMPortType mtom = service.getPort(portName, JMSMTOMPortType.class);
+        Binding binding = ((BindingProvider)mtom).getBinding();
+        ((SOAPBinding)binding).setMTOMEnabled(true);
+
+        Holder<String> name = new Holder<String>("Sam");
+        URL fileURL = this.getClass().getResource("/org/apache/cxf/systest/jms/JMSClientServerTest.class");
+        Holder<DataHandler> handler1 = new Holder<DataHandler>();
+        handler1.value = new DataHandler(fileURL);
+        int size = handler1.value.getInputStream().available();
+        mtom.testDataHandler(name, handler1);
+        
+        byte bytes[] = IOUtils.readBytesFromStream(handler1.value.getInputStream());
+        Assert.assertEquals("The response file is not same with the sent file.", size, bytes.length);
+    }
+    
+    
+    @Test
+    public void testOutMTOM() throws Exception {
+        QName serviceName = new QName("http://cxf.apache.org/jms_mtom", "JMSMTOMService");
+        QName portName = new QName("http://cxf.apache.org/jms_mtom", "MTOMPort");
+
+        URL wsdl = getWSDLURL("/wsdl/jms_test_mtom.wsdl");
+        JMSOutMTOMService service = new JMSOutMTOMService(wsdl, serviceName);
+
+        JMSMTOMPortType mtom = service.getPort(portName, JMSMTOMPortType.class);
+        URL fileURL = this.getClass().getResource("/org/apache/cxf/systest/jms/JMSClientServerTest.class");
+        DataHandler handler1 = new DataHandler(fileURL);
+        int size = handler1.getInputStream().available();
+        DataHandler ret = mtom.testOutMtom();
+        
+        byte bytes[] = IOUtils.readBytesFromStream(ret.getInputStream());
+        Assert.assertEquals("The response file is not same with the original file.", size, bytes.length);
+    }
+    
+    public static URL getWSDLURL(String s) throws Exception {
+        URL u = JMSTestMtom.class.getResource(s);
+        if (u == null) {
+            throw new IllegalArgumentException("WSDL classpath resource not found " + s);
+        }
+        String wsdlString = u.toString().intern();
+        broker.updateWsdl(bus, wsdlString);
+        return u;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JaxWsAPITest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JaxWsAPITest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JaxWsAPITest.java
new file mode 100644
index 0000000..280eec0
--- /dev/null
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/JaxWsAPITest.java
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.systest.jms;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Endpoint;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.binding.soap.interceptor.TibcoSoapActionInterceptor;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
+import org.apache.hello_world_doc_lit.Greeter;
+import org.apache.hello_world_doc_lit.SOAPService2;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Simple test to check we can publish and call JMS services using the JAXWS API
+ */
+public class JaxWsAPITest {
+
+    private static Bus bus;
+    private static ConnectionFactoryFeature cff;
+
+    @BeforeClass
+    public static void startServer() {
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+
+        Object impleDoc = new GreeterImplDoc();
+        Endpoint.publish(null, impleDoc, cff);
+    }
+    
+    @AfterClass
+    public static void stopServers() {
+        bus.shutdown(false);
+    }
+
+    @Test
+    public void testGreeterUsingJaxWSAPI() throws Exception {
+        QName serviceName = new QName("http://apache.org/hello_world_doc_lit", "SOAPService2");
+        QName portName = new QName("http://apache.org/hello_world_doc_lit", "SoapPort2");
+        URL wsdl = getWSDLURL("/wsdl/hello_world_doc_lit.wsdl");
+        SOAPService2 service = new SOAPService2(wsdl, serviceName);
+        Greeter greeter = service.getPort(portName, Greeter.class, cff);
+
+        Client client = ClientProxy.getClient(greeter);
+        client.getEndpoint().getOutInterceptors().add(new TibcoSoapActionInterceptor());
+        greeter.greetMeOneWay("test String");
+
+        String greeting = greeter.greetMe("Chris");
+        Assert.assertEquals("Hello Chris", greeting);
+    }
+
+    public URL getWSDLURL(String s) throws Exception {
+        URL u = getClass().getResource(s);
+        if (u == null) {
+            throw new IllegalArgumentException("WSDL classpath resource not found " + s);
+        }
+        return u;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/Server.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/Server.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/Server.java
index 560189b..4e22e83 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/Server.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/Server.java
@@ -18,15 +18,10 @@
  */
 package org.apache.cxf.systest.jms;
 
-import javax.xml.ws.Binding;
 import javax.xml.ws.Endpoint;
-import javax.xml.ws.soap.SOAPBinding;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
-import org.apache.cxf.interceptor.LoggingInInterceptor;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
-import org.apache.cxf.jaxws.EndpointImpl;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
 import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
@@ -57,7 +52,6 @@ public class Server extends AbstractBusTestServerBase {
         Object i6 = new GreeterImplTwoWayJMSRuntimeCorrelationIDStaticPrefixSales();
         Object i7 = new GreeterImplTwoWayJMSAppCorrelationIDEng();
         Object i8 = new GreeterImplTwoWayJMSAppCorrelationIDSales();
-        Object mtom = new JMSMTOMImpl();
         
         Bus bus = BusFactory.getDefaultBus();
         setBus(bus);
@@ -67,28 +61,25 @@ public class Server extends AbstractBusTestServerBase {
         broker.updateWsdl(bus, "testutils/jms_test_mtom.wsdl");
         
         Endpoint.publish(null, impleDoc);
-        String address = "http://localhost:" + PORT + "/SoapContext/SoapPort";
+
+        String address = null;
         Endpoint.publish(address, implementor);
-        Endpoint.publish("http://testaddr.not.required/", impl2);
-        Endpoint.publish("http://testaddr.not.required.topic/", impl3);
-        Endpoint.publish("http://testaddr.not.required.byte/", impl4);
-        Endpoint.publish("http://testaddr.not.required.jms/", impl5);
-        Endpoint.publish("http://ignore", impl6);
-        Endpoint.publish("", impl7);
-        Endpoint.publish("", i1);
-        Endpoint.publish("", i2);
-        Endpoint.publish("", i3);
-        Endpoint.publish("", i4);
-        Endpoint.publish("", i5);
-        Endpoint.publish("", i6);
-        Endpoint.publish("", i7);
-        Endpoint.publish("", i8);
-        EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://cxf.apache.org/transports/jms", mtom);
-        Binding binding = ep.getBinding();        
-        ((SOAPBinding)binding).setMTOMEnabled(true); 
-        ep.getInInterceptors().add(new LoggingInInterceptor());
-        ep.getOutInterceptors().add(new LoggingOutInterceptor());
-        
+        Endpoint.publish(null, impl2);
+        Endpoint.publish(null, impl3);
+        Endpoint.publish(null, impl4);
+        Endpoint.publish(null, impl5);
+        Endpoint.publish(null, impl6);
+
+        Endpoint.publish(null, impl7);
+        Endpoint.publish(null, i1);
+        Endpoint.publish(null, i2);
+        Endpoint.publish(null, i3);
+        Endpoint.publish(null, i4);
+        Endpoint.publish(null, i5);
+        Endpoint.publish(null, i6);
+        Endpoint.publish(null, i7);
+        Endpoint.publish(null, i8);
+
         Object spec1 = new GreeterSpecImpl();
         String address1 = "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue2"
                          + "?jndiInitialContextFactory"

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsClientServerTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsClientServerTest.java
index 06c79a2..cb43b89 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsClientServerTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsClientServerTest.java
@@ -27,71 +27,47 @@ import java.util.concurrent.TimeUnit;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Endpoint;
 
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class HelloWorldContinuationsClientServerTest extends AbstractBusClientServerTestBase {
+public class HelloWorldContinuationsClientServerTest {
     private static final String WSDL_PATH = "org/apache/cxf/systest/jms/continuations/test.wsdl";
-    private static final String CONFIG_FILE = "org/apache/cxf/systest/jms/continuations/jms_test_config.xml";
 
-    private static EmbeddedJMSBrokerLauncher broker;
-    
-    public static class Server extends AbstractBusTestServerBase {
-        EmbeddedJMSBrokerLauncher broker;
-        Endpoint ep;
-        public Server(EmbeddedJMSBrokerLauncher b) {
-            broker = b;
-        }
-        
-        protected void run()  {
-            SpringBusFactory bf = new SpringBusFactory();
-            Bus bus = bf.createBus(CONFIG_FILE);
-            BusFactory.setDefaultBus(bus);
-            broker.updateWsdl(getBus(), WSDL_PATH);
-            Object implementor = new HelloWorldWithContinuationsJMS();        
-            String address = "jms://";
-            ep = Endpoint.publish(address, implementor);
-        }
-        public void tearDown() {
-            ep.stop();
-            ep = null;
-        }
+    private static ConnectionFactoryFeature cff;
 
-    }
+    private static Bus bus;
 
     @BeforeClass
     public static void startServers() throws Exception {
-        broker = new EmbeddedJMSBrokerLauncher();
-        System.setProperty("EmbeddedBrokerURL", broker.getBrokerURL());
-        launchServer(broker);
-        launchServer(new Server(broker));
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+        Object implementor = new HelloWorldWithContinuationsJMS();        
+        Endpoint.publish(null, implementor, cff);
     }
+    
     @AfterClass
     public static void clearProperty() {
-        System.clearProperty("EmbeddedBrokerURL");
+        
+        bus.shutdown(false);
     }
 
     @Test
     public void testHttpWrappedContinuations() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        Bus bus = bf.createBus(CONFIG_FILE);
-        BusFactory.setDefaultBus(bus);
-        
         QName serviceName = new QName("http://cxf.apache.org/systest/jaxws", "HelloContinuationService");
         
         URL wsdlURL = getClass().getClassLoader().getResource(WSDL_PATH);
         
         HelloContinuationService service = new HelloContinuationService(wsdlURL, serviceName);
-        assertNotNull(service);
-        final HelloContinuation helloPort = service.getHelloContinuationPort();
-        
+        final HelloContinuation helloPort = service.getPort(HelloContinuation.class, cff);
         ExecutorService executor = Executors.newCachedThreadPool();
         CountDownLatch startSignal = new CountDownLatch(1);
         CountDownLatch helloDoneSignal = new CountDownLatch(5);
@@ -106,8 +82,8 @@ public class HelloWorldContinuationsClientServerTest extends AbstractBusClientSe
         helloDoneSignal.await(60, TimeUnit.SECONDS);
         executor.shutdownNow();
         ((java.io.Closeable)helloPort).close();
-        assertEquals("Some invocations are still running", 0, helloDoneSignal.getCount());
-        bus.shutdown(true);
+        Assert.assertEquals("Some invocations are still running", 0, helloDoneSignal.getCount());
+
     }
         
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsThrottleTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsThrottleTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsThrottleTest.java
index bcb87b0..cc38ca9 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsThrottleTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/HelloWorldContinuationsThrottleTest.java
@@ -27,62 +27,44 @@ import java.util.concurrent.TimeUnit;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Endpoint;
 
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
-import org.apache.cxf.bus.spring.SpringBusFactory;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class HelloWorldContinuationsThrottleTest extends AbstractBusClientServerTestBase {
+public class HelloWorldContinuationsThrottleTest {
     private static final String WSDL_PATH = "org/apache/cxf/systest/jms/continuations/test.wsdl";
-    private static final String CONFIG_FILE = "org/apache/cxf/systest/jms/continuations/jms_test_config.xml";
+    private static Bus bus;
+    private static ConnectionFactoryFeature cff;
 
-    private static EmbeddedJMSBrokerLauncher broker;
-
-    
-    public static class Server extends AbstractBusTestServerBase {
-        public static final String PORT = allocatePort(Server.class);
-
-        protected void run()  {
-            SpringBusFactory bf = new SpringBusFactory();
-            Bus bus = bf.createBus(CONFIG_FILE);
-            BusFactory.setDefaultBus(bus);
-            broker.updateWsdl(bus, WSDL_PATH);
-            Object implementor = new HelloWorldWithContinuationsJMS2();        
-            String address = "http://localhost:" + PORT + "/SoapContext/SoapPort";
-            Endpoint.publish(address, implementor);
-        }
-    }
     @BeforeClass
     public static void startServers() throws Exception {
-        broker = new EmbeddedJMSBrokerLauncher();
-        System.setProperty("EmbeddedBrokerURL", broker.getBrokerURL());
-        launchServer(broker);
-        launchServer(new Server());
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+        Object implementor = new HelloWorldWithContinuationsJMS2();        
+        String address = "jms:queue:test.jmstransport.text?replyToQueueName=test.jmstransport.text.reply";
+        Endpoint.publish(address, implementor, cff);
     }
+
     @AfterClass
     public static void clearProperty() {
-        System.clearProperty("EmbeddedBrokerURL");
+        bus.shutdown(false);
     }
     
     @Test
-    public void testHttpWrappedContinuations() throws Exception {
-        SpringBusFactory bf = new SpringBusFactory();
-        Bus bus = bf.createBus(CONFIG_FILE);
-        BusFactory.setDefaultBus(bus);
-        
+    public void testThrottleContinuations() throws Exception {
         QName serviceName = new QName("http://cxf.apache.org/systest/jaxws", "HelloContinuationService");
         
         URL wsdlURL = getClass().getClassLoader().getResource(WSDL_PATH);
-        String wsdlString = wsdlURL.toString().intern();
-        broker.updateWsdl(getBus(), wsdlString);
         HelloContinuationService service = new HelloContinuationService(wsdlURL, serviceName);
-        assertNotNull(service);
-        final HelloContinuation helloPort = service.getHelloContinuationPort();
+        final HelloContinuation helloPort = service.getPort(HelloContinuation.class, cff);
         
         ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 5, 0, TimeUnit.SECONDS,
                                                              new ArrayBlockingQueue<Runnable>(10));
@@ -102,10 +84,7 @@ public class HelloWorldContinuationsThrottleTest extends AbstractBusClientServer
                 
         helloDoneSignal.await(60, TimeUnit.SECONDS);
         executor.shutdownNow();
-        assertEquals("Some invocations are still running", 0, helloDoneSignal.getCount());
-        ((java.io.Closeable)helloPort).close();
-
-        bus.shutdown(true);
+        Assert.assertEquals("Some invocations are still running", 0, helloDoneSignal.getCount());
     }
         
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/JMSContinuationsClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/JMSContinuationsClientServerTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/JMSContinuationsClientServerTest.java
index 9cb1ba1..979de0d 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/JMSContinuationsClientServerTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/JMSContinuationsClientServerTest.java
@@ -23,77 +23,53 @@ import java.net.URL;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Endpoint;
 
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
+import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.hello_world_jms.HelloWorldPortType;
 import org.apache.cxf.hello_world_jms.HelloWorldService;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
-
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class JMSContinuationsClientServerTest extends AbstractBusClientServerTestBase {
-    static final String PORT = Server.PORT;
-    static EmbeddedJMSBrokerLauncher broker;
-
-    
-    
-    public static class Server extends AbstractBusTestServerBase {
-        public static final String PORT = allocatePort(Server.class);
-
-        protected void run()  {
-            setBus(BusFactory.getDefaultBus());
-            broker.updateWsdl(getBus(),
-                "testutils/jms_test.wsdl");
-            Object implementor = new GreeterImplWithContinuationsJMS();        
-            String address = "http://localhost:" + PORT + "/SoapContext/SoapPort";
-            Endpoint.publish(address, implementor);
-        }
-    }
+public class JMSContinuationsClientServerTest {
+    private static Bus bus;
+    private static ConnectionFactoryFeature cff;
     
     @BeforeClass
     public static void startServers() throws Exception {
-        broker = new EmbeddedJMSBrokerLauncher();
-        System.setProperty("EmbeddedBrokerURL", broker.getBrokerURL());
-        launchServer(broker);
-        launchServer(new Server());
-        createStaticBus();
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+        Object implementor = new GreeterImplWithContinuationsJMS();        
+        String address = "jms:queue:test.jmstransport.text?replyToQueueName=test.jmstransport.text.reply";
+        Endpoint.publish(address, implementor, cff);
     }
+
     @AfterClass
     public static void clearProperty() {
-        System.clearProperty("EmbeddedBrokerURL");
+        bus.shutdown(false);
     }
 
     public URL getWSDLURL(String s) throws Exception {
-        return getClass().getResource(s);
-    }
-    public QName getServiceName(QName q) {
-        return q;
-    }
-    public QName getPortName(QName q) {
-        return q;
+        URL wsdl = getClass().getResource(s);
+        Assert.assertNotNull(wsdl);
+        return wsdl;
     }
-    
         
     @Test
     public void testContinuationWithTimeout() throws Exception {
-        QName serviceName = getServiceName(new QName("http://cxf.apache.org/hello_world_jms", 
-                                 "HelloWorldService"));
-        QName portName = getPortName(new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort"));
+        QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldService");
+        QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort");
         URL wsdl = getWSDLURL("/org/apache/cxf/systest/jms/continuations/jms_test.wsdl");
-        assertNotNull(wsdl);
-        String wsdlString = wsdl.toString();
-        broker.updateWsdl(getStaticBus(), wsdlString);
-
         HelloWorldService service = new HelloWorldService(wsdl, serviceName);
-        assertNotNull(service);
 
-        HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class);
-        assertEquals("Hi Fred Ruby", greeter.greetMe("Fred"));
-        
-        ((java.io.Closeable)greeter).close();
+        HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class, cff);
+        Assert.assertEquals("Hi Fred Ruby", greeter.greetMe("Fred"));
     }
         
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/ProviderJMSContinuationTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/ProviderJMSContinuationTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/ProviderJMSContinuationTest.java
index 4bc2a00..15fcf45 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/ProviderJMSContinuationTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/ProviderJMSContinuationTest.java
@@ -23,76 +23,50 @@ import java.net.URL;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Endpoint;
 
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
+import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.hello_world_jms.HelloWorldPortType;
 import org.apache.cxf.hello_world_jms.HelloWorldService;
 import org.apache.cxf.jaxws.EndpointImpl;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
-
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class ProviderJMSContinuationTest extends AbstractBusClientServerTestBase {
-    static final String PORT = Server.PORT;
-
-    static EmbeddedJMSBrokerLauncher broker;
+public class ProviderJMSContinuationTest {
     
-    public static class Server extends AbstractBusTestServerBase {
-        public static final String PORT = allocatePort(Server.class);
-
-        protected void run()  {
-            setBus(BusFactory.getDefaultBus());
-            broker.updateWsdl(getBus(),
-                "/org/apache/cxf/systest/jms/continuations/jms_test.wsdl");
+    private static Bus bus;
+    private static ConnectionFactoryFeature cff;
 
-            Object implementor = new HWSoapMessageDocProvider();        
-            String address = "http://localhost:" + PORT + "/SoapContext/SoapPort";
-            Endpoint endpoint = Endpoint.publish(address, implementor);
-            ((EndpointImpl)endpoint).getInInterceptors().add(new IncomingMessageCounterInterceptor());
-        }
-    }
-    
     @BeforeClass
     public static void startServers() throws Exception {
-        broker = new EmbeddedJMSBrokerLauncher();
-        System.setProperty("EmbeddedBrokerURL", broker.getBrokerURL());
-        launchServer(broker);
-        launchServer(new Server());
-        createStaticBus();
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+        Object implementor = new HWSoapMessageDocProvider();        
+        String address = "jms:queue:test.jmstransport.text?replyToQueueName=test.jmstransport.text.reply";
+        Endpoint endpoint = Endpoint.publish(address, implementor, cff);
+        ((EndpointImpl)endpoint).getInInterceptors().add(new IncomingMessageCounterInterceptor());
+
     }
     @AfterClass
     public static void clearProperty() {
-        System.clearProperty("EmbeddedBrokerURL");
+        bus.shutdown(false);
     }
 
     public URL getWSDLURL(String s) throws Exception {
         return getClass().getResource(s);
     }
-    public QName getServiceName(QName q) {
-        return q;
-    }
-    public QName getPortName(QName q) {
-        return q;
-    }
-    
         
     @Test
     public void testProviderContinuation() throws Exception {
-        QName serviceName = getServiceName(new QName("http://cxf.apache.org/hello_world_jms", 
-                             "HelloWorldService"));
-        QName portName = getPortName(
-                new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort"));
+        QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldService");
         URL wsdl = getWSDLURL("/org/apache/cxf/systest/jms/continuations/jms_test.wsdl");
-        assertNotNull(wsdl);
-        String wsdlString = wsdl.toString();
-        broker.updateWsdl(getStaticBus(), wsdlString);
-
         HelloWorldService service = new HelloWorldService(wsdl, serviceName);
-        assertNotNull(service);
-        HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class);
+        HelloWorldPortType greeter = service.getPort(HelloWorldPortType.class, cff);
         greeter.greetMe("ffang");
         ((java.io.Closeable)greeter).close();
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test.wsdl
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test.wsdl b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test.wsdl
index 477e406..e2a023b 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test.wsdl
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test.wsdl
@@ -17,7 +17,15 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jms="http://cxf.apache.org/transports/jms" xmlns:x1="http://cxf.apache.org/hello_world_jms/types" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://cxf.apache.org/hello_world_jms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HelloWorldService" targetNamespace="http://cxf.apache.org/hello_world_jms">
+<definitions 
+	xmlns="http://schemas.xmlsoap.org/wsdl/" 
+	xmlns:jms="http://www.w3.org/2010/soapjms/" 
+	xmlns:x1="http://cxf.apache.org/hello_world_jms/types" 
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+	xmlns:tns="http://cxf.apache.org/hello_world_jms" 
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+	name="HelloWorldService" 
+	targetNamespace="http://cxf.apache.org/hello_world_jms">
     <types>
         <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:x1="http://cxf.apache.org/hello_world_jms/types" targetNamespace="http://cxf.apache.org/hello_world_jms/types" elementFormDefault="qualified">
             <complexType name="ErrorCode">
@@ -94,7 +102,7 @@
         </operation>
     </portType>
     <binding name="HelloWorldPortBinding" type="tns:HelloWorldPortType">
-        <soap:binding style="rpc" transport="http://cxf.apache.org/transports/jms"/>
+        <soap:binding style="rpc" transport="http://www.w3.org/2010/soapjms/"/>
         <operation name="greetMe">
             <soap:operation soapAction="" style="rpc"/>
             <input name="greetMe">
@@ -137,12 +145,9 @@
     </binding>
     <service name="HelloWorldService">
         <port binding="tns:HelloWorldPortBinding" name="HelloWorldPort">
-            <jms:clientConfig clientReceiveTimeout="500000" messageTimeToLive="500000"/>
-            <jms:address jndiConnectionFactoryName="ConnectionFactory" jndiDestinationName="dynamicQueues/test.jmstransport.text">
-                <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
-                <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500"/>
-            </jms:address>
-            <jms:server durableSubscriberName="CXF_subscriber"/>
+        	<jms:jndiInitialContextFactory>org.apache.activemq.jndi.ActiveMQInitialContextFactory</jms:jndiInitialContextFactory>
+            <jms:jndiURL>tcp://localhost:61500</jms:jndiURL>
+            <soap:address location="jms:jndi:dynamicQueues/test.jmstransport.text?receiveTimeout=500000&amp;messageTimeToLive=500000"/>
         </port>
     </service>
 </definitions>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test_config.xml
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test_config.xml b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test_config.xml
index 9f2e373..11793b4 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test_config.xml
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/jms_test_config.xml
@@ -19,24 +19,6 @@
 -->
 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ct="http://cxf.apache.org/configuration/types" xmlns:jms="http://cxf.apache.org/transports/jms" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
-    <jms:conduit name="{http://cxf.apache.org/systest/jaxws}HelloContinuationPort.jms-conduit">
-        <jms:jmsConfig-ref>jmsConf1</jms:jmsConfig-ref>
-    </jms:conduit>
-    <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
+    <bean id="ConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
 		p:brokerURL="${EmbeddedBrokerURL}"/>
-    <bean id="jmsConf1" class="org.apache.cxf.transport.jms.JMSConfiguration" 
-    	p:connectionFactory-ref="jmsConnectionFactory" 
-    	p:targetDestination="test.jmstransport.text"
-     	p:replyDestination="test.jmstransport.text.reply"
-    	p:usingEndpointInfo="false"/>
-    <jms:destination name="{http://cxf.apache.org/systest/jaxws}HelloContinuationPort.jms-destination">
-        <jms:jmsConfig-ref>jmsConf2</jms:jmsConfig-ref>
-    </jms:destination>
-    <bean id="jmsConf2" class="org.apache.cxf.transport.jms.JMSConfiguration"
-     	p:connectionFactory-ref="jmsConnectionFactory" 
-     	p:targetDestination="test.jmstransport.text"
-     	p:replyDestination="test.jmstransport.text.reply"
-     	p:timeToLive="10000" 
-     	p:maxSuspendedContinuations="1" 
-     	p:usingEndpointInfo="false"/>
 </beans>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/test.wsdl
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/test.wsdl b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/test.wsdl
index 2660f83..9be3381 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/test.wsdl
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/continuations/test.wsdl
@@ -17,7 +17,14 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://cxf.apache.org/systest/jaxws" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jms="http://cxf.apache.org/transports/jms" name="HelloContinuationService" targetNamespace="http://cxf.apache.org/systest/jaxws">
+<definitions 
+	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+	xmlns:tns="http://cxf.apache.org/systest/jaxws" 
+	xmlns="http://schemas.xmlsoap.org/wsdl/" 
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+	xmlns:jms="http://www.w3.org/2010/soapjms/" 
+	name="HelloContinuationService" 
+	targetNamespace="http://cxf.apache.org/systest/jaxws">
     <message name="isRequestSuspended">
         <part name="arg0" type="xsd:string"/>
     </message>
@@ -50,7 +57,7 @@
         </operation>
     </portType>
     <binding name="HelloContinuationServiceSoapBinding" type="tns:HelloContinuation">
-        <soap:binding style="rpc" transport="http://cxf.apache.org/transports/jms"/>
+        <soap:binding style="rpc" transport="http://www.w3.org/2010/soapjms/"/>
         <operation name="isRequestSuspended">
             <soap:operation soapAction="" style="rpc"/>
             <input name="isRequestSuspended">
@@ -80,6 +87,8 @@
         </operation>
     </binding>
     <service name="HelloContinuationService">
-        <port binding="tns:HelloContinuationServiceSoapBinding" name="HelloContinuationPort"/>
+        <port binding="tns:HelloContinuationServiceSoapBinding" name="HelloContinuationPort">
+        	<soap:address location="jms:queue:test.jmstransport.text?replyToQueueName=test.jmstransport.text.reply&amp;timeToLive=10000&amp;maxSuspendedContinuations=1"/>
+        </port>
     </service>
 </definitions>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/gzipBus.xml
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/gzipBus.xml b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/gzipBus.xml
index 27d635c..9dee3c1 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/gzipBus.xml
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/gzipBus.xml
@@ -29,8 +29,4 @@
             </bean>
         </cxf:features>
     </cxf:bus>
-    <jms:conduit name="{http://apache.org/hello_world_doc_lit}SoapPort2.jms-conduit">
-        <!--must use binary message format for gzip compress-->
-        <jms:runtimePolicy messageType="binary"/>
-    </jms:conduit>
 </beans>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/multitransport/MultiTransportClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/multitransport/MultiTransportClientServerTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/multitransport/MultiTransportClientServerTest.java
new file mode 100644
index 0000000..4210411
--- /dev/null
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/multitransport/MultiTransportClientServerTest.java
@@ -0,0 +1,127 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.jms.multitransport;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Endpoint;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.pool.PooledConnectionFactory;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.testutil.common.TestUtil;
+import org.apache.cxf.transport.jms.ConnectionFactoryFeature;
+import org.apache.hello_world_doc_lit.Greeter;
+import org.apache.hello_world_doc_lit.HTTPGreeterImpl;
+import org.apache.hello_world_doc_lit.JMSGreeterImpl;
+import org.apache.hello_world_doc_lit.MultiTransportService;
+import org.apache.hello_world_doc_lit.PingMeFault;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Show that one service can have two ports with different transports
+ */
+public class MultiTransportClientServerTest {
+    private static final String PORT = TestUtil.getNewPortNumber(MultiTransportClientServerTest.class);
+    private static QName serviceName = new QName("http://apache.org/hello_world_doc_lit",
+                                                "MultiTransportService");
+
+    private static ConnectionFactoryFeature cff;
+    private static Bus bus;
+
+    @BeforeClass
+    public static void startServers() throws Exception {
+        bus = BusFactory.getDefaultBus();
+        ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
+        PooledConnectionFactory cfp = new PooledConnectionFactory(cf);
+        cff = new ConnectionFactoryFeature(cfp);
+        Object implementor = new HTTPGreeterImpl();
+        String address = "http://localhost:" + PORT + "/SOAPDocLitService/SoapPort";
+        Endpoint.publish(address, implementor);
+        implementor = new JMSGreeterImpl();
+        Endpoint.publish(null, implementor, cff);
+    }
+    
+    @AfterClass
+    public static void stopServers() throws Exception {
+        bus.shutdown(false);
+    }
+
+    @Test
+    public void testMultiTransportInOneService() throws Exception {
+
+        QName portName1 = new QName("http://apache.org/hello_world_doc_lit", "HttpPort");
+        QName portName2 = new QName("http://apache.org/hello_world_doc_lit", "JMSPort");
+        URL wsdl = getClass().getResource("/wsdl/hello_world_doc_lit.wsdl");
+        Assert.assertNotNull(wsdl);
+        MultiTransportService service = new MultiTransportService(wsdl, serviceName);
+
+        String response1 = new String("Hello Milestone-");
+        String response2 = new String("Bonjour");
+        Greeter greeter = service.getPort(portName1, Greeter.class);
+        TestUtil.updateAddressPort(greeter, PORT);
+        for (int idx = 0; idx < 5; idx++) {
+            String greeting = greeter.greetMe("Milestone-" + idx);
+            Assert.assertNotNull("no response received from service", greeting);
+            String exResponse = response1 + idx;
+            Assert.assertEquals(exResponse, greeting);
+
+            String reply = greeter.sayHi();
+            Assert.assertNotNull("no response received from service", reply);
+            Assert.assertEquals(response2, reply);
+
+            try {
+                greeter.pingMe();
+                Assert.fail("Should have thrown FaultException");
+            } catch (PingMeFault ex) {
+                Assert.assertNotNull(ex.getFaultInfo());
+            }
+
+        }
+
+        greeter = null;
+
+        greeter = service.getPort(portName2, Greeter.class, cff);
+        for (int idx = 0; idx < 5; idx++) {
+            String greeting = greeter.greetMe("Milestone-" + idx);
+            Assert.assertNotNull("no response received from service", greeting);
+            String exResponse = response1 + idx;
+            Assert.assertEquals(exResponse, greeting);
+
+            String reply = greeter.sayHi();
+            Assert.assertNotNull("no response received from service", reply);
+            Assert.assertEquals(response2, reply);
+
+            try {
+                greeter.pingMe();
+                Assert.fail("Should have thrown FaultException");
+            } catch (PingMeFault ex) {
+                Assert.assertNotNull(ex.getFaultInfo());
+            }
+
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/soap12Bus.xml
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/soap12Bus.xml b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/soap12Bus.xml
index e7f4468..ee065e2 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/soap12Bus.xml
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/soap12Bus.xml
@@ -18,24 +18,7 @@
   under the License.
 -->
 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core" xmlns:jms="http://cxf.apache.org/transports/jms" xsi:schemaLocation=" http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-    <cxf:bus>
-        <cxf:features>
-            <bean class="org.apache.cxf.feature.LoggingFeature"/>
-            <bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
-                <property name="jmsConfig">
-                    <bean class="org.apache.cxf.transport.jms.JMSConfiguration">
-                        <property name="connectionFactory">
-                            <ref bean="jmsConnectionFactory"/>
-                        </property>
-                        <property name="targetDestination">
-                            <value>routertest.SOAPService2Q.text</value>
-                        </property>
-                    </bean>
-                </property>
-            </bean>
-        </cxf:features>
-    </cxf:bus>
-    <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
+    <bean id="ConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
 	    <property name="brokerURL" value="vm://JMSClientServerSoap12Test"/>
     </bean>
 </beans>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/swa/ClientServerSwaTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/swa/ClientServerSwaTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/swa/ClientServerSwaTest.java
index 53870a3..1d650ec 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/swa/ClientServerSwaTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/swa/ClientServerSwaTest.java
@@ -26,6 +26,7 @@ import javax.mail.util.ByteArrayDataSource;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Holder;
 
+import org.apache.cxf.binding.soap.jms.interceptor.SoapJMSConstants;
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
@@ -33,7 +34,6 @@ import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
 import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
 import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
-
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -51,10 +51,10 @@ public class ClientServerSwaTest extends AbstractBusClientServerTestBase {
         protected void run() {
             try {
                 JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
-                factory.setWsdlLocation("classpath:wsdl/swa-mime.wsdl");
-                factory.setTransportId("http://cxf.apache.org/transports/jms");
+                factory.setWsdlLocation("classpath:wsdl/swa-mime-jms.wsdl");
+                factory.setTransportId(SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID);
                 factory.setServiceName(new QName("http://cxf.apache.org/swa", "SwAService"));
-                factory.setEndpointName(new QName("http://cxf.apache.org/swa", "SwAServiceHttpPort"));
+                factory.setEndpointName(new QName("http://cxf.apache.org/swa", "SwAServiceJMSPort"));
                 factory.setAddress(ADDRESS + broker.getEncodedBrokerURL());
                 factory.setServiceBean(new SwAServiceImpl());
                 factory.create().start();
@@ -80,8 +80,8 @@ public class ClientServerSwaTest extends AbstractBusClientServerTestBase {
     @Test
     public void testSwa() throws Exception {
         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
-        factory.setWsdlLocation("classpath:wsdl/swa-mime.wsdl");
-        factory.setTransportId("http://cxf.apache.org/transports/jms");
+        factory.setWsdlLocation("classpath:wsdl/swa-mime-jms.wsdl");
+        factory.setTransportId(SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID);
         factory.setServiceName(new QName("http://cxf.apache.org/swa", "SwAService"));
         factory.setEndpointName(new QName("http://cxf.apache.org/swa", "SwAServiceHttpPort"));
         factory.setAddress(ADDRESS + broker.getEncodedBrokerURL());

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/JMSTransactionClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/JMSTransactionClientServerTest.java b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/JMSTransactionClientServerTest.java
index 0db5f22..fb40aa4 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/JMSTransactionClientServerTest.java
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/JMSTransactionClientServerTest.java
@@ -25,6 +25,9 @@ import javax.jms.ConnectionFactory;
 import javax.xml.namespace.QName;
 
 import org.apache.activemq.pool.PooledConnectionFactory;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
 import org.apache.cxf.jaxws.EndpointImpl;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
@@ -45,6 +48,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
  * Test transactions based on spring transactions.
  * These will not be supported anymore in cxf >= 3
  */
+@Ignore
 public class JMSTransactionClientServerTest extends AbstractBusClientServerTestBase {
     private static final String BROKER_URI = "vm://JMSTransactionClientServerTest?broker.persistent=false";
     private static EmbeddedJMSBrokerLauncher broker;
@@ -53,25 +57,11 @@ public class JMSTransactionClientServerTest extends AbstractBusClientServerTestB
         ClassPathXmlApplicationContext context;
         EndpointImpl endpoint;
         protected void run()  {
-            // create the application context
-            context = 
-                new ClassPathXmlApplicationContext("org/apache/cxf/systest/jms/tx/jms_server_config.xml");
-            context.start();
-            
-            endpoint = new EndpointImpl(new GreeterImplWithTransaction());
-            endpoint.setAddress("jms://");
-            JMSConfiguration jmsConfig = new JMSConfiguration();
-    
-            ConnectionFactory connectionFactory
-                = context.getBean("jmsConnectionFactory", ConnectionFactory.class);
-            jmsConfig.setConnectionFactory(connectionFactory);
-            jmsConfig.setTargetDestination("greeter.queue.noaop");
-            jmsConfig.setSessionTransacted(true);
-            jmsConfig.setPubSubDomain(false);
-    
-            JMSConfigFeature jmsConfigFeature = new JMSConfigFeature();
-            jmsConfigFeature.setJmsConfig(jmsConfig);
-            endpoint.getFeatures().add(jmsConfigFeature);
+            SpringBusFactory bf = new SpringBusFactory();
+            Bus bus = bf.createBus("org/apache/cxf/systest/jms/tx/jms_server_config.xml");
+            BusFactory.setDefaultBus(bus);
+            endpoint = new EndpointImpl(bus, new GreeterImplWithTransaction());
+            endpoint.setAddress("jms:queue:greeter.queue.noaop?sessionTransacted=true");
             endpoint.publish();
         }
         public void tearDown() {

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml
index 1f0f828..68c2a2f 100644
--- a/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml
+++ b/systests/transport-jms/src/test/java/org/apache/cxf/systest/jms/tx/jms_server_config.xml
@@ -20,35 +20,14 @@
 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ct="http://cxf.apache.org/configuration/types" xmlns:jms="http://cxf.apache.org/transports/jms" xmlns:p="http://www.springframework.org/schema/p" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
     <import resource="classpath:META-INF/cxf/cxf.xml"/>
     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
-    <jaxws:endpoint xmlns:s="http://apache.org/hello_world_doc_lit" implementor="#transactionalImplementor" implementorClass="org.apache.hello_world_doc_lit.Greeter" wsdlLocation="testutils/hello_world_doc_lit.wsdl" serviceName="s:SOAPService2" endpointName="s:SoapPort2"/>
-    <jms:destination name="{http://apache.org/hello_world_doc_lit}SoapPort2.jms-destination">
-        <jms:jmsConfig-ref>jmsConf</jms:jmsConfig-ref>
-    </jms:destination>
-    <bean id="jmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
+    <jaxws:endpoint xmlns:s="http://apache.org/hello_world_doc_lit" 
+    	implementor="#implementor" 
+    	implementorClass="org.apache.hello_world_doc_lit.Greeter" 
+    	wsdlLocation="testutils/hello_world_doc_lit.wsdl" 
+    	serviceName="s:SOAPService2" 
+    	endpointName="s:SoapPort2"/>
+    <bean id="ConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
         <constructor-arg value="${EmbeddedBrokerURL}"/>
     </bean>
-    <!-- 
-    <bean id="singleConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory" destroy-method="destroy">
-        <property name="targetConnectionFactory" ref="jmsConnectionFactory"/>
-    </bean>
-    <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
-        <property name="connectionFactory" ref="singleConnectionFactory"/>
-    </bean>
-     -->
     <bean id="implementor" class="org.apache.cxf.systest.jms.tx.GreeterImplWithTransaction"/>
-    <bean id="transactionalImplementor" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
-        <!-- <property name="transactionManager" ref="jmsTransactionManager"/> -->
-        <property name="target" ref="implementor"/>
-        <property name="transactionAttributes">
-            <props>
-                <prop key="greetMe">PROPAGATION_REQUIRED</prop>
-                <!-- Commit if pingMe throw PingMeFault -->
-                <prop key="pingMe">PROPAGATION_REQUIRED,+PingMeFault</prop>
-            </props>
-        </property>
-    </bean>
-    <bean id="jmsConf" class="org.apache.cxf.transport.jms.JMSConfiguration"
-     	p:connectionFactory-ref="jmsConnectionFactory" 
-     	p:sessionTransacted="true" 
-     	p:usingEndpointInfo="true"/>
 </beans>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transport-jms/src/test/resources/swa-mime_jms.wsdl
----------------------------------------------------------------------
diff --git a/systests/transport-jms/src/test/resources/swa-mime_jms.wsdl b/systests/transport-jms/src/test/resources/swa-mime_jms.wsdl
new file mode 100644
index 0000000..5782249
--- /dev/null
+++ b/systests/transport-jms/src/test/resources/swa-mime_jms.wsdl
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+  
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://cxf.apache.org/swa" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:types="http://cxf.apache.org/swa/types" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" name="SwAService" targetNamespace="http://cxf.apache.org/swa">
+    <wsdl:types>
+        <xsd:schema xmlns:xmime="http://www.w3.org/2005/05/xmlmime" targetNamespace="http://cxf.apache.org/swa/types">
+            <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd"/>
+            <xsd:element name="DataStruct">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="DataRef" type="wsi:swaRef" xmime:expectedContentTypes="application/octet-stream"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="text" type="xsd:string"/>
+            <xsd:element name="headerText" type="xsd:string"/>
+            <xsd:element name="VoidRequest" type="types:VoidRequest"/>
+            <xsd:complexType name="VoidRequest">
+                <xsd:sequence/>
+            </xsd:complexType>
+            <xsd:element name="OutputResponseAll" type="types:OutputResponseAll"/>
+            <xsd:complexType name="OutputResponseAll">
+                <xsd:sequence>
+                    <xsd:element name="result" type="xsd:string"/>
+                    <xsd:element name="reason" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:complexType>
+        </xsd:schema>
+        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd">
+            <xsd:simpleType name="swaRef">
+                <xsd:restriction base="xsd:anyURI"/>
+            </xsd:simpleType>
+        </xsd:schema>
+    </wsdl:types>
+    <wsdl:message name="echoDataRefRequest">
+        <wsdl:part name="data" element="types:DataStruct"/>
+    </wsdl:message>
+    <wsdl:message name="echoDataRefResponse">
+        <wsdl:part name="data" element="types:DataStruct"/>
+    </wsdl:message>
+    <wsdl:message name="echoDataRequest">
+        <wsdl:part name="text" element="types:text"/>
+        <wsdl:part name="data" type="xsd:base64Binary"/>
+    </wsdl:message>
+    <wsdl:message name="echoDataResponse">
+        <wsdl:part name="text" element="types:text"/>
+        <wsdl:part name="data" type="xsd:base64Binary"/>
+    </wsdl:message>
+    <wsdl:message name="echoDataWithHeaderRequest">
+        <wsdl:part name="text" element="types:headerText"/>
+        <wsdl:part name="data" type="xsd:base64Binary"/>
+        <wsdl:part name="headerText" element="types:headerText"/>
+    </wsdl:message>
+    <wsdl:message name="echoDataWithHeaderResponse">
+        <wsdl:part name="text" element="types:headerText"/>
+        <wsdl:part name="data" type="xsd:base64Binary"/>
+        <wsdl:part name="headerText" element="types:headerText"/>
+    </wsdl:message>
+    <wsdl:message name="headerMessage">
+        <wsdl:part name="text" element="types:headerText"/>
+    </wsdl:message>
+    <wsdl:message name="messageInputAllAttachmentTypes">
+        <wsdl:part name="request" element="types:VoidRequest"/>
+        <wsdl:part name="attach1" type="xsd:string"/>
+        <wsdl:part name="attach2" type="xsd:string"/>
+        <wsdl:part name="attach3" type="xsd:string"/>
+        <wsdl:part name="attach4" type="xsd:base64Binary"/>
+        <wsdl:part name="attach5" type="xsd:base64Binary"/>
+    </wsdl:message>
+    <wsdl:message name="messageOutputAllAttachmentTypes">
+        <wsdl:part name="response" element="types:OutputResponseAll"/>
+        <wsdl:part name="attach1" type="xsd:string"/>
+        <wsdl:part name="attach2" type="xsd:string"/>
+        <wsdl:part name="attach3" type="xsd:string"/>
+        <wsdl:part name="attach4" type="xsd:base64Binary"/>
+        <wsdl:part name="attach5" type="xsd:base64Binary"/>
+    </wsdl:message>
+    <wsdl:portType name="SwAServiceInterface">
+        <wsdl:operation name="echoDataRef">
+            <wsdl:input message="tns:echoDataRefRequest"/>
+            <wsdl:output message="tns:echoDataRefResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="echoData">
+            <wsdl:input message="tns:echoDataRequest"/>
+            <wsdl:output message="tns:echoDataResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="echoDataWithHeader">
+            <wsdl:input message="tns:echoDataWithHeaderRequest"/>
+            <wsdl:output message="tns:echoDataWithHeaderResponse"/>
+        </wsdl:operation>
+        <wsdl:operation name="echoAllAttachmentTypes">
+            <wsdl:input message="tns:messageInputAllAttachmentTypes"/>
+            <wsdl:output message="tns:messageOutputAllAttachmentTypes"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="SwAServiceBinding" type="tns:SwAServiceInterface">
+        <soap:binding style="document" transport="http://www.w3.org/2010/soapjms/"/>
+        <wsdl:operation name="echoDataRef">
+            <soap:operation soapAction="" style="literal"/>
+            <wsdl:input>
+                <soap:body parts="data" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="data" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoData">
+            <soap:operation soapAction="" style="literal"/>
+            <wsdl:input>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="text" use="literal"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="data" type="application/octet-stream"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="text" use="literal"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="data" type="application/octet-stream"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoDataWithHeader">
+            <soap:operation soapAction="" style="literal"/>
+            <wsdl:input>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="text" use="literal"/>
+                        <soap:header use="literal" part="headerText" message="tns:echoDataWithHeaderRequest"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="data" type="application/octet-stream"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="text" use="literal"/>
+                        <soap:header use="literal" part="headerText" message="tns:echoDataWithHeaderResponse"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="data" type="application/octet-stream"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoAllAttachmentTypes">
+            <soap:operation/>
+            <wsdl:input>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="request" use="literal"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach1" type="text/plain"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach2" type="text/html"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach3" type="text/xml"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach4" type="image/jpeg"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach5" type="image/jpeg"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:multipartRelated>
+                    <mime:part>
+                        <soap:body parts="response" use="literal"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach1" type="text/plain"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach2" type="text/html"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach3" type="text/xml"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach4" type="image/jpeg"/>
+                    </mime:part>
+                    <mime:part>
+                        <mime:content part="attach5" type="image/jpeg"/>
+                    </mime:part>
+                </mime:multipartRelated>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="SwAService">
+        <wsdl:port name="SwAServiceJMSPort" binding="tns:SwAServiceBinding">
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transports/src/test/java/org/apache/cxf/systest/http/auth/DigestAuthTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/http/auth/DigestAuthTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/http/auth/DigestAuthTest.java
index fb5823d..f234f36 100644
--- a/systests/transports/src/test/java/org/apache/cxf/systest/http/auth/DigestAuthTest.java
+++ b/systests/transports/src/test/java/org/apache/cxf/systest/http/auth/DigestAuthTest.java
@@ -28,11 +28,11 @@ import org.apache.cxf.configuration.security.AuthorizationPolicy;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.TestUtil;
 import org.apache.cxf.transport.http.HTTPConduit;
 import org.apache.cxf.transport.http.HTTPException;
 import org.apache.hello_world.Greeter;
 import org.apache.hello_world.services.SOAPService;
-
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -65,7 +65,7 @@ public class DigestAuthTest extends AbstractBusClientServerTestBase {
         Greeter mortimer = service.getPort(mortimerQ, Greeter.class);
         assertNotNull("Port is null", mortimer);
         
-        setAddress(mortimer, "http://localhost:" + PORT + "/digestauth/greeter");
+        TestUtil.setAddress(mortimer, "http://localhost:" + PORT + "/digestauth/greeter");
         
         Client client = ClientProxy.getClient(mortimer);
         
@@ -94,7 +94,7 @@ public class DigestAuthTest extends AbstractBusClientServerTestBase {
         Greeter mortimer = service.getPort(mortimerQ, Greeter.class);
         assertNotNull("Port is null", mortimer);
         
-        setAddress(mortimer, "http://localhost:" + PORT + "/digestauth/greeter");
+        TestUtil.setAddress(mortimer, "http://localhost:" + PORT + "/digestauth/greeter");
 
         try {
             String answer = mortimer.sayHi();

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/transports/src/test/java/org/apache/cxf/systest/multitransport/MultiTransportClientServerTest.java
----------------------------------------------------------------------
diff --git a/systests/transports/src/test/java/org/apache/cxf/systest/multitransport/MultiTransportClientServerTest.java b/systests/transports/src/test/java/org/apache/cxf/systest/multitransport/MultiTransportClientServerTest.java
deleted file mode 100644
index ff48b94..0000000
--- a/systests/transports/src/test/java/org/apache/cxf/systest/multitransport/MultiTransportClientServerTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.systest.multitransport;
-
-import java.lang.reflect.UndeclaredThrowableException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import javax.wsdl.Definition;
-import javax.xml.namespace.QName;
-import javax.xml.ws.Endpoint;
-
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
-import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
-import org.apache.cxf.testutil.common.EmbeddedJMSBrokerLauncher;
-import org.apache.hello_world_doc_lit.Greeter;
-import org.apache.hello_world_doc_lit.HTTPGreeterImpl;
-import org.apache.hello_world_doc_lit.JMSGreeterImpl;
-import org.apache.hello_world_doc_lit.MultiTransportService;
-import org.apache.hello_world_doc_lit.PingMeFault;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class MultiTransportClientServerTest extends AbstractBusClientServerTestBase {
-    static final String JMS_PORT = EmbeddedJMSBrokerLauncher.PORT;
-    static final String PORT = allocatePort(MyServer.class);
-    static final Logger LOG = LogUtils.getLogger(MultiTransportClientServerTest.class);
-    private final QName serviceName = new QName(
-                                      "http://apache.org/hello_world_doc_lit",
-                                                "MultiTransportService");
-
-    public static class MyServer extends AbstractBusTestServerBase {
-        Definition def;
-        Endpoint ep1;
-        Endpoint ep2;
-        protected void run() {
-            Object implementor = new HTTPGreeterImpl();
-            String address = "http://localhost:" + PORT + "/SOAPDocLitService/SoapPort";
-            ep1 = Endpoint.publish(address, implementor);
-            EmbeddedJMSBrokerLauncher.updateWsdlExtensors(getBus(),
-                                                          "testutils/hello_world_doc_lit.wsdl");
-            implementor = new JMSGreeterImpl();
-            ep2 = Endpoint.publish(null, implementor);
-        }
-        public void tearDown() {
-            if (ep1 != null) {
-                ep1.stop();
-            }
-            if (ep2 != null) {
-                ep2.stop();
-            }
-        }
-
-        public static void main(String[] args) {
-            try {
-                MyServer s = new MyServer();
-                s.start();
-            } catch (Exception ex) {
-                ex.printStackTrace();
-                System.exit(-1);
-            } finally {
-                LOG.info("done!");
-            }
-        }
-    }
-
-    @BeforeClass
-    public static void startServers() throws Exception {
-        Map<String, String> props = new HashMap<String, String>();                
-        if (System.getProperty("org.apache.activemq.default.directory.prefix") != null) {
-            props.put("org.apache.activemq.default.directory.prefix", 
-                      System.getProperty("org.apache.activemq.default.directory.prefix"));
-        }
-        //props.put("java.util.logging.config.file", 
-        //          System.getProperty("java.util.logging.config.file"));
-        
-        assertTrue("server did not launch correctly", 
-                   launchServer(EmbeddedJMSBrokerLauncher.class, props, null));
-
-        assertTrue("server did not launch correctly", launchServer(MyServer.class, true));
-        createStaticBus();
-    }
-    
-    // the purpose of this test shows how one service include two ports with different
-    // transport work
-    @Test
-    public void testMultiTransportInOneService() throws Exception {
-        
-        QName portName1 = new QName("http://apache.org/hello_world_doc_lit", "HttpPort");
-        QName portName2 = new QName("http://apache.org/hello_world_doc_lit", "JMSPort");
-        URL wsdl = getClass().getResource("/wsdl/hello_world_doc_lit.wsdl");
-        assertNotNull(wsdl);
-        String wsdlString = wsdl.toString();
-        MultiTransportService service = new MultiTransportService(wsdl, serviceName);
-        assertNotNull(service);
-        EmbeddedJMSBrokerLauncher.updateWsdlExtensors(getBus(), wsdlString);
-        
-        
-        String response1 = new String("Hello Milestone-");
-        String response2 = new String("Bonjour");
-        try {
-            Greeter greeter = service.getPort(portName1, Greeter.class);
-            updateAddressPort(greeter, PORT);
-            for (int idx = 0; idx < 5; idx++) {
-                String greeting = greeter.greetMe("Milestone-" + idx);
-                assertNotNull("no response received from service", greeting);
-                String exResponse = response1 + idx;
-                assertEquals(exResponse, greeting);
-
-                String reply = greeter.sayHi();
-                assertNotNull("no response received from service", reply);
-                assertEquals(response2, reply);
-                
-                try {
-                    greeter.pingMe();
-                    fail("Should have thrown FaultException");
-                } catch (PingMeFault ex) {
-                    assertNotNull(ex.getFaultInfo());
-                }                
-              
-            }
-            
-            greeter = null;
-            
-            greeter = service.getPort(portName2, Greeter.class);
-            for (int idx = 0; idx < 5; idx++) {
-                String greeting = greeter.greetMe("Milestone-" + idx);
-                assertNotNull("no response received from service", greeting);
-                String exResponse = response1 + idx;
-                assertEquals(exResponse, greeting);
-
-                String reply = greeter.sayHi();
-                assertNotNull("no response received from service", reply);
-                assertEquals(response2, reply);
-                
-                try {
-                    greeter.pingMe();
-                    fail("Should have thrown FaultException");
-                } catch (PingMeFault ex) {
-                    assertNotNull(ex.getFaultInfo());
-                }                
-              
-            }
-        } catch (UndeclaredThrowableException ex) {
-            throw (Exception)ex.getCause();
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/uncategorized/pom.xml
----------------------------------------------------------------------
diff --git a/systests/uncategorized/pom.xml b/systests/uncategorized/pom.xml
index 099df36..8aab8ba 100644
--- a/systests/uncategorized/pom.xml
+++ b/systests/uncategorized/pom.xml
@@ -259,6 +259,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-pool</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
             <artifactId>activemq-kahadb-store</artifactId>
             <scope>test</scope>
         </dependency>

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/uncategorized/src/test/java/org/apache/cxf/systest/coloc/cxf.xml
----------------------------------------------------------------------
diff --git a/systests/uncategorized/src/test/java/org/apache/cxf/systest/coloc/cxf.xml b/systests/uncategorized/src/test/java/org/apache/cxf/systest/coloc/cxf.xml
index 45a8233..6febb3b 100644
--- a/systests/uncategorized/src/test/java/org/apache/cxf/systest/coloc/cxf.xml
+++ b/systests/uncategorized/src/test/java/org/apache/cxf/systest/coloc/cxf.xml
@@ -17,29 +17,18 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://cxf.apache.org/transports/http/configuration" xmlns:jms="http://cxf.apache.org/transports/jms" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation="        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd        http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-    <!--JMS Client Receive Timeout-->
-    <!--hello_world.wsdl-->
-    <jms:conduit name="{http://apache.org/hello_world_soap_http}SoapPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
-    <jms:conduit name="{http://apache.org/hello_world_soap_http}XMLPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
-    <!--header_rpc_lit.wsdl-->
-    <jms:conduit name="{http://apache.org/headers/rpc_lit}SoapPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
-    <jms:conduit name="{http://apache.org/headers/rpc_lit}XMLPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
-    <!--soap_header.wsdl-->
-    <jms:conduit name="{http://apache.org/headers}SoapPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
-    <jms:conduit name="{http://apache.org/headers}XMLPortJms.jms-conduit" abstract="true">
-        <jms:clientConfig clientReceiveTimeout="90000"/>
-    </jms:conduit>
+<beans 
+	xmlns="http://www.springframework.org/schema/beans" 
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xmlns:http="http://cxf.apache.org/transports/http/configuration" 
+	xmlns:jms="http://cxf.apache.org/transports/jms" 
+	xmlns:jaxws="http://cxf.apache.org/jaxws" 
+	xmlns:cxf="http://cxf.apache.org/core" 
+	xsi:schemaLocation="
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd  http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+		http://cxf.apache.org/transports/jms  http://cxf.apache.org/schemas/configuration/jms.xsd
+		http://cxf.apache.org/transports/http/configuration  http://cxf.apache.org/schemas/configuration/http-conf.xsd
+		http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!--HTTP Connection Receive Timeout -->
     <!--Enable to avoid Connection Timeout during debugging-->
     <!--

http://git-wip-us.apache.org/repos/asf/cxf/blob/40b89868/systests/uncategorized/src/test/java/org/apache/cxf/systest/factory_pattern/NumberFactoryImpl.java
----------------------------------------------------------------------
diff --git a/systests/uncategorized/src/test/java/org/apache/cxf/systest/factory_pattern/NumberFactoryImpl.java b/systests/uncategorized/src/test/java/org/apache/cxf/systest/factory_pattern/NumberFactoryImpl.java
index 0fcbc28..d218440 100644
--- a/systests/uncategorized/src/test/java/org/apache/cxf/systest/factory_pattern/NumberFactoryImpl.java
+++ b/systests/uncategorized/src/test/java/org/apache/cxf/systest/factory_pattern/NumberFactoryImpl.java
@@ -98,6 +98,7 @@ public class NumberFactoryImpl implements NumberFactory {
         EmbeddedJMSBrokerLauncher.updateWsdlExtensors(bus, wsdlLocation);        
         ep = new EndpointImpl(bus, servant, bindingId, wsdlLocation);
         ep.setEndpointName(new QName(NUMBER_SERVICE_QNAME.getNamespaceURI(), "NumberPortJMS"));
+        ep.setAddress("jms:jndi:dynamicQueues/test.cxf.factory_pattern.queue");
         ep.publish();
         ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
         ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());


Mime
View raw message