You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/08/18 10:03:14 UTC

[camel] 01/06: (chores) camel-jms: remove remaining duplicated code and consolidate pooled tests

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit d47bf1b70e9921ba656783e0e32be015cc198382
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Aug 17 16:55:21 2022 +0200

    (chores) camel-jms: remove remaining duplicated code and consolidate pooled tests
---
 .../camel/component/jms/CamelJmsTestHelper.java    | 122 ++-------------------
 .../component/jms/JmsMessageBodySetNullTest.java   |  16 +--
 .../component/jms/JmsRouteRequestReplyTest.java    |   6 +-
 .../jms/SpringJmsRoutingSlipInOutTest.java         |   2 +-
 .../issues/JmsConcurrentConsumerInOnlyTest.java    |  13 ++-
 ...etterChannelHandlerRollbackOnExceptionTest.java |  12 +-
 ...ansactedOnExceptionRollbackOnExceptionTest.java |  10 +-
 .../jms/SpringJmsRoutingSlipInOutTest.xml          |   6 +-
 .../activemq/common/ConnectionFactoryHelper.java   |  14 +++
 9 files changed, 65 insertions(+), 136 deletions(-)

diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/CamelJmsTestHelper.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/CamelJmsTestHelper.java
index 6303b0b734a..d933b317530 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/CamelJmsTestHelper.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/CamelJmsTestHelper.java
@@ -16,142 +16,36 @@
  */
 package org.apache.camel.component.jms;
 
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import javax.jms.ConnectionFactory;
 
