You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2021/03/12 20:14:37 UTC

[camel] 08/08: Make camel-jms tests run concurrently

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

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

commit a8381e5ca4d9271d0fc35975533da270265370cb
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Mar 12 20:49:26 2021 +0100

    Make camel-jms tests run concurrently
---
 components/camel-jms/pom.xml                       | 12 ++--
 .../camel/component/jms/CamelJmsTestHelper.java    | 65 ++++++++++++++++------
 .../jms/JmsSpringLoadBalanceFailoverTest.xml       |  4 +-
 .../jms/SpringJmsRoutingSlipInOutTest.xml          |  4 +-
 .../camel/component/jms/SpringJmsSelectorTest.xml  |  4 +-
 .../component/jms/SpringJmsXPathHeaderTest.xml     |  4 +-
 .../org/apache/camel/component/jms/bind/spring.xml |  4 +-
 .../issues/JmsInOutWithSpringRestartIssueTest.xml  |  4 +-
 .../jms/issues/JmsResequencerTest-context.xml      |  4 +-
 ...tionErrorHandlerRedeliveryDelayTest-context.xml |  4 +-
 .../component/jms/jmsHeaderFilteringWithSpring.xml |  4 +-
 .../camel/component/jms/jmsRouteUsingSpring.xml    |  4 +-
 .../jms/jmsRouteUsingSpringAndJmsName.xml          |  4 +-
 .../jms/jmsRouteUsingSpringJMSTemplate.xml         |  4 +-
 .../jms/jmsRouteUsingSpringWithAutoWire.xml        |  4 +-
 .../org/apache/camel/component/jms/spring.xml      |  4 +-
 .../tuning/PerformanceRoutePojoTest-context.xml    |  4 +-
 .../jms/tx/ActiveMQWithoutTransactionManager.xml   |  7 ++-
 .../jms/tx/JMSTransactionErrorHandlerTest.xml      |  4 +-
 .../JMSTransactionIsTransactedRedeliveredTest.xml  |  6 +-
 .../jms/tx/JMSTransactionRollbackTest.xml          |  4 +-
 .../tx/JMSTransactionThrottlingRoutePolicyTest.xml |  4 +-
 .../jms/tx/JMSTransactionalClientTest.xml          |  4 +-
 .../tx/JMSTransactionalClientWithRollbackTest.xml  |  4 +-
 .../component/jms/tx/JMXTXUseOriginalBodyTest.xml  |  4 +-
 ...JMXTXUseOriginalBodyWithDLCErrorHandlerTest.xml |  4 +-
 .../JMXTXUseOriginalBodyWithTXErrorHandlerTest.xml |  4 +-
 .../component/jms/tx/JmsToJmsTransactedTest.xml    |  4 +-
 .../component/jms/tx/JmsTransacted-context.xml     |  4 +-
 .../component/jms/tx/RouteIdTransactedTest.xml     |  4 +-
 .../jms/tx/TransactedAsyncUsingThreadsTest.xml     |  4 +-
 ...nsactionErrorHandlerBuilderAsSpringBeanTest.xml |  4 +-
 ...sactionErrorHandlerCustomerSpringParserTest.xml |  4 +-
 .../tx/TransactionInterceptSendToEndpointTest.xml  |  4 +-
 .../jms/tx/TransactionMinimalConfigurationTest.xml |  4 +-
 .../camel/component/jms/jmsRouteUsingSpring.xml    |  4 +-
 36 files changed, 157 insertions(+), 61 deletions(-)

diff --git a/components/camel-jms/pom.xml b/components/camel-jms/pom.xml
index 214de35..8ae2dea 100644
--- a/components/camel-jms/pom.xml
+++ b/components/camel-jms/pom.xml
@@ -35,6 +35,10 @@
     <properties>
         <camel.osgi.export.pkg>org.apache.camel.component.jms*</camel.osgi.export.pkg>
         <camel.osgi.import.additional>javax.jms;version="[1.1,3)"</camel.osgi.import.additional>
+
+        <camel.surefire.forkCount>4</camel.surefire.forkCount>
+        <camel.surefire.forkTimeout>6000</camel.surefire.forkTimeout>
+        <camel.surefire.parallel>false</camel.surefire.parallel>
     </properties>
 
     <dependencies>
@@ -161,14 +165,6 @@
     <build>
         <plugins>
             <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <forkedProcessTimeoutInSeconds>6000</forkedProcessTimeoutInSeconds>
-                </configuration>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
                 <configuration>
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 f849f9b..04264f3 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
@@ -17,6 +17,8 @@
 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;