-import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.pool.PooledConnectionFactory;
-import org.apache.camel.util.FileUtil;
-import org.apache.camel.util.URISupport;
+import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
+import org.apache.camel.test.infra.activemq.services.LegacyEmbeddedBroker;
 
 /**
  * A helper for unit testing with Apache ActiveMQ as embedded JMS broker.
  */
 public final class CamelJmsTestHelper {
 
-    private static AtomicInteger counter = new AtomicInteger();
-
     private CamelJmsTestHelper() {
     }
 
+    @Deprecated
     public static PooledConnectionFactory createPooledConnectionFactory() {
-        ConnectionFactory cf = createConnectionFactory(null, null);
+        final String brokerUrl = LegacyEmbeddedBroker.createBrokerUrl();
+        ConnectionFactory cf = ConnectionFactoryHelper.createConnectionFactory(brokerUrl, null);
+
         PooledConnectionFactory pooled = new PooledConnectionFactory();
         pooled.setConnectionFactory(cf);
         pooled.setMaxConnections(8);
         return pooled;
     }
 
-    public static PooledConnectionFactory createPooledPersistentConnectionFactory() {
-        ConnectionFactory cf = createPersistentConnectionFactory();
+    public static PooledConnectionFactory createPooledPersistentConnectionFactory(String brokerUrl) {
+        ConnectionFactory cf = ConnectionFactoryHelper.createPersistentConnectionFactory(brokerUrl);
         PooledConnectionFactory pooled = new PooledConnectionFactory();
         pooled.setConnectionFactory(cf);
         pooled.setMaxConnections(8);
         return pooled;
     }
-
-    @Deprecated
-    public static ConnectionFactory createConnectionFactory() {
-        return createConnectionFactory(null, null);
-    }
-
-    @Deprecated
-    public static ConnectionFactory createConnectionFactory(String options, Integer maximumRedeliveries) {
-        String url = createBrokerUrl(options);
-        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
-        // optimize AMQ to be as fast as possible so unit testing is quicker
-        connectionFactory.setCopyMessageOnSend(false);
-        connectionFactory.setOptimizeAcknowledge(true);
-        connectionFactory.setOptimizedMessageDispatch(true);
-        // When using asyncSend, producers will not be guaranteed to send in the order we
-        // have in the tests (which may be confusing for queues) so we need this set to false.
-        // Another way of guaranteeing order is to use persistent messages or transactions.
-        connectionFactory.setUseAsyncSend(false);
-        connectionFactory.setAlwaysSessionAsync(false);
-        if (maximumRedeliveries != null) {
-            connectionFactory.getRedeliveryPolicy().setMaximumRedeliveries(maximumRedeliveries);
-        }
-        connectionFactory.setTrustAllPackages(true);
-        return connectionFactory;
-    }
-
-    @Deprecated
-    public static ConnectionFactory createConnectionFactoryForURL(String url, Integer maximumRedeliveries) {
-        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
-        // optimize AMQ to be as fast as possible so unit testing is quicker
-        connectionFactory.setCopyMessageOnSend(false);
-        connectionFactory.setOptimizeAcknowledge(true);
-        connectionFactory.setOptimizedMessageDispatch(true);
-        // When using asyncSend, producers will not be guaranteed to send in the order we
-        // have in the tests (which may be confusing for queues) so we need this set to false.
-        // Another way of guaranteeing order is to use persistent messages or transactions.
-        connectionFactory.setUseAsyncSend(false);
-        connectionFactory.setAlwaysSessionAsync(false);
-        if (maximumRedeliveries != null) {
-            connectionFactory.getRedeliveryPolicy().setMaximumRedeliveries(maximumRedeliveries);
-        }
-        connectionFactory.setTrustAllPackages(true);
-        return connectionFactory;
-    }
-
-    public static ConnectionFactory createPersistentConnectionFactory() {
-        return createPersistentConnectionFactory(null);
-    }
-
-    public static ConnectionFactory createPersistentConnectionFactory(String options) {
-        String url = createPersistentBrokerUrl(options);
-        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
-        // optimize AMQ to be as fast as possible so unit testing is quicker
-        connectionFactory.setCopyMessageOnSend(false);
-        connectionFactory.setOptimizeAcknowledge(true);
-        connectionFactory.setOptimizedMessageDispatch(true);
-        connectionFactory.setAlwaysSessionAsync(false);
-        connectionFactory.setTrustAllPackages(true);
-        return connectionFactory;
-    }
-
-    @Deprecated
-    private static String createBrokerUrl(String options) {
-        // using a unique broker name improves testing when running the entire test suite in the same JVM
-        int id = counter.incrementAndGet();
-        Map<String, Object> map = new HashMap<>();
-        map.put("broker.useJmx", false);
-        map.put("broker.persistent", false);
-        return createUri("vm://test-broker-" + id, map, options);
-    }
-
-    public static String createPersistentBrokerUrl() {
-        return createPersistentBrokerUrl(null);
-    }
-
-    public static String createPersistentBrokerUrl(String options) {
-        // using a unique broker name improves testing when running the entire test suite in the same JVM
-        int id = counter.incrementAndGet();
-
-        // use an unique data directory in target
-        String dir = "target/activemq-data-" + id;
-        // remove dir so its empty on startup
-        FileUtil.removeDir(new File(dir));
-
-        Map<String, Object> map = new HashMap<>();
-        map.put("broker.useJmx", false);
-        map.put("broker.persistent", true);
-        map.put("broker.dataDirectory", dir);
-        return createUri("vm://test-broker-" + id, map, options);
-    }
-
-    @Deprecated
-    private static String createUri(String uri, Map<String, Object> map, String options) {
-        try {
-            map.putAll(URISupport.parseQuery(options));
-            return URISupport.appendParametersToURI(uri, map);
-        } catch (Exception e) {
-            throw new IllegalArgumentException(e);
-        }
-    }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageBodySetNullTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageBodySetNullTest.java
index e7b5bf523b8..82b072d040f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageBodySetNullTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageBodySetNullTest.java
@@ -35,7 +35,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() {
-                from("jms:queue:foo")
+                from("jms:queue:JmsMessageBodySetNullTest")
                         .to("mock:foo")
                         .process(exchange -> exchange.getIn().setBody(null))
                         .to("mock:bar");
@@ -47,7 +47,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         getMockEndpoint("mock:bar").expectedMessageCount(1);
         getMockEndpoint("mock:bar").message(0).body().isNull();
 
-        template.sendBody("jms:queue:foo", "Hello World");
+        template.sendBody("jms:queue:JmsMessageBodySetNullTest", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
@@ -57,7 +57,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() {
-                from("jms:queue:foo")
+                from("jms:queue:JmsMessageBodySetNullTest")
                         .to("mock:foo")
                         .process(exchange -> exchange.getIn().setBody(null))
                         .to("mock:bar");
@@ -71,7 +71,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         getMockEndpoint("mock:bar").message(0).body().isNull();
         getMockEndpoint("mock:bar").expectedHeaderReceived("code", 123);
 
-        template.sendBodyAndHeader("jms:queue:foo", "Hello World", "code", 123);
+        template.sendBodyAndHeader("jms:queue:JmsMessageBodySetNullTest", "Hello World", "code", 123);
 
         assertMockEndpointsSatisfied();
     }
@@ -81,7 +81,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() {
-                from("jms:queue:foo")
+                from("jms:queue:JmsMessageBodySetNullTest")
                         .to("mock:foo")
                         .setBody(simple("${null}"))
                         .to("mock:bar");
@@ -93,7 +93,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         getMockEndpoint("mock:bar").expectedMessageCount(1);
         getMockEndpoint("mock:bar").message(0).body().isNull();
 
-        template.sendBody("jms:queue:foo", "Hello World");
+        template.sendBody("jms:queue:JmsMessageBodySetNullTest", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
@@ -103,7 +103,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() {
-                from("jms:queue:foo")
+                from("jms:queue:JmsMessageBodySetNullTest")
                         .to("mock:foo")
                         .setBody(simple("${null}"))
                         .to("mock:bar");
@@ -117,7 +117,7 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
         getMockEndpoint("mock:bar").message(0).body().isNull();
         getMockEndpoint("mock:bar").expectedHeaderReceived("code", 123);
 
-        template.sendBodyAndHeader("jms:queue:foo", "Hello World", "code", 123);
+        template.sendBodyAndHeader("jms:queue:JmsMessageBodySetNullTest", "Hello World", "code", 123);
 
         assertMockEndpointsSatisfied();
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteRequestReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteRequestReplyTest.java
index 29b168066e5..1dd8ecdc779 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteRequestReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteRequestReplyTest.java
@@ -36,6 +36,7 @@ import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.Message;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.apache.camel.test.infra.activemq.services.LegacyEmbeddedBroker;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.BeforeEach;
@@ -142,9 +143,8 @@ public class JmsRouteRequestReplyTest extends CamelTestSupport {
     public static class ContextBuilderMessageID implements ContextBuilder {
         @Override
         public CamelContext buildContext(CamelContext context) {
-            //            final String brokerUrl = LegacyEmbeddedBroker.createBrokerUrl();
-            //            ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(brokerUrl, null);
-            ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
+            final String brokerUrl = LegacyEmbeddedBroker.createBrokerUrl();
+            ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(brokerUrl, null);
 
             JmsComponent jmsComponent = jmsComponentAutoAcknowledge(connectionFactory);
             jmsComponent.getConfiguration().setUseMessageIDAsCorrelationID(true);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.java
index 8143045c4c5..1a977fb07a1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.java
@@ -35,7 +35,7 @@ public class SpringJmsRoutingSlipInOutTest extends CamelSpringTestSupport {
     public void testInOutRoutingSlip() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Result-Done-B-A-Hello");
 
-        template.sendBody("activemq:queue:start", "Hello");
+        template.sendBody("activemq:queue:SpringJmsRoutingSlipInOutTest.start", "Hello");
 
         assertMockEndpointsSatisfied();
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumerInOnlyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumerInOnlyTest.java
index b73781ccd7e..23a6a0374bd 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumerInOnlyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumerInOnlyTest.java
@@ -21,8 +21,11 @@ import javax.jms.ConnectionFactory;
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.CamelJmsTestHelper;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
+import org.apache.camel.test.infra.activemq.services.ActiveMQServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
@@ -30,13 +33,15 @@ import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknow
  * Concurrent consumer with InOnly test.
  */
 public class JmsConcurrentConsumerInOnlyTest extends CamelTestSupport {
+    @RegisterExtension
+    public static ActiveMQService service = ActiveMQServiceFactory.createVMService();
 
     @Test
     public void testConcurrentConsumers() throws Exception {
         // send messages to queue before processing
         int size = 2000;
         for (int i = 0; i < size; i++) {
-            template.sendBody("activemq:foo", "Hello " + i);
+            template.sendBody("activemq:JmsConcurrentConsumerInOnlyTest", "Hello " + i);
         }
 
         // start route and process the messages
@@ -51,7 +56,8 @@ public class JmsConcurrentConsumerInOnlyTest extends CamelTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
-        ConnectionFactory connectionFactory = CamelJmsTestHelper.createPooledPersistentConnectionFactory();
+        ConnectionFactory connectionFactory
+                = CamelJmsTestHelper.createPooledPersistentConnectionFactory(service.serviceAddress());
         camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
 
         return camelContext;
@@ -61,7 +67,8 @@ public class JmsConcurrentConsumerInOnlyTest extends CamelTestSupport {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:foo?concurrentConsumers=2&maxConcurrentConsumers=5").routeId("foo").noAutoStartup()
+                from("activemq:JmsConcurrentConsumerInOnlyTest?concurrentConsumers=2&maxConcurrentConsumers=5").routeId("foo")
+                        .noAutoStartup()
                         .log("${threadName} got ${body}")
                         .delay(simple("${random(0,10)}"))
                         .to("mock:foo");
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest.java
index 0d0803bd37e..4cf145fb88b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest.java
@@ -23,15 +23,22 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Handler;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jms.CamelJmsTestHelper;
 import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
+import org.apache.camel.test.infra.activemq.services.ActiveMQServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentTransacted;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
+@Isolated
 public class JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest extends CamelTestSupport {
+    @RegisterExtension
+    public static ActiveMQService service = ActiveMQServiceFactory.createVMService();
 
     public static class BadErrorHandler {
         @Handler
@@ -79,7 +86,8 @@ public class JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest extend
         CamelContext camelContext = super.createCamelContext();
 
         // no redeliveries
-        ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory(null, 0);
+        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service, 0);
+
         JmsComponent component = jmsComponentTransacted(connectionFactory);
         camelContext.addComponent("activemq", component);
         return camelContext;
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedOnExceptionRollbackOnExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedOnExceptionRollbackOnExceptionTest.java
index ab1ff01bb05..6ab42b766f2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedOnExceptionRollbackOnExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedOnExceptionRollbackOnExceptionTest.java
@@ -23,15 +23,20 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Handler;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jms.CamelJmsTestHelper;
 import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
+import org.apache.camel.test.infra.activemq.services.ActiveMQServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentTransacted;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsTransactedOnExceptionRollbackOnExceptionTest extends CamelTestSupport {
+    @RegisterExtension
+    public static ActiveMQService service = ActiveMQServiceFactory.createVMService();
 
     public static class BadErrorHandler {
 
@@ -73,7 +78,8 @@ public class JmsTransactedOnExceptionRollbackOnExceptionTest extends CamelTestSu
         CamelContext camelContext = super.createCamelContext();
 
         // no redeliveries
-        ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory(null, 0);
+        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service, 0);
+
         JmsComponent component = jmsComponentTransacted(connectionFactory);
         camelContext.addComponent("activemq", component);
         return camelContext;
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.xml
index 38f41215b16..85bf5d63749 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsRoutingSlipInOutTest.xml
@@ -39,7 +39,7 @@
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
 
         <route>
-            <from uri="activemq:queue:start"/>
+            <from uri="activemq:queue:SpringJmsRoutingSlipInOutTest.start"/>
             <to uri="direct:start"/>
             <to uri="bean:myBean?method=doResult"/>
             <to uri="mock:result"/>
@@ -56,12 +56,12 @@
         </route>
 
         <route>
-            <from uri="activemq:queue:a"/>
+            <from uri="activemq:queue:SpringJmsRoutingSlipInOutTest.a"/>
             <to uri="bean:myBean?method=doA"/>
         </route>
 
         <route>
-            <from uri="activemq:queue:b"/>
+            <from uri="activemq:queue:SpringJmsRoutingSlipInOutTest.b"/>
             <to uri="bean:myBean?method=doB"/>
         </route>
 
diff --git a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/common/ConnectionFactoryHelper.java b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/common/ConnectionFactoryHelper.java
index ff3395287bf..ccd382ebdb5 100644
--- a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/common/ConnectionFactoryHelper.java
+++ b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/common/ConnectionFactoryHelper.java
@@ -68,4 +68,18 @@ public final class ConnectionFactoryHelper {
         connectionFactory.setTrustAllPackages(true);
         return connectionFactory;
     }
+
+    public static ConnectionFactory createPersistentConnectionFactory(String url) {
+        return createPersistentConnectionFactory(new ActiveMQConnectionFactory(url));
+
+    }
+
+    public static ConnectionFactory createPersistentConnectionFactory(ActiveMQConnectionFactory connectionFactory) {
+        connectionFactory.setCopyMessageOnSend(false);
+        connectionFactory.setOptimizeAcknowledge(true);
+        connectionFactory.setOptimizedMessageDispatch(true);
+        connectionFactory.setAlwaysSessionAsync(false);
+        connectionFactory.setTrustAllPackages(true);
+        return connectionFactory;
+    }
 }