@@ -24,6 +26,7 @@ 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;
 
 /**
  * A helper for unit testing with Apache ActiveMQ as embedded JMS broker.
@@ -56,12 +59,7 @@ public final class CamelJmsTestHelper {
     }
 
     public static ConnectionFactory createConnectionFactory(String options, Integer maximumRedeliveries) {
-        // using a unique broker name improves testing when running the entire test suite in the same JVM
-        int id = counter.incrementAndGet();
-        String url = "vm://test-broker-" + id + "?broker.persistent=false&broker.useJmx=false";
-        if (options != null) {
-            url = url + "&" + options;
-        }
+        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);
@@ -84,26 +82,57 @@ public final class CamelJmsTestHelper {
     }
 
     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;
+    }
+
+    public static String createBrokerUrl() {
+        return createBrokerUrl(null);
+    }
+
+    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));
 
-        String url = "vm://test-broker-" + id + "?broker.persistent=true&broker.useJmx=false&broker.dataDirectory=" + dir;
-        if (options != null) {
-            url = url + "&" + options;
+        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);
+    }
+
+    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);
         }
-        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;
     }
+
 }
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/JmsSpringLoadBalanceFailoverTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/JmsSpringLoadBalanceFailoverTest.xml
index d49ce44..9b1e46b 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/JmsSpringLoadBalanceFailoverTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/JmsSpringLoadBalanceFailoverTest.xml
@@ -27,7 +27,9 @@
     <bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+                <property name="brokerURL">
+                    <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+                </property>
                 <!-- need to trust when serializing java objects over JMS -->
                 <property name="trustAllPackages" value="true"/>
             </bean>
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 32e0b82..0d8da46 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
@@ -29,7 +29,9 @@
     <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+          <property name="brokerURL">
+              <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+          </property>
       </bean>
     </property>
     </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsSelectorTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsSelectorTest.xml
index b40c877..5d083cc 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsSelectorTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsSelectorTest.xml
@@ -39,7 +39,9 @@
     <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+                <property name="brokerURL">
+                    <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+                </property>
             </bean>
         </property>
     </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsXPathHeaderTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsXPathHeaderTest.xml
index 934b779..7ebbb6d 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsXPathHeaderTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/SpringJmsXPathHeaderTest.xml
@@ -27,7 +27,9 @@
     <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+                <property name="brokerURL">
+                    <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+                </property>
             </bean>
         </property>
     </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/bind/spring.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/bind/spring.xml
index 0065887..4dec0b5 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/bind/spring.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/bind/spring.xml
@@ -35,7 +35,9 @@
   <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
     <property name="connectionFactory">
       <bean class="org.apache.activemq.spring.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+          <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
       </bean>
     </property>
   </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsInOutWithSpringRestartIssueTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsInOutWithSpringRestartIssueTest.xml
index 3201771..979e75b 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsInOutWithSpringRestartIssueTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsInOutWithSpringRestartIssueTest.xml
@@ -34,7 +34,9 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/came
    <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
     <property name="connectionFactory">
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+           <property name="brokerURL">
+               <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+           </property>
        </bean>
     </property>
     </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
index 013d877..973ee20 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
@@ -33,7 +33,9 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/came
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
index d075fe7..9328946 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
@@ -57,7 +57,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsHeaderFilteringWithSpring.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsHeaderFilteringWithSpring.xml
index 273bb3f..673777d 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsHeaderFilteringWithSpring.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsHeaderFilteringWithSpring.xml
@@ -31,7 +31,9 @@
     <bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false" />
+                <property name="brokerURL">
+                    <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+                </property>
             </bean>
         </property>
 
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
index f313a7c..8cdb91b 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
@@ -32,7 +32,9 @@
   <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
     <property name="connectionFactory">
       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+          <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
       </bean>
     </property>
   </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringAndJmsName.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringAndJmsName.xml
index bcfa500..0fba14a 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringAndJmsName.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringAndJmsName.xml
@@ -32,7 +32,9 @@
   <bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
     <property name="connectionFactory">
       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+          <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
       </bean>
     </property>
   </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringJMSTemplate.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringJMSTemplate.xml
index 129a5eb..d583255 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringJMSTemplate.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringJMSTemplate.xml
@@ -40,7 +40,9 @@
   </bean>
 
   <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-    <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+    <property name="brokerURL">
+      <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+    </property>
   </bean>
 
   <!-- END SNIPPET: example -->
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringWithAutoWire.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringWithAutoWire.xml
index 10743aa..ae737db 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringWithAutoWire.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpringWithAutoWire.xml
@@ -30,7 +30,9 @@
   </camelContext>
 
   <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-    <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+    <property name="brokerURL">
+      <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+    </property>
   </bean>
   <!-- END SNIPPET: example -->
 
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/spring.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/spring.xml
index 8011c1d..33eeb66 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/spring.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/spring.xml
@@ -49,7 +49,9 @@
   </bean>
 
   <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" depends-on="broker">
-    <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+    <property name="brokerURL">
+      <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+    </property>
   </bean>
 
   <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest-context.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest-context.xml
index 94f5218..1009e88 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest-context.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest-context.xml
@@ -50,7 +50,9 @@
     <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-                <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+                <property name="brokerURL">
+                    <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+                </property>
             </bean>
         </property>
     </bean>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/ActiveMQWithoutTransactionManager.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/ActiveMQWithoutTransactionManager.xml
index 775c48d..31f34d4 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/ActiveMQWithoutTransactionManager.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/ActiveMQWithoutTransactionManager.xml
@@ -29,8 +29,11 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
-    </bean>     
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
+    </bean>
+
 
     <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
         <property name="connectionFactory" ref="poolConnectionFactory"/>
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionErrorHandlerTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionErrorHandlerTest.xml
index c11af9c..b3e13d1 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionErrorHandlerTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionErrorHandlerTest.xml
@@ -32,7 +32,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <!-- setup spring jms TX manager -->
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.xml
index 7a82792..d2c6269 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.xml
@@ -30,7 +30,11 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl">
+                <constructor-arg name="options" value="broker.useJmx=true"/>
+            </bean>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionRollbackTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionRollbackTest.xml
index 49f7027..f9796cd 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionRollbackTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionRollbackTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionThrottlingRoutePolicyTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionThrottlingRoutePolicyTest.xml
index 4be91ef..a72f134 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionThrottlingRoutePolicyTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionThrottlingRoutePolicyTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
index e22b115..6e77f1f 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
@@ -56,7 +56,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
index f0c8b58..336d64e 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
@@ -66,7 +66,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <!-- jms transaction manager -->
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyTest.xml
index 32a29a9..f55f317 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithDLCErrorHandlerTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithDLCErrorHandlerTest.xml
index 71c1d54..978eecd 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithDLCErrorHandlerTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithDLCErrorHandlerTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithTXErrorHandlerTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithTXErrorHandlerTest.xml
index ea65dc1..28693eb 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithTXErrorHandlerTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMXTXUseOriginalBodyWithTXErrorHandlerTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.xml
index 3eaeed4..8f69aef 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsTransacted-context.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsTransacted-context.xml
index 9c2364d..c8519a5 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsTransacted-context.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JmsTransacted-context.xml
@@ -25,7 +25,9 @@
          http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/RouteIdTransactedTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/RouteIdTransactedTest.xml
index cb41285..846ef0f 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/RouteIdTransactedTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/RouteIdTransactedTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactedAsyncUsingThreadsTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactedAsyncUsingThreadsTest.xml
index cb41285..846ef0f 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactedAsyncUsingThreadsTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactedAsyncUsingThreadsTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
index ea5c012..038bf43 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
@@ -80,7 +80,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerCustomerSpringParserTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerCustomerSpringParserTest.xml
index 859be15..4299b5b 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerCustomerSpringParserTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerCustomerSpringParserTest.xml
@@ -78,7 +78,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionInterceptSendToEndpointTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionInterceptSendToEndpointTest.xml
index 9cc8647..438e047 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionInterceptSendToEndpointTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionInterceptSendToEndpointTest.xml
@@ -30,7 +30,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager">
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml
index c7876de..d9af08f 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml
@@ -32,7 +32,9 @@
     </bean>
 
     <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+            <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
     </bean>
 
     <!-- setup spring jms TX manager -->
diff --git a/docs/user-manual/modules/ROOT/examples/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml b/docs/user-manual/modules/ROOT/examples/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
index f313a7c..8cdb91b 100644
--- a/docs/user-manual/modules/ROOT/examples/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
+++ b/docs/user-manual/modules/ROOT/examples/components/camel-jms/src/test/resources/org/apache/camel/component/jms/jmsRouteUsingSpring.xml
@@ -32,7 +32,9 @@
   <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
     <property name="connectionFactory">
       <bean class="org.apache.activemq.ActiveMQConnectionFactory">
-        <property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
+        <property name="brokerURL">
+          <bean class="org.apache.camel.component.jms.CamelJmsTestHelper" factory-method="createBrokerUrl"/>
+        </property>
       </bean>
     </property>
   </bean>