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/22 07:20:26 UTC

[camel] branch main updated: (chores) Refactor JMS tests and parallelize them

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


The following commit(s) were added to refs/heads/main by this push:
     new ea20b111e39 (chores) Refactor JMS tests and parallelize them
ea20b111e39 is described below

commit ea20b111e392e37d701c4b36b3fd73f5b3532f1a
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 18 17:30:21 2022 +0200

    (chores) Refactor JMS tests and parallelize them
    
    - Parallelize the execution of most of the JMS tests
    - Refactor to use unique resources
    - Refactor to remove some of the duplicated code
    - Move common code to camel-test-infra-activemq
---
 components/camel-jms/pom.xml                       |  42 +++++++-
 .../camel/component/jms/AbstractJMSTest.java       |  36 ++++++-
 .../component/jms/AbstractPersistentJMSTest.java   |   4 +-
 .../jms/ActiveMQOriginalDestinationTest.java       |  27 +++--
 .../component/jms/AggregatedJmsRouteTest.java      |  14 +--
 .../camel/component/jms/BrowsableQueueTest.java    |  30 ++----
 .../component/jms/ConsumeJmsBytesMessageTest.java  |  16 +--
 .../component/jms/ConsumeJmsMapMessageTest.java    |  16 +--
 .../component/jms/ConsumeJmsObjectMessageTest.java |  15 ++-
 .../component/jms/ConsumeMessageConverterTest.java |  14 +--
 .../jms/ConsumerTemplateJmsSelectorTest.java       |   8 +-
 .../jms/FileRouteJmsKeepLastModifiedTest.java      |  14 +--
 .../component/jms/FileRouteJmsPreMoveTest.java     |  15 +--
 .../camel/component/jms/FileRouteToJmsTest.java    |  15 +--
 .../component/jms/FileRouteToJmsToFileTest.java    |  15 +--
 .../component/jms/FromTextToBytesMessageTest.java  |  15 +--
 .../jms/JmsAddAndRemoveRouteManagementTest.java    |  20 ++--
 .../jms/JmsAllowAdditionalHeadersTest.java         |  23 ++--
 .../camel/component/jms/JmsAllowNullBodyTest.java  |  12 +--
 .../component/jms/JmsAsyncStartListenerTest.java   |   8 +-
 .../jms/JmsAsyncStartStopListenerTest.java         |  27 ++++-
 .../component/jms/JmsAsyncStopListenerTest.java    |  24 ++---
 .../camel/component/jms/JmsAutoStartupTest.java    |   4 +
 .../jms/JmsBatchResequencerJMSPriorityTest.java    |  16 +--
 .../camel/component/jms/JmsClientAckTest.java      |  16 ++-
 .../camel/component/jms/JmsComponentTest.java      |  20 ++--
 ...sumerRestartPickupConfigurationChangesTest.java |  16 +--
 .../jms/JmsCustomHeaderFilterStrategyTest.java     |  22 ++--
 .../jms/JmsDeadLetterChannelInOutTest.java         |  13 ++-
 .../component/jms/JmsDeadLetterQueueTest.java      |  15 +--
 ...msDeadLetterQueueUsingTransferExchangeTest.java |  16 +--
 .../jms/JmsDefaultTaskExecutorTypeTest.java        |  31 ++++--
 .../component/jms/JmsDestinationResolverTest.java  |  21 ++--
 .../camel/component/jms/JmsDurableTopicTest.java   |  35 ++++--
 .../jms/JmsEagerLoadingPropertiesTest.java         |  15 +--
 .../jms/JmsEndpointConfigurationTest.java          |  19 +---
 .../jms/JmsErrorHandlerLogStackTraceTest.java      |  20 ++--
 .../apache/camel/component/jms/JmsFilterTest.java  |  14 +--
 .../jms/JmsFormatDateHeadersToIso8601Test.java     |  15 ++-
 .../component/jms/JmsHeaderFilteringTest.java      |  19 ++--
 .../jms/JmsInOnlyDisableTimeToLiveTest.java        |  14 +--
 .../jms/JmsInOnlyIncludeSentJMSMessageIDTest.java  |  13 +--
 .../jms/JmsInOnlyInvalidDestinationTest.java       |  13 +--
 .../component/jms/JmsInOnlyPooledExchangeTest.java |  13 +--
 .../jms/JmsInOnlyWithReplyToAsHeaderTest.java      |  14 +--
 ...ToDisabledButJMSReplyToHeaderPreservedTest.java |  14 +--
 .../jms/JmsInOnlyWithReplyToDisabledTest.java      |  14 +--
 .../jms/JmsInOnlyWithReplyToHeaderTest.java        |  13 +--
 .../jms/JmsInOnlyWithReplyToHeaderTopicTest.java   |  13 +--
 .../jms/JmsInOnlyWithReplyToNotPreservedTest.java  |  12 +--
 .../component/jms/JmsInOnlyWithReplyToTest.java    |  13 +--
 .../component/jms/JmsInOutBeanReturnNullTest.java  |  31 +++---
 .../jms/JmsInOutDisableTimeToLiveTest.java         |  13 +--
 .../jms/JmsInOutFixedReplyQueueTimeoutTest.java    |  14 +--
 .../jms/JmsInOutIndividualRequestTimeoutTest.java  |  15 +--
 .../component/jms/JmsInOutNonPersistentTest.java   |  12 +--
 .../jms/JmsInOutSynchronousFalseTest.java          |  29 ++---
 .../component/jms/JmsInOutSynchronousTest.java     |  27 ++---
 .../jms/JmsInOutTransferExchangeTest.java          |  14 ++-
 .../component/jms/JmsInOutWithNoOutBodyTest.java   |  20 ++--
 .../jms/JmsIncludeAllJMSXPropertiesTest.java       |  21 ++--
 .../component/jms/JmsLoadBalanceFailoverTest.java  |  22 +++-
 ...ailoverWithForceSendOriginalJmsMessageTest.java |  24 ++---
 ...geAsOriginalMessageInDefaultUnitOfWorkTest.java |  14 +--
 .../component/jms/JmsMessageBodySetNullTest.java   |  16 +--
 .../JmsMessageCreatedStrategyComponentTest.java    |  21 ++--
 .../jms/JmsMessageCreatedStrategyEndpointTest.java |  15 +--
 .../jms/JmsMessageIDNotOverridenAMQTest.java       |  19 ++--
 .../component/jms/JmsMessageTimestampTest.java     |  20 +---
 .../camel/component/jms/JmsMessageTypeTest.java    |  13 +--
 .../component/jms/JmsMultipleConsumersTest.java    |  16 +--
 .../component/jms/JmsNoRequestTimeoutTest.java     |  24 ++---
 .../JmsNotInOnlyIncludeSentJMSMessageIDTest.java   |  13 +--
 .../jms/JmsNotIncludeAllJMSXPropertiesTest.java    |  21 ++--
 ...OnCompletionAndInterceptAndOnExceptionTest.java |  16 +--
 .../camel/component/jms/JmsOnCompletionTest.java   |  16 +--
 .../component/jms/JmsPollingConsumerTest.java      |  20 ++--
 .../component/jms/JmsProducerConcurrentTest.java   |  15 +--
 .../jms/JmsProducerConcurrentWithReplyTest.java    |  19 ++--
 .../jms/JmsProducerWithJMSHeaderTest.java          |  29 ++---
 .../camel/component/jms/JmsQosRouteTest.java       |  16 +--
 .../camel/component/jms/JmsRemoveHeaderTest.java   |  16 +--
 .../jms/JmsRequestReplyCorrelationTest.java        |  33 +++---
 ...sRequestReplyExclusiveReplyToComponentTest.java |  20 ++--
 ...RequestReplyExclusiveReplyToConcurrentTest.java |  35 +++---
 ...estReplyExclusiveReplyToRemoveAddRouteTest.java |  13 +--
 .../jms/JmsRequestReplyExclusiveReplyToTest.java   |  13 +--
 .../JmsRequestReplyFixedReplyToInEndpointTest.java |  18 ++--
 .../jms/JmsRequestReplyManualReplyTest.java        |  17 ++-
 .../JmsRequestReplyManualWithJMSReplyToTest.java   |  13 +--
 ...lyProcessRepliesConcurrentUsingThreadsTest.java |  18 +---
 .../jms/JmsRequestReplyReplyToOverrideTest.java    |  21 ++--
 .../jms/JmsRequestReplySharedReplyToTest.java      |  13 +--
 .../jms/JmsRequestReplyTemporaryCacheNoneTest.java |  18 +---
 .../apache/camel/component/jms/JmsRouteTest.java   |  16 +--
 .../jms/JmsRouteTimeoutCheckerIntervalTest.java    |  25 +++--
 .../camel/component/jms/JmsRouteTimeoutTest.java   |  23 ++--
 .../camel/component/jms/JmsRouteToFileTest.java    |  15 +--
 .../jms/JmsRouteUsingDifferentHeadersTest.java     |  16 +--
 .../component/jms/JmsRouteUsingJMSXGroupTest.java  |  15 +--
 .../JmsRouteWithCustomListenerContainerTest.java   |  25 ++---
 .../JmsRouteWithDefaultKeyFormatStrategyTest.java  |  15 +--
 .../jms/JmsRouteWithInOnlyAndMultipleAcksTest.java |  29 +++--
 .../component/jms/JmsRouteWithInOnlyTest.java      |  30 +++---
 .../component/jms/JmsRoutingSlipInOutTest.java     |  23 ++--
 .../camel/component/jms/JmsRoutingSlipTest.java    |  20 +---
 .../camel/component/jms/JmsSelectorInTest.java     |  17 +--
 .../camel/component/jms/JmsSelectorOptionTest.java |  42 +++-----
 .../camel/component/jms/JmsSelectorTest.java       |  15 ++-
 .../apache/camel/component/jms/JmsSessionTest.java |  14 +--
 .../camel/component/jms/JmsSimpleHeaderTest.java   |  16 +--
 .../component/jms/JmsSimpleInOnlyNoMutateTest.java |  16 +--
 .../jms/JmsSimpleRequestCustomReplyToTest.java     |  25 ++---
 .../jms/JmsSimpleRequestLateReplyTest.java         |  25 +++--
 .../component/jms/JmsSimpleRequestReply2Test.java  |  15 +--
 .../JmsSimpleRequestReplyFixedReplyQueueTest.java  |  15 +--
 .../component/jms/JmsSimpleRequestReplyTest.java   |  19 ++--
 .../jms/JmsSplitterParallelChainedTest.java        |  16 +--
 .../component/jms/JmsSplitterParallelTest.java     |  16 +--
 .../JmsStreamMessageTypeNoStreamCachingTest.java   |  22 ++--
 .../component/jms/JmsStreamMessageTypeTest.java    |  67 +++++-------
 .../org/apache/camel/component/jms/JmsToDTest.java |  16 +--
 .../org/apache/camel/component/jms/JmsToTest.java  |  16 +--
 .../component/jms/JmsTransactedRouteTest.java      |  15 ++-
 .../component/jms/JmsTransferExceptionTest.java    |  15 +--
 .../jms/JmsTransferExchangeFromSplitterTest.java   |  16 +--
 .../component/jms/JmsTransferExchangeTest.java     |  16 +--
 .../component/jms/JmsUseOriginalBodyTest.java      |  16 +--
 .../camel/component/jms/JmsXMLRouteTest.java       |  26 ++---
 .../camel/component/jms/JmsXPathHeaderTest.java    |  16 +--
 .../component/jms/ManagedJmsEndpointTopicTest.java |  15 +--
 .../component/jms/ManagedJmsSelectorTest.java      |   5 +-
 .../camel/component/jms/MapJmsMessageTest.java     |  15 +--
 .../component/jms/PayloadByteArrayJmsTest.java     |  24 ++---
 .../component/jms/ProduceMessageConverterTest.java |  15 +--
 .../jms/ReplyToDestinationSelectorNameTest.java    |  14 +--
 ...RequestReplyCorrelatedWithCustomHeaderTest.java |  24 ++---
 .../SimpleJmsRequestReplyExclusiveReplyToTest.java |  12 +--
 .../SimpleJmsRequestReplySharedReplyToTest.java    |  12 +--
 .../component/jms/SimpleJmsRequestReplyTest.java   |  13 +--
 .../component/jms/TwoConsumerOnSameTopicTest.java  | 119 +++++++++++----------
 .../ActiveMQConsumeWildcardQueuesTest.java         |  16 +--
 .../jms/async/AsyncConsumerFalseTest.java          |  14 +--
 .../jms/async/AsyncConsumerInOutTest.java          |  19 ++--
 .../jms/async/AsyncConsumerInOutTwoTest.java       |  19 ++--
 .../component/jms/async/AsyncConsumerTest.java     |  14 +--
 .../component/jms/async/AsyncJmsInOutTest.java     |  17 +--
 .../component/jms/async/AsyncJmsProducerTest.java  |  15 +--
 .../camel/component/jms/async/MyAsyncProducer.java |   6 +-
 .../component/jms/discovery/JmsDiscoveryTest.java  |  15 +--
 .../camel/component/jms/discovery/MyRegistry.java  |   2 +-
 .../jms/issues/ActiveMQPropagateHeadersTest.java   |  17 +--
 .../ActiveMQPropagateSerializableHeadersTest.java  |  15 +--
 .../jms/issues/BruceHandlingBeanExceptionTest.java |  15 +--
 ...cRoutersWithJMSMessageLostHeadersIssueTest.java |  15 +--
 .../jms/issues/JmsAnotherCustomJMSReplyToTest.java |  35 +++---
 .../jms/issues/JmsBeanMethodHeaderTest.java        |  16 +--
 .../issues/JmsBlockedAsyncRoutingEngineTest.java   |  31 ++++--
 .../issues/JmsChainedEndpointDelayTimeoutTest.java |  14 +--
 .../jms/issues/JmsConcurrentConsumersTest.java     |  17 +--
 .../jms/issues/JmsCustomJMSReplyToIssueTest.java   |  35 +++---
 .../jms/issues/JmsFilenameHeaderTest.java          |  19 +---
 .../jms/issues/JmsGetHeaderKeyFormatIssueTest.java |  15 +--
 ...derKeyFormatIssueWithContentTypeHeaderTest.java |  20 ++--
 .../jms/issues/JmsHeaderAsObjectTest.java          |  20 +---
 .../component/jms/issues/JmsInOnlyIssueTest.java   |  36 +++----
 .../jms/issues/JmsInOnlyParameterTest.java         |  19 ++--
 .../JmsInOutExclusiveTopicRecipientListTest.java   |  16 +--
 .../jms/issues/JmsInOutExclusiveTopicTest.java     |  13 +--
 .../component/jms/issues/JmsInOutIssueTest.java    |  15 +--
 .../component/jms/issues/JmsInOutParallelTest.java |  20 ++--
 .../issues/JmsInOutPersistentReplyQueueTest.java   |  14 +--
 .../jms/issues/JmsInOutPipelineWithBeanTest.java   |  32 +++---
 .../issues/JmsInOutRepeatedInvocationsTest.java    |  23 ++--
 .../jms/issues/JmsInOutRoutingSlipTest.java        |  14 +--
 ...ransferExchangeInflightRepositoryFlushTest.java |  18 +---
 .../JmsInOutUseMessageIDasCorrelationIDTest.java   |  12 +--
 ...msJMSReplyToConsumerEndpointUsingInOutTest.java |  20 ++--
 .../JmsJMSReplyToEndpointUsingInOutTest.java       |  29 ++---
 .../jms/issues/JmsLifecycleIssueTest.java          |  13 +--
 .../jms/issues/JmsMQSpecialHeaderTest.java         |  16 +--
 .../JmsMessageHeaderContentBasedRouterTest.java    |  14 +--
 .../component/jms/issues/JmsMutateMessageTest.java |  15 +--
 .../issues/JmsMutateRemoveHeaderMessageTest.java   |  14 +--
 ...roughtJmsKeyFormatStrategyEndUserIssueTest.java |  16 +--
 ...ssThroughtJmsKeyFormatStrategyEndpointTest.java |  16 +--
 .../JmsPassThroughtJmsKeyFormatStrategyTest.java   |  25 ++---
 ...KeyFormatStrategyUsingJmsConfigurationTest.java |  23 ++--
 .../issues/JmsReplyToComponentEndlessLoopTest.java |  13 +--
 .../jms/issues/JmsReplyToLoopIssueTest.java        |  15 +--
 .../jms/issues/JmsRoutingSlipIssueTest.java        |  14 +--
 ...endToAlotOfDestinationWithSameEndpointTest.java |   4 +
 .../jms/issues/JmsToFileMessageIdTest.java         |  15 +--
 ...etterChannelHandlerRollbackOnExceptionTest.java |   4 +
 ...erChannelNotHandlerRollbackOnExceptionTest.java |   4 +
 ...ansactedOnExceptionRollbackOnExceptionTest.java |   4 +
 .../jms/issues/JmsTypeConverterIssueTest.java      |  14 +--
 .../camel/component/jms/issues/LarsIssueTest.java  |  18 +---
 .../component/jms/issues/MQSeriesHeaderTest.java   |  15 +--
 .../NoClassDefFoundErrorWrapExceptionTest.java     |  18 +---
 .../issues/RequestReplyWithProducerIssueTest.java  |  15 +--
 .../component/jms/issues/TempReplyToIssueTest.java |  12 +--
 ...tReplyTemporaryRefreshFailureOnStartupTest.java |   3 +
 .../jms/temp/TemporaryQueueRouteTest.java          |  16 +--
 .../jms/tuning/PerformanceRoutePojoTest.java       |   2 +-
 .../component/jms/tuning/PerformanceRouteTest.java |  17 +--
 .../component/jms/tx/AsyncEndpointJmsTX2Test.java  |   4 +-
 .../JMSTransactionIsTransactedRedeliveredTest.java |  10 +-
 .../jms/tx/JmsToJmsTransactedSecurityTest.java     |   2 +-
 .../component/jms/tx/JmsToJmsTransactedTest.java   |  16 +--
 .../tx/TransactionMinimalConfigurationTest.java    |   2 +-
 .../jms/tx/TransactionMinimalConfigurationTest.xml |   2 +-
 .../services/AbstractActiveMQEmbeddedService.java  |  15 +--
 .../activemq/services/ActiveMQEmbeddedService.java |   6 +-
 .../services/ActiveMQEmbeddedServiceBuilder.java   |   3 +-
 .../services/ActiveMQPersistentVMService.java      |   6 +-
 .../infra/activemq/services/ActiveMQVMService.java |   6 +-
 217 files changed, 1270 insertions(+), 2567 deletions(-)

diff --git a/components/camel-jms/pom.xml b/components/camel-jms/pom.xml
index e020c583674..dc58b9f273e 100644
--- a/components/camel-jms/pom.xml
+++ b/components/camel-jms/pom.xml
@@ -17,7 +17,8 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
@@ -37,9 +38,9 @@
         <camel.osgi.import.additional>javax.jms;version="[1.1,3)"</camel.osgi.import.additional>
 
         <camel.surefire.reuseForks>true</camel.surefire.reuseForks>
-        <camel.surefire.forkCount>4</camel.surefire.forkCount>
-        <camel.surefire.forkTimeout>6000</camel.surefire.forkTimeout>
-        <camel.surefire.parallel>false</camel.surefire.parallel>
+        <camel.surefire.forkCount>1</camel.surefire.forkCount>
+        <camel.surefire.forkTimeout>120</camel.surefire.forkTimeout>
+        <camel.surefire.parallel>true</camel.surefire.parallel>
     </properties>
 
     <dependencies>
@@ -175,6 +176,39 @@
 
     <build>
         <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <argLine>${camel.surefire.fork.vmargs} -Xmx1024m</argLine>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-test</id>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <forkCount>1</forkCount>
+                            <reuseForks>true</reuseForks>
+                            <excludedGroups>not-parallel</excludedGroups>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>serials-test</id>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <forkCount>4</forkCount>
+                            <reuseForks>true</reuseForks>
+                            <groups>not-parallel</groups>
+                            <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
+                        </configuration>
+                    </execution>
+                </executions>
+
+            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractJMSTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractJMSTest.java
index 43c7f569e44..c03361c0258 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractJMSTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractJMSTest.java
@@ -17,21 +17,51 @@
 
 package org.apache.camel.component.jms;
 
+import javax.jms.ConnectionFactory;
+
+import org.apache.camel.CamelContext;
+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.Tag;
 import org.junit.jupiter.api.Tags;
-import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+
 @Tags({ @Tag("jms") })
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public abstract class AbstractJMSTest extends CamelTestSupport {
     @RegisterExtension
-    public static ActiveMQService service = ActiveMQServiceFactory.createVMService();
+    public ActiveMQService service = ActiveMQServiceFactory.createVMService();
 
     public static String queueNameForClass(String desiredName, Class<?> requestingClass) {
         return desiredName + "." + requestingClass.getSimpleName();
     }
+
+    protected abstract String getComponentName();
+
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        return jmsComponentAutoAcknowledge(connectionFactory);
+    }
+
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
+        return buildComponent(connectionFactory);
+    }
+
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
+
+        return setupComponent(camelContext, connectionFactory, componentName);
+    }
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext camelContext = super.createCamelContext();
+
+        JmsComponent component = setupComponent(camelContext, service, getComponentName());
+        camelContext.addComponent(getComponentName(), component);
+        return camelContext;
+    }
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractPersistentJMSTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractPersistentJMSTest.java
index 5dc720b3a52..fde4b72eb69 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractPersistentJMSTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AbstractPersistentJMSTest.java
@@ -26,16 +26,14 @@ import org.apache.camel.test.infra.activemq.services.ActiveMQServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Tags;
-import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
 @Tags({ @Tag("jms") })
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
 public abstract class AbstractPersistentJMSTest extends CamelTestSupport {
     @RegisterExtension
-    public static ActiveMQService service = ActiveMQServiceFactory.createPersistentVMService();
+    public ActiveMQService service = ActiveMQServiceFactory.createPersistentVMService();
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ActiveMQOriginalDestinationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ActiveMQOriginalDestinationTest.java
index 36adbebd769..6f3d3d403e1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ActiveMQOriginalDestinationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ActiveMQOriginalDestinationTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Message;
 import javax.jms.Session;
 
@@ -26,14 +25,15 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Timeout(60)
 public class ActiveMQOriginalDestinationTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -48,7 +48,7 @@ public class ActiveMQOriginalDestinationTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
 
         // consume from bar
-        Exchange out = consumer.receive("activemq:queue:bar", 5000);
+        Exchange out = consumer.receive("activemq:queue:ActiveMQOriginalDestinationTest.dest", 5000);
         assertNotNull(out);
 
         // and we should have ActiveMQOriginalDestinationTest as the original destination
@@ -62,17 +62,16 @@ public class ActiveMQOriginalDestinationTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
-
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        JmsComponent jms = camelContext.getComponent(componentName, JmsComponent.class);
-        jms.setMessageCreatedStrategy(new OriginalDestinationPropagateStrategy());
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        return camelContext;
+        component.setMessageCreatedStrategy(new OriginalDestinationPropagateStrategy());
+        return component;
     }
 
     @Override
@@ -81,7 +80,7 @@ public class ActiveMQOriginalDestinationTest extends AbstractJMSTest {
             @Override
             public void configure() {
                 from("activemq:queue:ActiveMQOriginalDestinationTest")
-                        .to("activemq:queue:bar")
+                        .to("activemq:queue:ActiveMQOriginalDestinationTest.dest")
                         .to("mock:result");
             }
         };
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AggregatedJmsRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AggregatedJmsRouteTest.java
index 3807a5cfd53..7c0ff5b119a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/AggregatedJmsRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/AggregatedJmsRouteTest.java
@@ -16,20 +16,15 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.processor.aggregate.UseLatestAggregationStrategy;
-import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.junit.jupiter.api.Assertions.fail;
 
 public class AggregatedJmsRouteTest extends AbstractJMSTest {
@@ -72,13 +67,8 @@ public class AggregatedJmsRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java
index aae6202c874..3bbc3bc19b5 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/BrowsableQueueTest.java
@@ -18,17 +18,12 @@ package org.apache.camel.component.jms;
 
 import java.util.List;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class BrowsableQueueTest extends AbstractJMSTest {
@@ -39,7 +34,7 @@ public class BrowsableQueueTest extends AbstractJMSTest {
 
     @Test
     public void testSendMessagesThenBrowseQueue() {
-        final String queueName = queueNameForClass("activemq:test.b", this.getClass());
+        final String queueName = queueNameForClass("activemq:BrowsableQueueTest.b", this.getClass());
         // send some messages
         for (int i = 0; i < expectedBodies.length; i++) {
             Object expectedBody = expectedBodies[i];
@@ -50,13 +45,13 @@ public class BrowsableQueueTest extends AbstractJMSTest {
         JmsQueueEndpoint endpoint = getMandatoryEndpoint(queueName + "?maximumBrowseSize=6", JmsQueueEndpoint.class);
         assertEquals(6, endpoint.getMaximumBrowseSize());
         List<Exchange> list = endpoint.getExchanges();
-        LOG.debug("Received: " + list);
+        LOG.debug("Received: {}", list);
         assertEquals(6, endpoint.getExchanges().size(), "Size of list");
 
         int index = -1;
         for (Exchange exchange : list) {
             String actual = exchange.getIn().getBody(String.class);
-            LOG.debug("Received body: " + actual);
+            LOG.debug("Received body: {}", actual);
 
             Object expected = expectedBodies[++index];
             assertEquals(expected, actual, "Body: " + index);
@@ -65,7 +60,7 @@ public class BrowsableQueueTest extends AbstractJMSTest {
 
     @Test
     public void testSendMessagesThenBrowseQueueLimitNotHit() {
-        final String queueName = queueNameForClass("activemq:test.c", this.getClass());
+        final String queueName = queueNameForClass("activemq:BrowsableQueueTest.c", this.getClass());
 
         // send some messages
         for (int i = 0; i < expectedBodies.length; i++) {
@@ -92,7 +87,7 @@ public class BrowsableQueueTest extends AbstractJMSTest {
 
     @Test
     public void testSendMessagesThenBrowseQueueNoMax() {
-        final String queueName = queueNameForClass("activemq:test.b", this.getClass());
+        final String queueName = queueNameForClass("activemq:BrowsableQueueTest.b", this.getClass());
 
         // send some messages
         for (int i = 0; i < expectedBodies.length; i++) {
@@ -110,7 +105,7 @@ public class BrowsableQueueTest extends AbstractJMSTest {
         int index = -1;
         for (Exchange exchange : list) {
             String actual = exchange.getIn().getBody(String.class);
-            LOG.debug("Received body: " + actual);
+            LOG.debug("Received body: {}", actual);
 
             Object expected = expectedBodies[++index];
             assertEquals(expected, actual, "Body: " + index);
@@ -118,20 +113,15 @@ public class BrowsableQueueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
-            final String queueNameA = queueNameForClass("activemq:test.a", this.getClass());
-            final String queueNameB = queueNameForClass("activemq:test.b", this.getClass());
+            final String queueNameA = queueNameForClass("activemq:BrowsableQueueTest.a", this.getClass());
+            final String queueNameB = queueNameForClass("activemq:BrowsableQueueTest.b", this.getClass());
 
             public void configure() {
                 from(queueNameA).to(queueNameB);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java
index 58595923be4..cdea054e980 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsBytesMessageTest.java
@@ -32,8 +32,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -83,7 +81,7 @@ public class ConsumeJmsBytesMessageTest extends AbstractJMSTest {
         assertNotNull(in);
 
         byte[] bytes = exchange.getIn().getBody(byte[].class);
-        LOG.info("Received bytes: " + Arrays.toString(bytes));
+        LOG.info("Received bytes: {}", Arrays.toString(bytes));
 
         assertNotNull(bytes, "Should have received a bytes message!");
         assertIsInstanceOf(BytesMessage.class, in.getJmsMessage());
@@ -99,14 +97,16 @@ public class ConsumeJmsBytesMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
+    @Override
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
         jmsTemplate = new JmsTemplate(connectionFactory);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
 
-        return camelContext;
+        return super.setupComponent(camelContext, connectionFactory, componentName);
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java
index d5c994ca31c..4271f216ddb 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsMapMessageTest.java
@@ -27,14 +27,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.ExchangeHelper;
-import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -70,7 +68,7 @@ public class ConsumeJmsMapMessageTest extends AbstractJMSTest {
         assertNotNull(in);
 
         Map<?, ?> map = exchange.getIn().getBody(Map.class);
-        LOG.info("Received map: " + map);
+        LOG.info("Received map: {}", map);
 
         assertNotNull(map, "Should have received a map message!");
         assertIsInstanceOf(MapMessage.class, in.getJmsMessage());
@@ -102,14 +100,16 @@ public class ConsumeJmsMapMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
+    @Override
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
         jmsTemplate = new JmsTemplate(connectionFactory);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
 
-        return camelContext;
+        return super.setupComponent(camelContext, connectionFactory, componentName);
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java
index c630efb8427..da618037406 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeJmsObjectMessageTest.java
@@ -30,8 +30,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -91,15 +89,16 @@ public class ConsumeJmsObjectMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+    @Override
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
         jmsTemplate = new JmsTemplate(connectionFactory);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
 
-        return camelContext;
+        return super.setupComponent(camelContext, connectionFactory, componentName);
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java
index 6fe4f826992..409bfc61623 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumeMessageConverterTest.java
@@ -17,36 +17,26 @@
 package org.apache.camel.component.jms;
 
 import javax.jms.BytesMessage;
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.support.converter.MessageConversionException;
 import org.springframework.jms.support.converter.MessageConverter;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-
 public class ConsumeMessageConverterTest extends AbstractJMSTest {
 
     @BindToRegistry("myMessageConverter")
     private final MyMessageConverter conv = new MyMessageConverter();
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumerTemplateJmsSelectorTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumerTemplateJmsSelectorTest.java
index b12cb24904c..6b3f0ce00c2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumerTemplateJmsSelectorTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ConsumerTemplateJmsSelectorTest.java
@@ -32,13 +32,13 @@ public class ConsumerTemplateJmsSelectorTest extends AbstractPersistentJMSTest {
         // must start CamelContext because use route builder is false
         context.start();
 
-        template.sendBodyAndHeader("activemq:foo", "Hello World", "foo", "123");
-        template.sendBodyAndHeader("activemq:foo", "Bye World", "foo", "456");
+        template.sendBodyAndHeader("activemq:ConsumerTemplateJmsSelectorTest", "Hello World", "foo", "123");
+        template.sendBodyAndHeader("activemq:ConsumerTemplateJmsSelectorTest", "Bye World", "foo", "456");
 
-        String body = consumer.receiveBody("activemq:foo?selector=foo='456'", 5000, String.class);
+        String body = consumer.receiveBody("activemq:ConsumerTemplateJmsSelectorTest?selector=foo='456'", 5000, String.class);
         assertEquals("Bye World", body);
 
-        body = consumer.receiveBody("activemq:foo", 5000, String.class);
+        body = consumer.receiveBody("activemq:ConsumerTemplateJmsSelectorTest", 5000, String.class);
         assertEquals("Hello World", body);
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsKeepLastModifiedTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsKeepLastModifiedTest.java
index 9048c251de1..d02b7d50c49 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsKeepLastModifiedTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsKeepLastModifiedTest.java
@@ -19,17 +19,12 @@ package org.apache.camel.component.jms;
 import java.io.File;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -61,13 +56,8 @@ public class FileRouteJmsKeepLastModifiedTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsPreMoveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsPreMoveTest.java
index d9d6388c9c4..94740485d12 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsPreMoveTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteJmsPreMoveTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 
 /**
@@ -55,14 +50,8 @@ public class FileRouteJmsPreMoveTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsTest.java
index adebc85667f..2e43287ea4b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 
 /**
@@ -49,14 +44,8 @@ public class FileRouteToJmsTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsToFileTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsToFileTest.java
index 4f8c548ba82..f8a07813298 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsToFileTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FileRouteToJmsToFileTest.java
@@ -18,17 +18,12 @@ package org.apache.camel.component.jms;
 
 import java.io.File;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -58,14 +53,8 @@ public class FileRouteToJmsToFileTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FromTextToBytesMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FromTextToBytesMessageTest.java
index a7918478670..e2763173c16 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/FromTextToBytesMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/FromTextToBytesMessageTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -76,14 +71,8 @@ public class FromTextToBytesMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
index 43fb1c47bcb..7d6e915bad8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAddAndRemoveRouteManagementTest.java
@@ -18,21 +18,23 @@ package org.apache.camel.component.jms;
 
 import java.util.Set;
 
-import javax.jms.ConnectionFactory;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
- * Test that all thread pools is removed when adding and removing a route dynamically
+ * Test that all thread pools is removed when adding and removing a route dynamically. This test manipulates the thread
+ * pools, so it's not a good candidate for running in parallel.
  */
+@Tags({ @Tag("not-parallel") })
+@Timeout(60)
 public class JmsAddAndRemoveRouteManagementTest extends AbstractJMSTest {
 
     @Override
@@ -76,12 +78,8 @@ public class JmsAddAndRemoveRouteManagementTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowAdditionalHeadersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowAdditionalHeadersTest.java
index f458f1c997a..2688eb8b532 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowAdditionalHeadersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowAdditionalHeadersTest.java
@@ -16,15 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsAllowAdditionalHeadersTest extends AbstractJMSTest {
 
     @Test
@@ -44,19 +40,18 @@ public class JmsAllowAdditionalHeadersTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "jms";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
         // allow any of those special IBM headers (notice we use * as wildcard)
-        jms.getConfiguration().setAllowAdditionalHeaders("JMS_IBM_MQMD*");
-
-        camelContext.addComponent("jms", jms);
+        component.getConfiguration().setAllowAdditionalHeaders("JMS_IBM_MQMD*");
 
-        return camelContext;
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowNullBodyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowNullBodyTest.java
index ae0f1e3ecd7..bd0ca056ef7 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowNullBodyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAllowNullBodyTest.java
@@ -16,16 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -82,12 +78,8 @@ public class JmsAllowNullBodyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartListenerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartListenerTest.java
index eef320d21dd..2063e9f79b9 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartListenerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartListenerTest.java
@@ -23,12 +23,14 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
 /**
  * Testing with async start listener
  */
+@Timeout(60)
 public class JmsAsyncStartListenerTest extends AbstractPersistentJMSTest {
 
     protected String componentName = "activemq";
@@ -38,8 +40,8 @@ public class JmsAsyncStartListenerTest extends AbstractPersistentJMSTest {
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedMessageCount(2);
 
-        template.sendBody("activemq:queue:hello", "Hello World");
-        template.sendBody("activemq:queue:hello", "Gooday World");
+        template.sendBody("activemq:queue:JmsAsyncStartListenerTest", "Hello World");
+        template.sendBody("activemq:queue:JmsAsyncStartListenerTest", "Gooday World");
 
         result.assertIsSatisfied();
     }
@@ -58,7 +60,7 @@ public class JmsAsyncStartListenerTest extends AbstractPersistentJMSTest {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").to("mock:result");
+                from("activemq:queue:JmsAsyncStartListenerTest").to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartStopListenerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartStopListenerTest.java
index a6466a80cfc..0d513b5434f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartStopListenerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStartStopListenerTest.java
@@ -22,14 +22,25 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 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.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
 /**
- * Testing with async start listener
+ * Testing with async start listener. This test does not work in parallel mode.
  */
-public class JmsAsyncStartStopListenerTest extends AbstractPersistentJMSTest {
+@Tags({ @Tag("not-parallel") })
+@Timeout(30)
+public class JmsAsyncStartStopListenerTest extends CamelTestSupport {
+    @RegisterExtension
+    public ActiveMQService service = ActiveMQServiceFactory.createPersistentVMService();
 
     protected String componentName = "activemq";
 
@@ -39,12 +50,11 @@ public class JmsAsyncStartStopListenerTest extends AbstractPersistentJMSTest {
         result.expectedMessageCount(2);
 
         template.requestBody("activemq:queue:JmsAsyncStartStopListenerTest", "Hello World");
-        template.requestBody("activemq:queue:JmsAsyncStartStopListenerTest", "Gooday World");
+        template.requestBody("activemq:queue:JmsAsyncStartStopListenerTest", "Goodbye World");
 
         result.assertIsSatisfied();
     }
 
-    @Override
     protected void createConnectionFactory(CamelContext camelContext) {
         // use a persistent queue as the consumer is started asynchronously
         // so we need a persistent store in case no active consumers when we send the messages
@@ -55,6 +65,15 @@ public class JmsAsyncStartStopListenerTest extends AbstractPersistentJMSTest {
         camelContext.addComponent(componentName, jms);
     }
 
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext camelContext = super.createCamelContext();
+
+        createConnectionFactory(camelContext);
+
+        return camelContext;
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStopListenerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStopListenerTest.java
index 8ce61e88270..4578745e153 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStopListenerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAsyncStopListenerTest.java
@@ -16,21 +16,19 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
-
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
+import org.junit.jupiter.api.Timeout;
 
 /**
  * Testing with async stop listener
  */
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
+@Timeout(60)
 public class JmsAsyncStopListenerTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -41,21 +39,21 @@ public class JmsAsyncStopListenerTest extends AbstractJMSTest {
         result.expectedMessageCount(2);
 
         template.sendBody("activemq:queue:JmsAsyncStopListenerTest", "Hello World");
-        template.sendBody("activemq:queue:JmsAsyncStopListenerTest", "Gooday World");
+        template.sendBody("activemq:queue:JmsAsyncStopListenerTest", "Goodbye World");
 
         result.assertIsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    public String getComponentName() {
+        return componentName;
+    }
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         jms.getConfiguration().setAsyncStopListener(true);
-        camelContext.addComponent(componentName, jms);
-
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAutoStartupTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAutoStartupTest.java
index 9347fcdf6c1..41225cb743e 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAutoStartupTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsAutoStartupTest.java
@@ -23,9 +23,13 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
+@Timeout(60)
+@Isolated
 public class JmsAutoStartupTest extends AbstractPersistentJMSTest {
 
     private JmsEndpoint endpoint;
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsBatchResequencerJMSPriorityTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsBatchResequencerJMSPriorityTest.java
index 7509634cdb7..1b277584a24 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsBatchResequencerJMSPriorityTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsBatchResequencerJMSPriorityTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * JMSPriority being ordered using the resequencer in batch mode.
  */
@@ -58,14 +52,8 @@ public class JmsBatchResequencerJMSPriorityTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsClientAckTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsClientAckTest.java
index 5d5ee06f7ed..d76f77a13c3 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsClientAckTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsClientAckTest.java
@@ -19,13 +19,10 @@ package org.apache.camel.component.jms;
 import javax.jms.ConnectionFactory;
 import javax.jms.Session;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -44,14 +41,13 @@ public class JmsClientAckTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentClientAcknowledge(connectionFactory));
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        return JmsComponent.jmsComponentClientAcknowledge(connectionFactory);
+    }
 
-        return camelContext;
+    @Override
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentTest.java
index 57560ee883b..268d27819a5 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsComponentTest.java
@@ -20,26 +20,33 @@ import javax.jms.ConnectionFactory;
 
 import org.apache.camel.CamelContext;
 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.Test;
 import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-@TestInstance(TestInstance.Lifecycle.PER_METHOD)
-public class JmsComponentTest extends AbstractJMSTest {
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class JmsComponentTest extends CamelTestSupport {
 
     protected String componentName = "activemq123";
     protected JmsEndpoint endpoint;
 
     @Test
-    public void testComponentOptions() {
+    public void testComponentInOut() {
         String reply
                 = template.requestBody("activemq123:queue:JmsComponentTest?requestTimeout=5000", "Hello World", String.class);
         assertEquals("Bye World", reply);
+    }
 
+    @Timeout(10)
+    @Test
+    public void testComponentOptions() {
         assertTrue(endpoint.isAcceptMessagesWhileStopping());
         assertTrue(endpoint.isAllowReplyManagerQuickStop());
         assertTrue(endpoint.isAlwaysCopyMessage());
@@ -66,8 +73,9 @@ public class JmsComponentTest extends AbstractJMSTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+        // Note: this one seems to mess with the component configuration, so we use a disposable broker
+        final String brokerUrl = LegacyEmbeddedBroker.createBrokerUrl();
+        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(brokerUrl, 0);
         JmsComponent comp = jmsComponentAutoAcknowledge(connectionFactory);
 
         comp.setAcceptMessagesWhileStopping(true);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsConsumerRestartPickupConfigurationChangesTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsConsumerRestartPickupConfigurationChangesTest.java
index cd161f0b9d2..00c77e5c47f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsConsumerRestartPickupConfigurationChangesTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsConsumerRestartPickupConfigurationChangesTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsConsumerRestartPickupConfigurationChangesTest extends AbstractJMSTest {
 
     @Test
@@ -58,14 +52,8 @@ public class JmsConsumerRestartPickupConfigurationChangesTest extends AbstractJM
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsCustomHeaderFilterStrategyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsCustomHeaderFilterStrategyTest.java
index 190b5a99028..13bb0dde87b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsCustomHeaderFilterStrategyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsCustomHeaderFilterStrategyTest.java
@@ -19,18 +19,14 @@ package org.apache.camel.component.jms;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsCustomHeaderFilterStrategyTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -52,17 +48,17 @@ public class JmsCustomHeaderFilterStrategyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
 
-        JmsComponent jms = camelContext.getComponent(componentName, JmsComponent.class);
         jms.setHeaderFilterStrategy(new MyHeaderFilterStrategy());
 
-        return camelContext;
+        return jms;
+    }
+
+    @Override
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterChannelInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterChannelInOutTest.java
index b21c39459b4..faf9cd293dd 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterChannelInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterChannelInOutTest.java
@@ -16,27 +16,34 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.CompletableFuture;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Timeout(20)
 public class JmsDeadLetterChannelInOutTest extends AbstractPersistentJMSTest {
 
     @Test
     public void testJmsDLCInOut() {
-        Exchange out = template.send("direct:start", exchange -> {
+        final CompletableFuture<Exchange> future = template.asyncSend("direct:start", exchange -> {
             // use InOut
             exchange.setPattern(ExchangePattern.InOut);
             exchange.getIn().setBody("Hello World");
         });
+
+        Exchange out = assertDoesNotThrow(() -> future.get());
         assertNotNull(out);
 
         // should be in DLQ
-        Object dead = consumer.receiveBody("activemq:queue:error", 5000);
+        Object dead = consumer.receiveBody("activemq:queue:JmsDeadLetterChannelInOutTest.error", 5000);
         assertEquals("Hello World", dead);
     }
 
@@ -45,7 +52,7 @@ public class JmsDeadLetterChannelInOutTest extends AbstractPersistentJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                errorHandler(deadLetterChannel("activemq:queue:error"));
+                errorHandler(deadLetterChannel("activemq:queue:JmsDeadLetterChannelInOutTest.error"));
 
                 from("direct:start").throwException(new IllegalArgumentException("Damn"));
             }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueTest.java
index 5edea6ed8f7..1ec2e031a02 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 /**
@@ -61,14 +56,8 @@ public class JmsDeadLetterQueueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueUsingTransferExchangeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueUsingTransferExchangeTest.java
index 8dc775675b4..c685bf7e4e3 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueUsingTransferExchangeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDeadLetterQueueUsingTransferExchangeTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test for using JMS as DLQ and to preserve the Exchange using transferExchange=true option
  */
@@ -56,14 +50,8 @@ public class JmsDeadLetterQueueUsingTransferExchangeTest extends AbstractJMSTest
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java
index 6136109ce27..22d92e0e677 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDefaultTaskExecutorTypeTest.java
@@ -27,8 +27,15 @@ import javax.jms.ConnectionFactory;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+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.apache.camel.util.concurrent.ThreadHelper;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,12 +44,17 @@ import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelpe
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
- *
+ * This test cannot run in parallel: running this test in parallel messes with the number of threads in the pools,
+ * resulting in failures.
  */
-public class JmsDefaultTaskExecutorTypeTest extends AbstractJMSTest {
-
+@Tags({ @Tag("not-parallel"), @Tag("slow") })
+@Timeout(60)
+public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
     private static final Logger LOG = LoggerFactory.getLogger(JmsDefaultTaskExecutorTypeTest.class);
 
+    @RegisterExtension
+    public ActiveMQService service = ActiveMQServiceFactory.createPersistentVMService();
+
     @Test
     public void testThreadPoolTaskExecutor() throws Exception {
         context.getRouteController().startRoute("threadPool");
@@ -52,9 +64,9 @@ public class JmsDefaultTaskExecutorTypeTest extends AbstractJMSTest {
         doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.threadPool", 500, 5, DefaultTaskExecutorType.ThreadPool);
         assertMockEndpointsSatisfied();
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
-        LOG.info("Number of threads created, testThreadPoolTaskExecutor: " + numberThreadsCreated);
+        LOG.info("Number of threads created, testThreadPoolTaskExecutor: {}", numberThreadsCreated);
         assertTrue(numberThreadsCreated <= 100, "Number of threads created should be equal or lower than "
-                                                + "100 with ThreadPoolTaskExecutor");
+                                                + "100 with ThreadPoolTaskExecutor: " + numberThreadsCreated);
     }
 
     @Test
@@ -68,7 +80,7 @@ public class JmsDefaultTaskExecutorTypeTest extends AbstractJMSTest {
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
         LOG.info("Number of threads created, testSimpleAsyncTaskExecutor: " + numberThreadsCreated);
         assertTrue(numberThreadsCreated >= 800, "Number of threads created should be equal or higher than "
-                                                + "800 with SimpleAsyncTaskExecutor");
+                                                + "800 with SimpleAsyncTaskExecutor: " + numberThreadsCreated);
     }
 
     @Test
@@ -80,9 +92,9 @@ public class JmsDefaultTaskExecutorTypeTest extends AbstractJMSTest {
         doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", 500, 5, null);
         assertMockEndpointsSatisfied();
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
-        LOG.info("Number of threads created, testDefaultTaskExecutor: " + numberThreadsCreated);
+        LOG.info("Number of threads created, testDefaultTaskExecutor: {}", numberThreadsCreated);
         assertTrue(numberThreadsCreated >= 800, "Number of threads created should be equal or higher than "
-                                                + "800 with default behaviour");
+                                                + "800 with default behaviour: " + numberThreadsCreated);
     }
 
     @Test
@@ -115,8 +127,7 @@ public class JmsDefaultTaskExecutorTypeTest extends AbstractJMSTest {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+        ConnectionFactory connectionFactory = createConnectionFactory(service);
         JmsComponent jmsComponent = jmsComponentAutoAcknowledge(connectionFactory);
         jmsComponent.getConfiguration().setMaxMessagesPerTask(1);
         jmsComponent.getConfiguration().setIdleTaskExecutionLimit(1);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDestinationResolverTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDestinationResolverTest.java
index 95839801410..ead6d8ffec4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDestinationResolverTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDestinationResolverTest.java
@@ -16,16 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsDestinationResolverTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -42,16 +38,17 @@ public class JmsDestinationResolverTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    public String getComponentName() {
+        return componentName;
+    }
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        JmsComponent jms = camelContext.getComponent(componentName, JmsComponent.class);
-        jms.getConfiguration().setDestinationResolver(new MyDestinationResolver());
+        component.getConfiguration().setDestinationResolver(new MyDestinationResolver());
 
-        return camelContext;
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDurableTopicTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDurableTopicTest.java
index 83ff43b5a2b..6b16739c7d8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDurableTopicTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsDurableTopicTest.java
@@ -16,28 +16,45 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.awaitility.Awaitility;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+// This one is too flaky when running in parallel
+@Tags({ @Tag("not-parallel") })
+@Timeout(30)
 public class JmsDurableTopicTest extends AbstractPersistentJMSTest {
+    private MockEndpoint mock;
+    private MockEndpoint mock2;
 
-    @Test
-    public void testDurableTopic() {
-        MockEndpoint mock = getMockEndpoint("mock:result");
+    @BeforeEach
+    void setUpMocks() {
+        mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
 
-        MockEndpoint mock2 = getMockEndpoint("mock:result2");
+        mock2 = getMockEndpoint("mock:result2");
         mock2.expectedBodiesReceived("Hello World");
+    }
+
+    @Test
+    public void testDurableTopic() {
+
+        final CompletableFuture<Object> future = template.asyncSendBody("activemq:topic:JmsDurableTopicTest", "Hello World");
+        final Object request = assertDoesNotThrow(() -> future.get(5, TimeUnit.SECONDS));
+        assertNotNull(request);
 
-        Awaitility.await().atMost(2, TimeUnit.SECONDS)
-                .untilAsserted(() -> {
-                    template.sendBody("activemq:topic:JmsDurableTopicTest", "Hello World");
-                    assertMockEndpointsSatisfied();
-                });
+        Awaitility.await().atMost(6, TimeUnit.SECONDS).untilAsserted(this::assertMockEndpointsSatisfied);
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEagerLoadingPropertiesTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEagerLoadingPropertiesTest.java
index 2d32550ad61..44125f59682 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEagerLoadingPropertiesTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEagerLoadingPropertiesTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsEagerLoadingPropertiesTest extends AbstractJMSTest {
@@ -41,14 +36,8 @@ public class JmsEagerLoadingPropertiesTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
index 2a046bccb66..19097a61201 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
@@ -21,7 +21,6 @@ import javax.jms.DeliveryMode;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
@@ -38,7 +37,6 @@ import org.springframework.jms.listener.DefaultMessageListenerContainer;
 import org.springframework.jms.listener.SimpleMessageListenerContainer;
 import org.springframework.jms.support.converter.SimpleMessageConverter;
 
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -58,6 +56,11 @@ public class JmsEndpointConfigurationTest extends AbstractJMSTest {
 
     private final Processor dummyProcessor = exchange -> LOG.info("Received: {}", exchange);
 
+    @Override
+    protected String getComponentName() {
+        return "jms";
+    }
+
     @Test
     public void testDurableSubscriberConfiguredWithDoubleSlash() throws Exception {
         JmsEndpoint endpoint
@@ -572,16 +575,4 @@ public class JmsEndpointConfigurationTest extends AbstractJMSTest {
         assertEquals("ABC", listenerContainer.getClientId(), "getClientId()");
         assertTrue(listenerContainer.isSubscriptionDurable(), "isSubscriptionDurable()");
     }
-
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
-    }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsErrorHandlerLogStackTraceTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsErrorHandlerLogStackTraceTest.java
index ecd2b7e37f7..56210b63838 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsErrorHandlerLogStackTraceTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsErrorHandlerLogStackTraceTest.java
@@ -16,15 +16,13 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -61,17 +59,17 @@ public class JmsErrorHandlerLogStackTraceTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "jms";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jms = JmsComponent.jmsComponentAutoAcknowledge(connectionFactory);
         jms.getConfiguration().setErrorHandlerLogStackTrace(false);
         jms.getConfiguration().setErrorHandlerLoggingLevel(LoggingLevel.ERROR);
-        camelContext.addComponent("jms", jms);
 
-        return camelContext;
+        return jms;
     }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFilterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFilterTest.java
index edea1ed0358..6ae130e79c8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFilterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFilterTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
@@ -26,8 +23,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Tests filtering using Camel Test
  */
@@ -61,13 +56,8 @@ public class JmsFilterTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFormatDateHeadersToIso8601Test.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFormatDateHeadersToIso8601Test.java
index 011218d90d5..9c3cb584bb9 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFormatDateHeadersToIso8601Test.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsFormatDateHeadersToIso8601Test.java
@@ -23,14 +23,18 @@ import javax.jms.ConnectionFactory;
 
 import org.apache.camel.CamelContext;
 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.Test;
+import org.junit.jupiter.api.TestInstance;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
-public class JmsFormatDateHeadersToIso8601Test extends AbstractJMSTest {
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class JmsFormatDateHeadersToIso8601Test extends CamelTestSupport {
 
     private static final Date DATE = Date.from(Instant.ofEpochMilli(1519672338000L));
 
@@ -49,8 +53,11 @@ public class JmsFormatDateHeadersToIso8601Test extends AbstractJMSTest {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+
+        // Note: this one does something strange that requires a fresh new broker
+        final String brokerUrl = LegacyEmbeddedBroker.createBrokerUrl();
+        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(brokerUrl, 0);
+
         JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
         jms.getConfiguration().setFormatDateHeadersToIso8601(true);
         camelContext.addComponent("activemq", jms);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java
index 72bc8e91b22..fffce644474 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java
@@ -19,18 +19,15 @@ package org.apache.camel.component.jms;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -65,13 +62,13 @@ public class JmsHeaderFilteringTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
+    public String getComponentName() {
+        return componentName;
+    }
 
-        JmsComponent component = camelContext.getComponent(componentName, JmsComponent.class);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
         JmsHeaderFilterStrategy filter = new JmsHeaderFilterStrategy();
         filter.getInFilter().add("testheader");
@@ -81,7 +78,7 @@ public class JmsHeaderFilteringTest extends AbstractJMSTest {
 
         component.setHeaderFilterStrategy(filter);
 
-        return camelContext;
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
index 6f12b8231c7..3fdea0b7347 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyDisableTimeToLiveTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
 
     private final String urlTimeout = "activemq:JmsInOnlyDisableTimeToLiveTest.in?timeToLive=2000";
@@ -86,12 +80,8 @@ public class JmsInOnlyDisableTimeToLiveTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyIncludeSentJMSMessageIDTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyIncludeSentJMSMessageIDTest.java
index 57312780316..79b601df6a1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyIncludeSentJMSMessageIDTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyIncludeSentJMSMessageIDTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -54,12 +49,8 @@ public class JmsInOnlyIncludeSentJMSMessageIDTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java
index f4f891578b8..f4327464d1f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyInvalidDestinationTest.java
@@ -16,21 +16,16 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 import javax.jms.JMSException;
 import javax.jms.Session;
 
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.support.destination.DestinationResolutionException;
 import org.springframework.jms.support.destination.DestinationResolver;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  *
  */
@@ -50,12 +45,8 @@ public class JmsInOnlyInvalidDestinationTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyPooledExchangeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyPooledExchangeTest.java
index a518b5eaac5..a0f728b8b82 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyPooledExchangeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyPooledExchangeTest.java
@@ -18,8 +18,6 @@ package org.apache.camel.component.jms;
 
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.builder.RouteBuilder;
@@ -31,8 +29,6 @@ import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
@@ -82,6 +78,11 @@ public class JmsInOnlyPooledExchangeTest extends AbstractJMSTest {
         });
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         ExtendedCamelContext ecc = (ExtendedCamelContext) super.createCamelContext();
@@ -91,10 +92,6 @@ public class JmsInOnlyPooledExchangeTest extends AbstractJMSTest {
         ecc.getExchangeFactory().setStatisticsEnabled(true);
         ecc.getProcessorExchangeFactory().setStatisticsEnabled(true);
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        ecc.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
         return ecc;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java
index 122f1b89b0d..113775b76a1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOnlyWithReplyToAsHeaderTest extends AbstractJMSTest {
 
     @Test
@@ -39,12 +33,8 @@ public class JmsInOnlyWithReplyToAsHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest.java
index 06b7fd21ae3..f0a01f95c7d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest extends AbstractJMSTest {
 
     @Test
@@ -39,12 +33,8 @@ public class JmsInOnlyWithReplyToDisabledButJMSReplyToHeaderPreservedTest extend
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledTest.java
index 108ff86038e..46e2fd95256 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToDisabledTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOnlyWithReplyToDisabledTest extends AbstractJMSTest {
 
     @Test
@@ -39,12 +33,8 @@ public class JmsInOnlyWithReplyToDisabledTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTest.java
index 2be7ce9ebb6..5106c7cb010 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOnlyWithReplyToHeaderTest extends AbstractJMSTest {
@@ -48,12 +43,8 @@ public class JmsInOnlyWithReplyToHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTopicTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTopicTest.java
index 6dcebc7d970..ffe040b4396 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTopicTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToHeaderTopicTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-
 public class JmsInOnlyWithReplyToHeaderTopicTest extends AbstractJMSTest {
 
     @Test
@@ -44,12 +39,8 @@ public class JmsInOnlyWithReplyToHeaderTopicTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToNotPreservedTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToNotPreservedTest.java
index 236c37819a2..caea5bdf376 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToNotPreservedTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToNotPreservedTest.java
@@ -16,13 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class JmsInOnlyWithReplyToNotPreservedTest extends AbstractJMSTest {
@@ -42,12 +38,8 @@ public class JmsInOnlyWithReplyToNotPreservedTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToTest.java
index 6becaf758df..4051ac35129 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToTest.java
@@ -16,14 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-
 public class JmsInOnlyWithReplyToTest extends AbstractJMSTest {
 
     @Test
@@ -38,12 +33,8 @@ public class JmsInOnlyWithReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutBeanReturnNullTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutBeanReturnNullTest.java
index 0040b5de431..20696f31fec 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutBeanReturnNullTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutBeanReturnNullTest.java
@@ -18,28 +18,25 @@ package org.apache.camel.component.jms;
 
 import java.io.Serializable;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
-/**
- *
- */
+@Timeout(30)
 public class JmsInOutBeanReturnNullTest extends AbstractJMSTest {
-
     @Test
     public void testReturnBean() {
         MyBean out = template.requestBody("activemq:queue:JmsInOutBeanReturnNullTest", "Camel", MyBean.class);
+
         assertNotNull(out);
         assertEquals("Camel", out.getName());
     }
@@ -56,12 +53,13 @@ public class JmsInOutBeanReturnNullTest extends AbstractJMSTest {
         assertNull(out);
     }
 
+    @SuppressWarnings("deprecated")
     @Test
     public void testReturnNullExchange() {
         Exchange reply
                 = template.request("activemq:queue:JmsInOutBeanReturnNullTest", exchange -> exchange.getIn().setBody("foo"));
         assertNotNull(reply);
-        assertNotEquals("foo", reply.getMessage().getBody(), "There shouldn't be an out message");
+        assertNotEquals("foo", reply.getOut().getBody(), "There shouldn't be an out message");
         Message out = reply.getMessage();
         assertNotNull(out);
         Object body = out.getBody();
@@ -69,12 +67,17 @@ public class JmsInOutBeanReturnNullTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jmsComponent = super.setupComponent(camelContext, service, componentName);
+
+        jmsComponent.setRequestTimeout(5000);
+
+        return jmsComponent;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
index e53a73b77ee..72207b6a748 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutDisableTimeToLiveTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.fail;
 
 public class JmsInOutDisableTimeToLiveTest extends AbstractJMSTest {
@@ -80,12 +75,8 @@ public class JmsInOutDisableTimeToLiveTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutFixedReplyQueueTimeoutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutFixedReplyQueueTimeoutTest.java
index cd55254e891..7a4d6382f81 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutFixedReplyQueueTimeoutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutFixedReplyQueueTimeoutTest.java
@@ -18,9 +18,6 @@ package org.apache.camel.component.jms;
 
 import java.time.Duration;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.ExchangeTimedOutException;
@@ -28,7 +25,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -61,14 +57,8 @@ public class JmsInOutFixedReplyQueueTimeoutTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutIndividualRequestTimeoutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutIndividualRequestTimeoutTest.java
index 59ebd0a01fe..7b48e0ba772 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutIndividualRequestTimeoutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutIndividualRequestTimeoutTest.java
@@ -18,9 +18,6 @@ package org.apache.camel.component.jms;
 
 import java.time.Duration;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.ExchangeTimedOutException;
@@ -28,8 +25,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -78,14 +73,8 @@ public class JmsInOutIndividualRequestTimeoutTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutNonPersistentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutNonPersistentTest.java
index b9f55322d1d..9c83d17c6c8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutNonPersistentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutNonPersistentTest.java
@@ -16,15 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.DeliveryMode;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutNonPersistentTest extends AbstractJMSTest {
@@ -44,12 +40,8 @@ public class JmsInOutNonPersistentTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousFalseTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousFalseTest.java
index a9e03f4d93b..5669d72f88f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousFalseTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousFalseTest.java
@@ -16,38 +16,41 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsInOutSynchronousFalseTest extends AbstractJMSTest {
 
     private static String beforeThreadName;
     private static String afterThreadName;
+
     private final String url = "activemq:queue:JmsInOutSynchronousFalseTest?synchronous=false";
 
+    private String reply;
+
+    @BeforeEach
+    public void sendMessage() {
+        reply = template.requestBody("direct:start", "Hello World", String.class);
+    }
+
+    @Timeout(30)
     @Test
     public void testSynchronous() {
-        String reply = template.requestBody("direct:start", "Hello World", String.class);
         assertEquals("Bye World", reply);
-
         assertFalse(beforeThreadName.equalsIgnoreCase(afterThreadName), "Should use different threads");
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousTest.java
index 56216b053a5..845a3f0d2a6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutSynchronousTest.java
@@ -16,38 +16,39 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsInOutSynchronousTest extends AbstractJMSTest {
 
     private static String beforeThreadName;
     private static String afterThreadName;
+
+    private String reply;
     private final String url = "activemq:queue:JmsInOutSynchronousTest?synchronous=true";
 
+    @BeforeEach
+    public void sendMessage() {
+        reply = template.requestBody("direct:start", "Hello World", String.class);
+    }
+
     @Test
     public void testSynchronous() {
-        String reply = template.requestBody("direct:start", "Hello World", String.class);
         assertEquals("Bye World", reply);
-
         assertTrue(beforeThreadName.equalsIgnoreCase(afterThreadName), "Should use same threads");
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutTransferExchangeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutTransferExchangeTest.java
index 834cbc75b51..a86d8518594 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutTransferExchangeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutTransferExchangeTest.java
@@ -29,7 +29,12 @@ import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.DefaultExchangeHolder;
+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.Timeout;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
@@ -37,7 +42,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-public class JmsInOutTransferExchangeTest extends AbstractJMSTest {
+@Timeout(60)
+public class JmsInOutTransferExchangeTest extends CamelTestSupport {
+
+    @RegisterExtension
+    public ActiveMQService service = ActiveMQServiceFactory.createVMService();
 
     @EndpointInject("mock:transfer")
     protected MockEndpoint transfer;
@@ -48,8 +57,7 @@ public class JmsInOutTransferExchangeTest extends AbstractJMSTest {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+        ConnectionFactory connectionFactory = createConnectionFactory(service);
         camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
         return camelContext;
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutWithNoOutBodyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutWithNoOutBodyTest.java
index 4523c20b93f..7f589416571 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutWithNoOutBodyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOutWithNoOutBodyTest.java
@@ -16,19 +16,15 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-/**
- *
- */
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsInOutWithNoOutBodyTest extends AbstractJMSTest {
 
     @Test
@@ -38,12 +34,8 @@ public class JmsInOutWithNoOutBodyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsIncludeAllJMSXPropertiesTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsIncludeAllJMSXPropertiesTest.java
index a62a469e84b..86bb1339147 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsIncludeAllJMSXPropertiesTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsIncludeAllJMSXPropertiesTest.java
@@ -19,15 +19,11 @@ package org.apache.camel.component.jms;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsIncludeAllJMSXPropertiesTest extends AbstractJMSTest {
 
     @Test
@@ -48,14 +44,15 @@ public class JmsIncludeAllJMSXPropertiesTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         jms.getConfiguration().setIncludeAllJMSXProperties(true);
-        camelContext.addComponent("activemq", jms);
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverTest.java
index 9ad13342d79..f4997e37e5e 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverTest.java
@@ -20,7 +20,13 @@ import javax.jms.ConnectionFactory;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+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.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
@@ -29,14 +35,21 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 /**
  * Unit test for Camel loadbalancer failover with JMS
  */
-public class JmsLoadBalanceFailoverTest extends AbstractJMSTest {
+@Timeout(10)
+public class JmsLoadBalanceFailoverTest extends CamelTestSupport {
 
-    @Test
-    public void testFailover() throws Exception {
+    @RegisterExtension
+    public ActiveMQService service = ActiveMQServiceFactory.createVMService();
+
+    @BeforeEach
+    void configureTest() {
         getMockEndpoint("mock:foo").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:bar").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
+    }
 
+    @Test
+    public void testFailover() throws Exception {
         String out = template.requestBody("direct:start", "Hello World", String.class);
         assertEquals("Bye World", out);
 
@@ -70,8 +83,7 @@ public class JmsLoadBalanceFailoverTest extends AbstractJMSTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+        ConnectionFactory connectionFactory = createConnectionFactory(service);
         camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
 
         return camelContext;
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest.java
index 1edc039375e..6a6f34773d2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest.java
@@ -16,21 +16,20 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.activemq.command.ActiveMQTextMessage;
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test for Camel loadbalancer failover with JMS
  */
+@Timeout(10)
 public class JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest extends AbstractJMSTest {
     private final boolean forceSendOriginalMessage = true;
 
@@ -119,18 +118,17 @@ public class JmsLoadBalanceFailoverWithForceSendOriginalJmsMessageTest extends A
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "jms";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
         // we want to transfer the exception
         jms.getConfiguration().setTransferException(true);
-
-        camelContext.addComponent("jms", jms);
-
-        return camelContext;
+        return jms;
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest.java
index b807cd00f90..20d9048a81a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest extends AbstractJMSTest {
 
     @EndpointInject("mock:result")
@@ -56,13 +51,8 @@ public class JmsMessageAsOriginalMessageInDefaultUnitOfWorkTest extends Abstract
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
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 82b072d040f..11e241eadf8 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
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test setting null body
  */
@@ -123,14 +117,8 @@ public class JmsMessageBodySetNullTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyComponentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyComponentTest.java
index 4245c45bf96..9d66e15ec69 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyComponentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyComponentTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
@@ -25,11 +24,9 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsMessageCreatedStrategyComponentTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -46,17 +43,15 @@ public class JmsMessageCreatedStrategyComponentTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
+    public String getComponentName() {
+        return componentName;
+    }
 
-        JmsComponent jms = camelContext.getComponent(componentName, JmsComponent.class);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         jms.setMessageCreatedStrategy(new MyMessageCreatedStrategy());
-
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyEndpointTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyEndpointTest.java
index 86bb113c12c..8ad2695653b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyEndpointTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageCreatedStrategyEndpointTest.java
@@ -16,21 +16,16 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
 
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsMessageCreatedStrategyEndpointTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -53,14 +48,8 @@ public class JmsMessageCreatedStrategyEndpointTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageIDNotOverridenAMQTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageIDNotOverridenAMQTest.java
index 951af5dba64..898f88eb275 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageIDNotOverridenAMQTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageIDNotOverridenAMQTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
@@ -25,10 +24,9 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -58,16 +56,15 @@ public class JmsMessageIDNotOverridenAMQTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        JmsComponent jms = camelContext.getComponent("activemq", JmsComponent.class);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         jms.setMessageCreatedStrategy(new MyMessageCreatedStrategy());
-
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTimestampTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTimestampTest.java
index 382ce56901d..1ddac4bcf53 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTimestampTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTimestampTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsMessageTimestampTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -37,27 +31,21 @@ public class JmsMessageTimestampTest extends AbstractJMSTest {
         result.expectedMessageCount(1);
         result.message(0).header(Exchange.MESSAGE_TIMESTAMP).isGreaterThan(0);
 
-        template.sendBody("activemq:queue:hello", "Hello World");
+        template.sendBody("activemq:queue:JmsMessageTimestampTest", "Hello World");
 
         result.assertIsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").to("mock:result");
+                from("activemq:queue:JmsMessageTimestampTest").to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTypeTest.java
index 158ff43bc4c..91dfebcf145 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTypeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMessageTypeTest.java
@@ -20,8 +20,6 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.TypeConversionException;
@@ -30,21 +28,20 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.TypeConverterSupport;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.component.jms.JmsConstants.JMS_MESSAGE_TYPE;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsMessageTypeTest extends AbstractJMSTest {
 
+    @Override
+    protected String getComponentName() {
+        return "jms";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
         camelContext.getTypeConverterRegistry().addTypeConverter(byte[].class, MyFooBean.class, new MyFooBean());
         camelContext.getTypeConverterRegistry().addTypeConverter(String.class, MyFooBean.class, new MyFooBean());
         camelContext.getTypeConverterRegistry().addTypeConverter(Map.class, MyFooBean.class, new MyFooBean());
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMultipleConsumersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMultipleConsumersTest.java
index ab4c5bbb4bd..dc8e08a6573 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMultipleConsumersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsMultipleConsumersTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsMultipleConsumersTest extends AbstractJMSTest {
 
@@ -76,14 +70,8 @@ public class JmsMultipleConsumersTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNoRequestTimeoutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNoRequestTimeoutTest.java
index 8c2963503a6..38f80ab6016 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNoRequestTimeoutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNoRequestTimeoutTest.java
@@ -16,42 +16,36 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsNoRequestTimeoutTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
 
     @Test
     public void testNoRequestTimeout() {
-        String reply = template.requestBody("activemq:queue:hello?requestTimeout=0", "Hello World", String.class);
+        String reply
+                = template.requestBody("activemq:queue:JmsNoRequestTimeoutTest?requestTimeout=0", "Hello World", String.class);
         assertEquals("Bye World", reply);
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").transform(constant("Bye World"));
+                from("activemq:queue:JmsNoRequestTimeoutTest").transform(constant("Bye World"));
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotInOnlyIncludeSentJMSMessageIDTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotInOnlyIncludeSentJMSMessageIDTest.java
index ca6ee136000..a0713900733 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotInOnlyIncludeSentJMSMessageIDTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotInOnlyIncludeSentJMSMessageIDTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -55,12 +50,8 @@ public class JmsNotInOnlyIncludeSentJMSMessageIDTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotIncludeAllJMSXPropertiesTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotIncludeAllJMSXPropertiesTest.java
index e3fc5a6cfbd..25d1ea92b84 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotIncludeAllJMSXPropertiesTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsNotIncludeAllJMSXPropertiesTest.java
@@ -19,15 +19,11 @@ package org.apache.camel.component.jms;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsNotIncludeAllJMSXPropertiesTest extends AbstractJMSTest {
 
     @Test
@@ -48,14 +44,15 @@ public class JmsNotIncludeAllJMSXPropertiesTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         jms.getConfiguration().setIncludeAllJMSXProperties(false);
-        camelContext.addComponent("activemq", jms);
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionAndInterceptAndOnExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionAndInterceptAndOnExceptionTest.java
index 990b8bf4b49..9f27683ef34 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionAndInterceptAndOnExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionAndInterceptAndOnExceptionTest.java
@@ -16,18 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsOnCompletionAndInterceptAndOnExceptionTest extends AbstractJMSTest {
 
     @Test
@@ -81,14 +75,8 @@ public class JmsOnCompletionAndInterceptAndOnExceptionTest extends AbstractJMSTe
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     public static class MyProcessor implements Processor {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionTest.java
index 0c95915b424..99c4668a18b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsOnCompletionTest.java
@@ -16,18 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test for useOriginalBody unit test
  */
@@ -96,14 +90,8 @@ public class JmsOnCompletionTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsPollingConsumerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsPollingConsumerTest.java
index 70549fc0736..4cb8f091bcc 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsPollingConsumerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsPollingConsumerTest.java
@@ -20,9 +20,6 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.AfterEach;
@@ -30,8 +27,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -48,7 +43,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
             // use another thread for polling consumer to demonstrate that we can wait before
             // the message is sent to the queue
             Executors.newSingleThreadExecutor().execute(() -> {
-                String body = consumer.receiveBody("activemq:queue.JmsPollingConsumerTest.start", String.class);
+                String body = consumer.receiveBody("activemq:queue.JmsPollingConsumerTest.start.wait", String.class);
                 template.sendBody("activemq:queue.JmsPollingConsumerTest.foo", body + " Claus");
                 latch.countDown();
             });
@@ -65,7 +60,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
              */
             assertFalse(latch.await(1, TimeUnit.SECONDS));
 
-            template.sendBody("direct:start", "Hello");
+            template.sendBody("direct:start.wait", "Hello");
 
             assertMockEndpointsSatisfied();
         }
@@ -178,13 +173,8 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -194,6 +184,8 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
             public void configure() {
                 from("direct:start").to("activemq:queue.JmsPollingConsumerTest.start");
 
+                from("direct:start.wait").to("activemq:queue.JmsPollingConsumerTest.start.wait");
+
                 from("activemq:queue.JmsPollingConsumerTest.foo").to("mock:result");
             }
         };
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentTest.java
index 4d27554e1f1..0214cc7e08f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentTest.java
@@ -19,14 +19,9 @@ package org.apache.camel.component.jms;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.body;
 
 public class JmsProducerConcurrentTest extends AbstractJMSTest {
@@ -59,14 +54,8 @@ public class JmsProducerConcurrentTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentWithReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentWithReplyTest.java
index 1c698abca48..a41fd8a91bc 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentWithReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerConcurrentWithReplyTest.java
@@ -22,17 +22,16 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.body;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsProducerConcurrentWithReplyTest extends AbstractJMSTest {
 
     @Test
@@ -67,14 +66,8 @@ public class JmsProducerConcurrentWithReplyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerWithJMSHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerWithJMSHeaderTest.java
index b71ebe358dd..3cb4dd33c91 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerWithJMSHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsProducerWithJMSHeaderTest.java
@@ -20,33 +20,26 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 
 import org.apache.activemq.command.ActiveMQQueue;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-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.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.component.jms.JmsConstants.JMS_X_GROUP_ID;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
 
-public class JmsProducerWithJMSHeaderTest extends CamelTestSupport {
-
-    // This one needs a different lifecycle, so we cannot extend AbstractJMSTest
-    @RegisterExtension
-    private ActiveMQService service = ActiveMQServiceFactory.createVMService();
+@Tags({ @Tag("slow") })
+@Timeout(60)
+public class JmsProducerWithJMSHeaderTest extends AbstractJMSTest {
 
     @Test
     public void testInOnlyJMSPrioritory() throws Exception {
@@ -313,14 +306,8 @@ public class JmsProducerWithJMSHeaderTest extends CamelTestSupport {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsQosRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsQosRouteTest.java
index 7ab3697c9d4..3e5c292a5e5 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsQosRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsQosRouteTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsQosRouteTest extends AbstractJMSTest {
     protected String componentName = "activemq";
 
@@ -64,14 +58,8 @@ public class JmsQosRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRemoveHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRemoveHeaderTest.java
index 6e8aa91d63b..a8126db2a23 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRemoveHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRemoveHeaderTest.java
@@ -19,16 +19,10 @@ package org.apache.camel.component.jms;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsRemoveHeaderTest extends AbstractJMSTest {
 
     @Test
@@ -50,14 +44,8 @@ public class JmsRemoveHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyCorrelationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyCorrelationTest.java
index 1cba40b0669..5abb1a1f795 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyCorrelationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyCorrelationTest.java
@@ -27,15 +27,9 @@ import org.apache.camel.Message;
 import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-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.TestInstance;
-import org.junit.jupiter.api.extension.RegisterExtension;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -45,10 +39,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
  * Tests how the correlation between request and reply is done
  */
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
-public class JmsRequestReplyCorrelationTest extends CamelTestSupport {
-    @RegisterExtension
-    public static ActiveMQService service = ActiveMQServiceFactory.createVMServiceInstance();
-
+public class JmsRequestReplyCorrelationTest extends AbstractJMSTest {
     private static final String REPLY_BODY = "Bye World";
 
     /**
@@ -235,19 +226,21 @@ public class JmsRequestReplyCorrelationTest extends CamelTestSupport {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "jms";
+    }
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        JmsComponent jmsComponent = jmsComponentAutoAcknowledge(connectionFactory);
-        jmsComponent.getConfiguration().setUseMessageIDAsCorrelationID(false);
-        camelContext.addComponent("jms", jmsComponent);
+    @Override
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
+        final JmsComponent component1 = super.setupComponent(camelContext, connectionFactory, componentName);
+        final JmsComponent component2 = super.setupComponent(camelContext, connectionFactory, componentName);
 
-        JmsComponent jmsComponent2 = jmsComponentAutoAcknowledge(connectionFactory);
-        jmsComponent2.getConfiguration().setUseMessageIDAsCorrelationID(true);
-        camelContext.addComponent("jms2", jmsComponent2);
+        component1.getConfiguration().setUseMessageIDAsCorrelationID(false);
+        component2.getConfiguration().setUseMessageIDAsCorrelationID(true);
+        camelContext.addComponent("jms2", component2);
 
-        return camelContext;
+        return component1;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToComponentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToComponentTest.java
index 8f2ae51b20d..021630f87df 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToComponentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToComponentTest.java
@@ -16,15 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.apache.camel.util.StopWatch;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -58,15 +55,16 @@ public class JmsRequestReplyExclusiveReplyToComponentTest extends AbstractJMSTes
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jms = super.setupComponent(camelContext, service, componentName);
         // mark the reply to type as exclusive on the component
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
         jms.getConfiguration().setReplyToType(ReplyToType.Exclusive);
-        camelContext.addComponent("activemq", jms);
-        return camelContext;
+        return jms;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java
index 8ee96dc0f70..505d4ba2ab3 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java
@@ -21,17 +21,14 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.util.StopWatch;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -42,11 +39,24 @@ public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTe
 
     private final int size = 100;
     private final CountDownLatch latch = new CountDownLatch(size);
+    private ExecutorService executor;
+
+    @BeforeEach
+    void setUpExecutor() {
+        executor = Executors.newFixedThreadPool(10);
+    }
+
+    @AfterEach
+    void cleanupExecutor() throws InterruptedException {
+        // just sleep a bit before shutting down
+        Thread.sleep(1000);
+        executor.shutdownNow();
+    }
 
     @Test
     public void testJmsRequestReplyExclusiveFixedReplyTo() throws Exception {
         StopWatch watch = new StopWatch();
-        ExecutorService executor = Executors.newFixedThreadPool(10);
+
         for (int i = 0; i < size; i++) {
             final Integer num = i;
             executor.submit(() -> {
@@ -65,20 +75,11 @@ public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTe
 
         long delta = watch.taken();
         LOG.info("Took {} millis", delta);
-
-        // just sleep a bit before shutting down
-        Thread.sleep(1000);
-
-        executor.shutdownNow();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToRemoveAddRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToRemoveAddRouteTest.java
index 4f453b2d7f7..2c8c198d649 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToRemoveAddRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToRemoveAddRouteTest.java
@@ -16,14 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsRequestReplyExclusiveReplyToRemoveAddRouteTest extends AbstractJMSTest {
@@ -54,12 +49,8 @@ public class JmsRequestReplyExclusiveReplyToRemoveAddRouteTest extends AbstractJ
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToTest.java
index 279d6798aa9..28444fb9710 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyExclusiveReplyToTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.FailedToCreateProducerException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.util.StopWatch;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -78,12 +73,8 @@ public class JmsRequestReplyExclusiveReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyFixedReplyToInEndpointTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyFixedReplyToInEndpointTest.java
index 7a526263dd9..d3848d4ac76 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyFixedReplyToInEndpointTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyFixedReplyToInEndpointTest.java
@@ -16,18 +16,17 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Timeout(60)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRequestReplyFixedReplyToInEndpointTest extends AbstractJMSTest {
 
     @Test
@@ -35,6 +34,7 @@ public class JmsRequestReplyFixedReplyToInEndpointTest extends AbstractJMSTest {
         Exchange reply = template.request("activemq:queue:JmsRequestReplyFixedReplyToInEndpointTest",
                 exchange -> exchange.getIn().setBody("World"));
         assertEquals("Hello World", reply.getMessage().getBody());
+
         assertTrue(reply.getMessage().hasHeaders(), "Should have headers");
         String replyTo = reply.getMessage().getHeader("JMSReplyTo", String.class);
         assertTrue(replyTo.startsWith("temp-queue"), "Should be a temp queue");
@@ -71,12 +71,8 @@ public class JmsRequestReplyFixedReplyToInEndpointTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java
index e7ec3aaff17..30c2de1fe74 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java
@@ -31,8 +31,6 @@ import org.apache.camel.Header;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -77,15 +75,16 @@ public class JmsRequestReplyManualReplyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
+    @Override
+    protected JmsComponent setupComponent(
+            CamelContext camelContext, ConnectionFactory connectionFactory, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, connectionFactory, componentName);
 
         jms = new JmsTemplate(connectionFactory);
-        return camelContext;
+        return component;
     }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java
index 8536a4d83ac..e98f4e8dc6f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java
@@ -16,17 +16,13 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 
 import org.apache.camel.Body;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Consume;
 import org.apache.camel.Header;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsRequestReplyManualWithJMSReplyToTest extends AbstractJMSTest {
@@ -59,13 +55,8 @@ public class JmsRequestReplyManualWithJMSReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest.java
index c32480cf553..8f65d4c5f62 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest.java
@@ -16,19 +16,15 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest extends AbstractJMSTest {
 
     private static final Logger LOG = LoggerFactory.getLogger(JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest.class);
@@ -52,14 +48,8 @@ public class JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest extends Abs
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyReplyToOverrideTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyReplyToOverrideTest.java
index 80d3097239e..0b4c9cab079 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyReplyToOverrideTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyReplyToOverrideTest.java
@@ -16,19 +16,17 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Message;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsRequestReplyReplyToOverrideTest extends AbstractJMSTest {
@@ -59,15 +57,18 @@ public class JmsRequestReplyReplyToOverrideTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jmsComponent = jmsComponentAutoAcknowledge(connectionFactory);
+    protected String getComponentName() {
+        return "jms";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent jmsComponent = super.setupComponent(camelContext, service, componentName);
+
         jmsComponent.getConfiguration().setReplyTo("baz");
         jmsComponent.getConfiguration().setReplyToOverride("JmsRequestReplyReplyToOverrideTest.reply");
-        camelContext.addComponent("jms", jmsComponent);
-        return camelContext;
+
+        return jmsComponent;
     }
 
     private class Responder implements Runnable {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplySharedReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplySharedReplyToTest.java
index b12a70994ed..529d0ef20c9 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplySharedReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplySharedReplyToTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.util.StopWatch;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -58,12 +53,8 @@ public class JmsRequestReplySharedReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTemporaryCacheNoneTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTemporaryCacheNoneTest.java
index 93ec9746ead..6e12eac01b4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTemporaryCacheNoneTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTemporaryCacheNoneTest.java
@@ -16,36 +16,22 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.fail;
 
-/**
- *
- */
 public class JmsRequestReplyTemporaryCacheNoneTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
index 45562639c75..8a00334de80 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
@@ -18,17 +18,11 @@ package org.apache.camel.component.jms;
 
 import java.util.concurrent.ThreadLocalRandom;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsRouteTest extends AbstractJMSTest {
     protected MockEndpoint resultEndpoint;
     protected String componentName = "activemq";
@@ -77,14 +71,8 @@ public class JmsRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java
index 68538194fc5..58da615e276 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutCheckerIntervalTest.java
@@ -16,16 +16,14 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -33,6 +31,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 /**
  * Unit test for testing request timeout with a InOut exchange.
  */
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRouteTimeoutCheckerIntervalTest extends AbstractJMSTest {
 
     @Test
@@ -57,17 +56,17 @@ public class JmsRouteTimeoutCheckerIntervalTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent activmq = jmsComponentAutoAcknowledge(connectionFactory);
-        // check 4 times per second
-        activmq.getConfiguration().setRequestTimeoutCheckerInterval(250);
-        camelContext.addComponent("activemq", activmq);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        return camelContext;
+        // check 4 times per second
+        component.getConfiguration().setRequestTimeoutCheckerInterval(250);
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
index 0bb9b8f2315..0ae98c36a28 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTimeoutTest.java
@@ -16,16 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -33,13 +29,14 @@ import static org.junit.jupiter.api.Assertions.fail;
 /**
  * Unit test for testing request timeout with a InOut exchange.
  */
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRouteTimeoutTest extends AbstractJMSTest {
 
     @Test
     public void testTimeout() {
         try {
             // send a in-out with a timeout for 1 sec 
-            template.requestBody("activemq:queue:slow?requestTimeout=1000", "Hello World");
+            template.requestBody("activemq:queue:JmsRouteTimeoutTest?requestTimeout=1000", "Hello World");
             fail("Should have timed out with an exception");
         } catch (RuntimeCamelException e) {
             assertTrue(e.getCause() instanceof ExchangeTimedOutException, "Should have timed out with an exception");
@@ -50,27 +47,21 @@ public class JmsRouteTimeoutTest extends AbstractJMSTest {
     public void testNoTimeout() {
         // START SNIPPET: e1
         // send a in-out with a timeout for 5 sec
-        Object out = template.requestBody("activemq:queue:slow?requestTimeout=5000", "Hello World");
+        Object out = template.requestBody("activemq:queue:JmsRouteTimeoutTest?requestTimeout=5000", "Hello World");
         // END SNIPPET: e1
         assertEquals("Bye World", out);
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:slow").delay(3000).transform(constant("Bye World"));
+                from("activemq:queue:JmsRouteTimeoutTest").delay(3000).transform(constant("Bye World"));
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
index 58ff2112d3f..3c834c5fc84 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteToFileTest.java
@@ -18,16 +18,11 @@ package org.apache.camel.component.jms;
 
 import java.io.File;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.converter.IOConverter;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -61,14 +56,8 @@ public class JmsRouteToFileTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingDifferentHeadersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingDifferentHeadersTest.java
index a61a89422a4..d3eb68f9bdd 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingDifferentHeadersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingDifferentHeadersTest.java
@@ -19,16 +19,10 @@ package org.apache.camel.component.jms;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsRouteUsingDifferentHeadersTest extends AbstractJMSTest {
 
     @Test
@@ -60,14 +54,8 @@ public class JmsRouteUsingDifferentHeadersTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingJMSXGroupTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingJMSXGroupTest.java
index d23f53f560b..a20994885f6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingJMSXGroupTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteUsingJMSXGroupTest.java
@@ -19,15 +19,10 @@ package org.apache.camel.component.jms;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.component.jms.JmsConstants.JMS_X_GROUP_ID;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.body;
 
 public class JmsRouteUsingJMSXGroupTest extends AbstractJMSTest {
@@ -62,14 +57,8 @@ public class JmsRouteUsingJMSXGroupTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("jms", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithCustomListenerContainerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithCustomListenerContainerTest.java
index e582af09c8b..111fb324bc3 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithCustomListenerContainerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithCustomListenerContainerTest.java
@@ -16,25 +16,22 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
 import org.springframework.jms.listener.AbstractMessageListenerContainer;
 import org.springframework.jms.listener.DefaultMessageListenerContainer;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test inspired by user forum
  */
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRouteWithCustomListenerContainerTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -53,7 +50,7 @@ public class JmsRouteWithCustomListenerContainerTest extends AbstractJMSTest {
         MockEndpoint order = getMockEndpoint("mock:topic");
         order.expectedBodiesReceived("Camel in Action");
 
-        Object out = template.requestBody("activemq:queue:inbox", "Camel in Action");
+        Object out = template.requestBody("activemq:queue:JmsRouteWithCustomListenerContainerTest", "Camel in Action");
         assertEquals("OK: Camel in Action", out);
 
         assertMockEndpointsSatisfied();
@@ -63,21 +60,16 @@ public class JmsRouteWithCustomListenerContainerTest extends AbstractJMSTest {
         assertEquals(ExchangePattern.InOnly, order.getReceivedExchanges().get(0).getPattern());
 
         JmsEndpoint jmsEndpoint = getMandatoryEndpoint(
-                "activemq:queue:inbox?messageListenerContainerFactory=#myListenerContainerFactory", JmsEndpoint.class);
+                "activemq:queue:JmsRouteWithCustomListenerContainerTest?messageListenerContainerFactory=#myListenerContainerFactory",
+                JmsEndpoint.class);
         assertIsInstanceOf(MyListenerContainerFactory.class, jmsEndpoint.getMessageListenerContainerFactory());
         assertEquals(ConsumerType.Custom, jmsEndpoint.getConfiguration().getConsumerType());
         assertIsInstanceOf(MyListenerContainer.class, jmsEndpoint.createMessageListenerContainer());
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
@@ -85,7 +77,8 @@ public class JmsRouteWithCustomListenerContainerTest extends AbstractJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("activemq:queue:inbox?messageListenerContainerFactory=#myListenerContainerFactory").to("mock:inbox")
+                from("activemq:queue:JmsRouteWithCustomListenerContainerTest?messageListenerContainerFactory=#myListenerContainerFactory")
+                        .to("mock:inbox")
                         .to(ExchangePattern.InOnly, "activemq:topic:order").bean("orderService",
                                 "handleOrder");
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java
index 869986edff0..e639800daaf 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithDefaultKeyFormatStrategyTest.java
@@ -19,16 +19,11 @@ package org.apache.camel.component.jms;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.fail;
 
 public class JmsRouteWithDefaultKeyFormatStrategyTest extends AbstractJMSTest {
@@ -87,14 +82,8 @@ public class JmsRouteWithDefaultKeyFormatStrategyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyAndMultipleAcksTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyAndMultipleAcksTest.java
index 1c50ace3e9d..f00cc10466a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyAndMultipleAcksTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyAndMultipleAcksTest.java
@@ -16,19 +16,18 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(10)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsRouteWithInOnlyAndMultipleAcksTest extends AbstractJMSTest {
 
     protected String componentName = "amq";
@@ -55,21 +54,16 @@ public class JmsRouteWithInOnlyAndMultipleAcksTest extends AbstractJMSTest {
         notifCollector.expectedHeaderReceived("JMSCorrelationID", orderId);
         notifCollector.setResultWaitTime(10000);
 
-        Object out = template.requestBodyAndHeader("amq:queue:inbox", "Camel in Action", "JMSCorrelationID", orderId);
+        Object out = template.requestBodyAndHeader("amq:queue:JmsRouteWithInOnlyAndMultipleAcksTest", "Camel in Action",
+                "JMSCorrelationID", orderId);
         assertEquals("OK: Camel in Action", out);
 
         assertMockEndpointsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
@@ -82,9 +76,10 @@ public class JmsRouteWithInOnlyAndMultipleAcksTest extends AbstractJMSTest {
                 // topic subscribers, lets a bean handle
                 // the order and then delivers a reply back to
                 // the original order request initiator
-                from("amq:queue:inbox").to("mock:inbox").to(ExchangePattern.InOnly, "amq:topic:orderServiceNotification").bean(
-                        "orderService",
-                        "handleOrder");
+                from("amq:queue:JmsRouteWithInOnlyAndMultipleAcksTest").to("mock:inbox")
+                        .to(ExchangePattern.InOnly, "amq:topic:orderServiceNotification").bean(
+                                "orderService",
+                                "handleOrder");
 
                 // this route collects an order request notification
                 // and sends back an acknowledgment back to a queue
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyTest.java
index ffd17180ae2..ebf4ed6528d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteWithInOnlyTest.java
@@ -16,22 +16,21 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test inspired by user forum
  */
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
+@Timeout(10)
 public class JmsRouteWithInOnlyTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -47,7 +46,7 @@ public class JmsRouteWithInOnlyTest extends AbstractJMSTest {
         MockEndpoint order = getMockEndpoint("mock:topic");
         order.expectedBodiesReceived("Camel in Action");
 
-        Object out = template.requestBody("activemq:queue:inbox", "Camel in Action");
+        Object out = template.requestBody("activemq:queue:JmsRouteWithInOnlyTest", "Camel in Action");
         assertEquals("OK: Camel in Action", out);
 
         assertMockEndpointsSatisfied();
@@ -58,14 +57,8 @@ public class JmsRouteWithInOnlyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
@@ -73,11 +66,12 @@ public class JmsRouteWithInOnlyTest extends AbstractJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("activemq:queue:inbox").to("mock:inbox").to(ExchangePattern.InOnly, "activemq:topic:order").bean(
-                        "orderService",
-                        "handleOrder");
+                from("activemq:queue:JmsRouteWithInOnlyTest").to("mock:inbox")
+                        .to(ExchangePattern.InOnly, "activemq:topic:JmsRouteWithInOnlyTest.order").bean(
+                                "orderService",
+                                "handleOrder");
 
-                from("activemq:topic:order").to("mock:topic");
+                from("activemq:topic:JmsRouteWithInOnlyTest.order").to("mock:topic");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipInOutTest.java
index 99f4a1b86ac..191fd866209 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipInOutTest.java
@@ -18,21 +18,16 @@ package org.apache.camel.component.jms;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Headers;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
-/**
- *
- */
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
+@Timeout(10)
 public class JmsRoutingSlipInOutTest extends AbstractJMSTest {
 
     @BindToRegistry("myBean")
@@ -48,14 +43,8 @@ public class JmsRoutingSlipInOutTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipTest.java
index 2de229a646d..441286c439a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRoutingSlipTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test from JMS -> routing slip
  */
@@ -37,27 +31,21 @@ public class JmsRoutingSlipTest extends AbstractJMSTest {
         getMockEndpoint("mock:a").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:b").expectedBodiesReceived("Hello World");
 
-        template.sendBodyAndHeader("activemq:queue:hello", "Hello World", "myslip", "mock:a#mock:b");
+        template.sendBodyAndHeader("activemq:queue:JmsRoutingSlipTest", "Hello World", "myslip", "mock:a#mock:b");
 
         assertMockEndpointsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").routingSlip(header("myslip"), "#");
+                from("activemq:queue:JmsRoutingSlipTest").routingSlip(header("myslip"), "#");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorInTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorInTest.java
index 9e17fb666d8..441b8966675 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorInTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorInTest.java
@@ -16,17 +16,14 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(30)
 public class JmsSelectorInTest extends AbstractJMSTest {
 
     @Test
@@ -46,14 +43,8 @@ public class JmsSelectorInTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent component = jmsComponentAutoAcknowledge(connectionFactory);
-        camelContext.addComponent("activemq", component);
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorOptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorOptionTest.java
index ea960e53f9c..d7a0f28f54a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorOptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorOptionTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -48,25 +43,25 @@ public class JmsSelectorOptionTest extends AbstractJMSTest {
         endpointC.expectedBodiesReceived("Message1", "Message2");
         endpointC.expectedMessageCount(2);
 
-        template.sendBodyAndHeader("activemq:queue:hello", "A blue car!", "color", "blue");
-        template.sendBodyAndHeader("activemq:queue:hello", "A red car!", "color", "red");
-        template.sendBodyAndHeader("activemq:queue:hello", "A blue car, again!", "color", "blue");
-        template.sendBodyAndHeader("activemq:queue:hello", "Message1", "SIZE_NUMBER", 1505);
-        template.sendBodyAndHeader("activemq:queue:hello", "Message3", "SIZE_NUMBER", 1300);
-        template.sendBodyAndHeader("activemq:queue:hello", "Message2", "SIZE_NUMBER", 1600);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "A blue car!", "color", "blue");
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "A red car!", "color", "red");
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "A blue car, again!", "color", "blue");
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "Message1", "SIZE_NUMBER", 1505);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "Message3", "SIZE_NUMBER", 1300);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.hello", "Message2", "SIZE_NUMBER", 1600);
         assertMockEndpointsSatisfied();
     }
 
     @Test
     public void testConsumerTemplate() {
-        template.sendBodyAndHeader("activemq:queue:consumer", "Message1", "SIZE_NUMBER", 1505);
-        template.sendBodyAndHeader("activemq:queue:consumer", "Message3", "SIZE_NUMBER", 1300);
-        template.sendBodyAndHeader("activemq:queue:consumer", "Message2", "SIZE_NUMBER", 1600);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.consumer", "Message1", "SIZE_NUMBER", 1505);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.consumer", "Message3", "SIZE_NUMBER", 1300);
+        template.sendBodyAndHeader("activemq:queue:JmsSelectorOptionTest.consumer", "Message2", "SIZE_NUMBER", 1600);
 
         // process every exchange which is ready. If no exchange is left break
         // the loop
         while (true) {
-            Exchange ex = consumer.receiveNoWait("activemq:queue:consumer?selector=SIZE_NUMBER<1500");
+            Exchange ex = consumer.receiveNoWait("activemq:queue:JmsSelectorOptionTest.consumer?selector=SIZE_NUMBER<1500");
             if (ex != null) {
                 Message message = ex.getIn();
                 int size = message.getHeader("SIZE_NUMBER", int.class);
@@ -76,27 +71,20 @@ public class JmsSelectorOptionTest extends AbstractJMSTest {
                 break;
             }
         }
-
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello?selector=color='blue'").to("mock:a");
-                from("activemq:queue:hello?selector=color='red'").to("mock:b");
-                from("activemq:queue:hello?selector=SIZE_NUMBER>1500").to("mock:c");
+                from("activemq:queue:JmsSelectorOptionTest.hello?selector=color='blue'").to("mock:a");
+                from("activemq:queue:JmsSelectorOptionTest.hello?selector=color='red'").to("mock:b");
+                from("activemq:queue:JmsSelectorOptionTest.hello?selector=SIZE_NUMBER>1500").to("mock:c");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorTest.java
index 5bb64c3051b..2df6f53cb44 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSelectorTest.java
@@ -18,13 +18,11 @@ package org.apache.camel.component.jms;
 
 import javax.jms.ConnectionFactory;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentTransacted;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 
 public class JmsSelectorTest extends AbstractJMSTest {
 
@@ -44,14 +42,13 @@ public class JmsSelectorTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        return jmsComponentTransacted(connectionFactory);
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent component = jmsComponentTransacted(connectionFactory);
-        camelContext.addComponent("activemq", component);
-        return camelContext;
+    @Override
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSessionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSessionTest.java
index 4cefae604f5..4fd67f602b5 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSessionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSessionTest.java
@@ -16,16 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Session;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JmsSessionTest extends AbstractJMSTest {
@@ -43,14 +39,8 @@ public class JmsSessionTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleHeaderTest.java
index 42a0fb5df05..a9e1888a652 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleHeaderTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsSimpleHeaderTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -66,14 +60,8 @@ public class JmsSimpleHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleInOnlyNoMutateTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleInOnlyNoMutateTest.java
index 8cbb766c2f8..fb7c3a29c3b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleInOnlyNoMutateTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleInOnlyNoMutateTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * A simple in only test that does not mutate the message
  */
@@ -49,14 +43,8 @@ public class JmsSimpleInOnlyNoMutateTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java
index 75cce922ab9..605c4bd1e63 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java
@@ -18,8 +18,6 @@ package org.apache.camel.component.jms;
 
 import java.util.concurrent.CountDownLatch;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
@@ -27,12 +25,11 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -108,17 +105,17 @@ public class JmsSimpleRequestCustomReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        JmsComponent jms = camelContext.getComponent("activemq", JmsComponent.class);
-        // as this is a unit test I dont want to wait 20 sec before timeout occurs, so we use 10
-        jms.getConfiguration().setRequestTimeout(10000);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        return camelContext;
+        // as this is a unit test I don't want to wait 20 sec before timeout occurs, so we use 10
+        component.getConfiguration().setRequestTimeout(10000);
+        return component;
     }
 
     @Override
@@ -129,7 +126,7 @@ public class JmsSimpleRequestCustomReplyToTest extends AbstractJMSTest {
                     assertEquals("Hello World", exchange.getIn().getBody());
 
                     myReplyTo = exchange.getIn().getHeader("MyReplyQeueue", String.class);
-                    LOG.debug("ReplyTo: " + myReplyTo);
+                    LOG.debug("ReplyTo: {}", myReplyTo);
 
                     LOG.debug("Ahh I cannot send a reply. Someone else must do it.");
                     latch.countDown();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestLateReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestLateReplyTest.java
index a520035ba33..f87736a8532 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestLateReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestLateReplyTest.java
@@ -21,19 +21,17 @@ import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -91,17 +89,18 @@ public class JmsSimpleRequestLateReplyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        activeMQComponent = camelContext.getComponent("activemq", JmsComponent.class);
         // as this is a unit test I dont want to wait 20 sec before timeout occurs, so we use 10
-        activeMQComponent.getConfiguration().setRequestTimeout(10000);
+        component.getConfiguration().setRequestTimeout(10000);
 
-        return camelContext;
+        return component;
     }
 
     @Override
@@ -120,8 +119,8 @@ public class JmsSimpleRequestLateReplyTest extends AbstractJMSTest {
                             replyDestination = in.getHeader("JMSReplyTo", Destination.class);
                             cid = in.getHeader("JMSCorrelationID", String.class);
 
-                            LOG.info("ReplyDestination: " + replyDestination);
-                            LOG.info("JMSCorrelationID: " + cid);
+                            LOG.info("ReplyDestination: {}", replyDestination);
+                            LOG.info("JMSCorrelationID: {}", cid);
 
                             LOG.info("Ahh I cannot send a reply. Someone else must do it.");
                             // signal to the other thread to send back the reply message
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReply2Test.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReply2Test.java
index 18df26c1a10..4a660a05a84 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReply2Test.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReply2Test.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -56,14 +51,8 @@ public class JmsSimpleRequestReply2Test extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyFixedReplyQueueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyFixedReplyQueueTest.java
index 4fc1d539851..2bda9d4281a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyFixedReplyQueueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyFixedReplyQueueTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -56,14 +51,8 @@ public class JmsSimpleRequestReplyFixedReplyQueueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java
index 27583d34b1a..6b8c0fc3136 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java
@@ -16,23 +16,22 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * A simple request / reply test
  */
+@Timeout(30)
+@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsSimpleRequestReplyTest extends AbstractJMSTest {
 
     protected String componentName = "activemq";
@@ -67,14 +66,8 @@ public class JmsSimpleRequestReplyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelChainedTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelChainedTest.java
index 5a20b302cfd..b8b85cd78d4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelChainedTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelChainedTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Test that chained request/reply over JMS works in parallel mode with the splitter EIP.
  */
@@ -54,14 +48,8 @@ public class JmsSplitterParallelChainedTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelTest.java
index 8f14aab3a4f..e6da3522580 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSplitterParallelTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsSplitterParallelTest extends AbstractJMSTest {
 
     protected String getUri() {
@@ -44,14 +38,8 @@ public class JmsSplitterParallelTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
index 2b52d9902ea..e2c8a3dfca0 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeNoStreamCachingTest.java
@@ -18,16 +18,13 @@ package org.apache.camel.component.jms;
 
 import java.io.File;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.apache.camel.util.FileUtil;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -41,15 +38,24 @@ public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest {
         super.setUp();
     }
 
+    @Override
+    protected String getComponentName() {
+        return "jms";
+    }
+
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
+
+        component.getConfiguration().setStreamMessageTypeEnabled(true); // turn on streaming
+        return component;
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
         camelContext.setStreamCaching(false);
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
-        jms.getConfiguration().setStreamMessageTypeEnabled(true); // turn on streaming
-        camelContext.addComponent("jms", jms);
         return camelContext;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
index 53d858001ac..2e31df32b64 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsStreamMessageTypeTest.java
@@ -19,22 +19,25 @@ package org.apache.camel.component.jms;
 import java.io.File;
 import java.io.InputStream;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.apache.camel.util.FileUtil;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-@TestInstance(TestInstance.Lifecycle.PER_METHOD)
+/**
+ * This test cannot run in parallel: it reuses the same path for different test iterations
+ */
+@Tags({ @Tag("not-parallel") })
 public class JmsStreamMessageTypeTest extends AbstractJMSTest {
 
     @Override
@@ -45,43 +48,29 @@ public class JmsStreamMessageTypeTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent jms = jmsComponentAutoAcknowledge(connectionFactory);
-        jms.getConfiguration().setStreamMessageTypeEnabled(true); // turn on streaming
-        camelContext.addComponent("jms", jms);
-        return camelContext;
+    protected String getComponentName() {
+        return "jms";
     }
 
-    @Test
-    public void testStreamType() throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-
-        // copy the file
-        FileUtil.copyFile(new File("src/test/data/message1.xml"), new File("target/stream/in/message1.xml"));
-
-        assertMockEndpointsSatisfied();
-
-        Object body = getMockEndpoint("mock:result").getReceivedExchanges().get(0).getIn().getBody();
-        InputStream is = assertIsInstanceOf(InputStream.class, body);
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        // assert on the content of input versus output file
-        String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/message1.xml"));
-        String dstContent
-                = context.getTypeConverter().mandatoryConvertTo(String.class,
-                        new File("target/stream/JmsStreamMessageTypeTest/out/message1.xml"));
-        assertEquals(srcContent, dstContent, "both the source and destination files should have the same content");
+        component.getConfiguration().setStreamMessageTypeEnabled(true); // turn on streaming
+        return component;
     }
 
-    @Test
-    public void testStreamTypeWithBigFile() throws Exception {
+    @ParameterizedTest
+    @ValueSource(strings = { "message1.xml", "message1.txt" })
+    @DisplayName("Tests stream type with both a small (message1.xml) and a large file (message1.txt)")
+    public void testStreamType(String filename) throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
+        final File baseFile = new File("src/test/data", filename);
+        final File sourceFile = new File("target/stream/JmsStreamMessageTypeTest/in/", filename);
+
         // copy the file
-        FileUtil.copyFile(new File("src/test/data/message1.txt"), new File("target/stream/in/message1.txt"));
+        FileUtil.copyFile(baseFile, sourceFile);
 
         assertMockEndpointsSatisfied();
 
@@ -89,10 +78,10 @@ public class JmsStreamMessageTypeTest extends AbstractJMSTest {
         InputStream is = assertIsInstanceOf(InputStream.class, body);
 
         // assert on the content of input versus output file
-        String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/message1.txt"));
+        String srcContent = context.getTypeConverter().mandatoryConvertTo(String.class, new File("src/test/data/", filename));
         String dstContent
                 = context.getTypeConverter().mandatoryConvertTo(String.class,
-                        new File("target/stream/JmsStreamMessageTypeTest/out/message1.txt"));
+                        new File("target/stream/JmsStreamMessageTypeTest/out/", filename));
         assertEquals(srcContent, dstContent, "both the source and destination files should have the same content");
     }
 
@@ -101,7 +90,7 @@ public class JmsStreamMessageTypeTest extends AbstractJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("file:target/stream/in").to("jms:queue:JmsStreamMessageTypeTest");
+                from("file:target/stream/JmsStreamMessageTypeTest/in").to("jms:queue:JmsStreamMessageTypeTest");
 
                 from("jms:queue:JmsStreamMessageTypeTest").to("file:target/stream/JmsStreamMessageTypeTest/out")
                         .to("mock:result");
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToDTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToDTest.java
index 3008d0b174d..0060131d12f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToDTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToDTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsToDTest extends AbstractJMSTest {
 
     @Test
@@ -39,14 +33,8 @@ public class JmsToDTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToTest.java
index 92a5dd04df1..1458b4743e4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsToTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsToTest extends AbstractJMSTest {
 
     @Test
@@ -40,14 +34,8 @@ public class JmsToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransactedRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransactedRouteTest.java
index f4422998923..a3bb93ab6fc 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransactedRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransactedRouteTest.java
@@ -18,13 +18,11 @@ package org.apache.camel.component.jms;
 
 import javax.jms.ConnectionFactory;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentTransacted;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 
 public class JmsTransactedRouteTest extends AbstractJMSTest {
 
@@ -44,14 +42,13 @@ public class JmsTransactedRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        JmsComponent component = jmsComponentTransacted(connectionFactory);
-        camelContext.addComponent("activemq", component);
-        return camelContext;
+    @Override
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        return jmsComponentTransacted(connectionFactory);
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExceptionTest.java
index 9e428710c53..1f94faa35c1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExceptionTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -70,14 +65,8 @@ public class JmsTransferExceptionTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeFromSplitterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeFromSplitterTest.java
index 22cc078846b..e32732aec0d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeFromSplitterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeFromSplitterTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsTransferExchangeFromSplitterTest extends AbstractJMSTest {
 
     protected String getUri() {
@@ -48,14 +42,8 @@ public class JmsTransferExchangeFromSplitterTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
index bd7d3b9ebd8..3c028396ffc 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsTransferExchangeTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsTransferExchangeTest extends AbstractJMSTest {
 
     protected String getUri() {
@@ -73,14 +67,8 @@ public class JmsTransferExchangeTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsUseOriginalBodyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsUseOriginalBodyTest.java
index 70f5af8569f..cd4cc70b725 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsUseOriginalBodyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsUseOriginalBodyTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -95,14 +90,7 @@ public class JmsUseOriginalBodyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
index 05d2d2851d4..5939f4fb80b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXMLRouteTest.java
@@ -18,18 +18,14 @@ package org.apache.camel.component.jms;
 
 import java.io.FileInputStream;
 
-import javax.jms.ConnectionFactory;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.util.xml.StringSource;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -186,14 +182,8 @@ public class JmsXMLRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -207,29 +197,29 @@ public class JmsXMLRouteTest extends AbstractJMSTest {
                 errorHandler(deadLetterChannel("mock:error").redeliveryDelay(0));
 
                 // no need to convert to String as JMS producer can handle XML streams now
-                from("direct:object").to("activemq:queue:object?jmsMessageType=Object");
+                from("direct:object").to("activemq:queue:JmsXMLRouteTest.object?jmsMessageType=Object");
 
                 // no need to convert to String as JMS producer can handle XML streams now
-                from("direct:bytes").to("activemq:queue:bytes?jmsMessageType=Bytes");
+                from("direct:bytes").to("activemq:queue:JmsXMLRouteTest.bytes?jmsMessageType=Bytes");
 
                 // no need to convert to String as JMS producer can handle XML streams now
-                from("direct:default").to("activemq:queue:default");
+                from("direct:default").to("activemq:queue:JmsXMLRouteTest.default");
 
-                from("activemq:queue:object")
+                from("activemq:queue:JmsXMLRouteTest.object")
                         .process(exchange -> {
                             Object body = exchange.getIn().getBody();
                             // should preserve the object as Source
                             assertIsInstanceOf(Source.class, body);
                         }).to("seda:choice");
 
-                from("activemq:queue:bytes")
+                from("activemq:queue:JmsXMLRouteTest.bytes")
                         .process(exchange -> {
                             Object body = exchange.getIn().getBody();
                             // should be a byte array by default
                             assertIsInstanceOf(byte[].class, body);
                         }).to("seda:choice");
 
-                from("activemq:queue:default")
+                from("activemq:queue:JmsXMLRouteTest.default")
                         .to("seda:choice");
 
                 from("seda:choice")
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXPathHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXPathHeaderTest.java
index 44d54c47d92..b26c56c38ed 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXPathHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsXPathHeaderTest.java
@@ -16,15 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * JMS with XPath
  */
@@ -61,14 +55,8 @@ public class JmsXPathHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsEndpointTopicTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsEndpointTopicTest.java
index 53f3f9c3172..c7de5550e85 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsEndpointTopicTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsEndpointTopicTest.java
@@ -18,17 +18,12 @@ package org.apache.camel.component.jms;
 
 import java.util.Set;
 
-import javax.jms.ConnectionFactory;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.DefaultCamelContext;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -43,14 +38,8 @@ public class ManagedJmsEndpointTopicTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() {
-        CamelContext context = new DefaultCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        context.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return context;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     protected MBeanServer getMBeanServer() {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsSelectorTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsSelectorTest.java
index 68266f21241..6b0f6f92589 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsSelectorTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ManagedJmsSelectorTest.java
@@ -30,14 +30,13 @@ 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.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-/**
- *
- */
+@Isolated
 public class ManagedJmsSelectorTest extends CamelTestSupport {
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/MapJmsMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/MapJmsMessageTest.java
index 277ddc329b3..fea405d0b1b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/MapJmsMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/MapJmsMessageTest.java
@@ -17,28 +17,17 @@
 package org.apache.camel.component.jms;
 
 import javax.jms.BytesMessage;
-import javax.jms.ConnectionFactory;
 import javax.jms.TextMessage;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class MapJmsMessageTest extends AbstractJMSTest {
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/PayloadByteArrayJmsTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/PayloadByteArrayJmsTest.java
index f7284f7eed1..127b8eded43 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/PayloadByteArrayJmsTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/PayloadByteArrayJmsTest.java
@@ -22,16 +22,10 @@ import java.io.Reader;
 import java.io.StringReader;
 import java.nio.ByteBuffer;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test that we send payload as byte[] for certain types
  */
@@ -48,7 +42,7 @@ public class PayloadByteArrayJmsTest extends AbstractJMSTest {
 
         Reader body = new StringReader("Hello World");
 
-        template.sendBody("activemq:queue:hello", body);
+        template.sendBody("activemq:queue:PayloadByteArrayJmsTest", body);
 
         assertMockEndpointsSatisfied();
     }
@@ -62,7 +56,7 @@ public class PayloadByteArrayJmsTest extends AbstractJMSTest {
 
         InputStream body = new ByteArrayInputStream("Hello World".getBytes());
 
-        template.sendBody("activemq:queue:hello", body);
+        template.sendBody("activemq:queue:PayloadByteArrayJmsTest", body);
 
         assertMockEndpointsSatisfied();
     }
@@ -76,27 +70,21 @@ public class PayloadByteArrayJmsTest extends AbstractJMSTest {
 
         ByteBuffer body = ByteBuffer.wrap("Hello World".getBytes());
 
-        template.sendBody("activemq:queue:hello", body);
+        template.sendBody("activemq:queue:PayloadByteArrayJmsTest", body);
 
         assertMockEndpointsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent(componentName, jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    public String getComponentName() {
+        return componentName;
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").to("mock:result");
+                from("activemq:queue:PayloadByteArrayJmsTest").to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java
index 4a1c0d01fbd..efbc639f52b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ProduceMessageConverterTest.java
@@ -16,37 +16,26 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
 import javax.jms.TextMessage;
 
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.support.converter.MessageConversionException;
 import org.springframework.jms.support.converter.MessageConverter;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class ProduceMessageConverterTest extends AbstractJMSTest {
 
     @BindToRegistry("myMessageConverter")
     private final MyMessageConverter conv = new MyMessageConverter();
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ReplyToDestinationSelectorNameTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ReplyToDestinationSelectorNameTest.java
index 262c040536f..da1ef8ec9c0 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/ReplyToDestinationSelectorNameTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/ReplyToDestinationSelectorNameTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -47,13 +42,8 @@ public class ReplyToDestinationSelectorNameTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        JmsComponent component = jmsComponentAutoAcknowledge(connectionFactory);
-        camelContext.addComponent("activemq", component);
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/RequestReplyCorrelatedWithCustomHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/RequestReplyCorrelatedWithCustomHeaderTest.java
index b17e09ff032..720fc9a2e8d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/RequestReplyCorrelatedWithCustomHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/RequestReplyCorrelatedWithCustomHeaderTest.java
@@ -16,17 +16,14 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.Body;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Header;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -61,18 +58,15 @@ public class RequestReplyCorrelatedWithCustomHeaderTest extends AbstractJMSTest
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        final CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-
-        final JmsComponent activeMq = jmsComponentAutoAcknowledge(connectionFactory);
-        activeMq.getConfiguration().setCorrelationProperty("CustomCorrelation");
-
-        camelContext.addComponent("activemq", activeMq);
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        return camelContext;
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
+        component.getConfiguration().setCorrelationProperty("CustomCorrelation");
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyExclusiveReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyExclusiveReplyToTest.java
index 9ac4cc578c7..23148b787d6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyExclusiveReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyExclusiveReplyToTest.java
@@ -16,14 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -56,11 +51,8 @@ public class SimpleJmsRequestReplyExclusiveReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplySharedReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplySharedReplyToTest.java
index 4be4cd4768b..8814f4d7961 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplySharedReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplySharedReplyToTest.java
@@ -16,14 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SimpleJmsRequestReplySharedReplyToTest extends AbstractJMSTest {
@@ -48,11 +43,8 @@ public class SimpleJmsRequestReplySharedReplyToTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyTest.java
index a13e6a66159..d23b95bff20 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/SimpleJmsRequestReplyTest.java
@@ -16,14 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class SimpleJmsRequestReplyTest extends AbstractJMSTest {
@@ -43,12 +38,8 @@ public class SimpleJmsRequestReplyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/TwoConsumerOnSameTopicTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/TwoConsumerOnSameTopicTest.java
index 70aeeca5f6c..927a636cc76 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/TwoConsumerOnSameTopicTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/TwoConsumerOnSameTopicTest.java
@@ -17,90 +17,95 @@
 package org.apache.camel.component.jms;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.TestInstance;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-@TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class TwoConsumerOnSameTopicTest extends AbstractPersistentJMSTest {
 
-    @Test
-    public void testTwoConsumerOnSameTopic() throws Exception {
-        sendAMessageToOneTopicWithTwoSubscribers();
+    @Nested
+    class MultipleMessagesTest {
+        @Test
+        public void testMultipleMessagesOnSameTopic() throws Exception {
+            getMockEndpoint("mock:a").expectedBodiesReceived("Hello Camel 1", "Hello Camel 2", "Hello Camel 3",
+                    "Hello Camel 4");
+            getMockEndpoint("mock:b").expectedBodiesReceived("Hello Camel 1", "Hello Camel 2", "Hello Camel 3",
+                    "Hello Camel 4");
+
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 1");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 2");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 3");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 4");
+
+            assertMockEndpointsSatisfied();
+        }
     }
 
-    @Test
-    public void testMultipleMessagesOnSameTopic() throws Exception {
-        // give a bit of time for AMQ to properly setup topic subscribers
-        Thread.sleep(500);
+    @Nested
+    class SingleMessageTest {
 
-        getMockEndpoint("mock:a").expectedBodiesReceived("Hello Camel 1", "Hello Camel 2", "Hello Camel 3", "Hello Camel 4");
-        getMockEndpoint("mock:b").expectedBodiesReceived("Hello Camel 1", "Hello Camel 2", "Hello Camel 3", "Hello Camel 4");
+        @BeforeEach
+        void prepare() throws Exception {
+            getMockEndpoint("mock:a").expectedBodiesReceived("Hello World");
+            getMockEndpoint("mock:b").expectedBodiesReceived("Hello World");
 
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 1");
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 2");
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 3");
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello Camel 4");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello World");
+        }
 
-        assertMockEndpointsSatisfied();
-    }
-
-    @Test
-    public void testStopAndStartOneRoute() throws Exception {
-        sendAMessageToOneTopicWithTwoSubscribers();
-
-        // now stop route A
-        context.getRouteController().stopRoute("a");
+        @Test
+        void testTwoConsumerOnSameTopic() throws Exception {
+            assertMockEndpointsSatisfied();
+        }
 
-        // send new message should go to B only
-        resetMocks();
+        @Test
+        void testStopAndStartOneRoute() throws Exception {
+            assertMockEndpointsSatisfied();
 
-        getMockEndpoint("mock:a").expectedMessageCount(0);
-        getMockEndpoint("mock:b").expectedBodiesReceived("Bye World");
+            // now stop route A
+            context.getRouteController().stopRoute("a");
 
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Bye World");
+            // send new message should go to B only
+            resetMocks();
 
-        assertMockEndpointsSatisfied();
+            getMockEndpoint("mock:a").expectedMessageCount(0);
+            getMockEndpoint("mock:b").expectedBodiesReceived("Bye World");
 
-        // send new message should go to both A and B
-        resetMocks();
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Bye World");
 
-        // now start route A
-        context.getRouteController().startRoute("a");
+            assertMockEndpointsSatisfied();
 
-        sendAMessageToOneTopicWithTwoSubscribers();
-    }
-
-    @Test
-    public void testRemoveOneRoute() throws Exception {
-        sendAMessageToOneTopicWithTwoSubscribers();
+            // send new message should go to both A and B
+            resetMocks();
 
-        // now stop and remove route A
-        context.getRouteController().stopRoute("a");
-        assertTrue(context.removeRoute("a"));
+            // now start route A
+            context.getRouteController().startRoute("a");
 
-        // send new message should go to B only
-        resetMocks();
+            getMockEndpoint("mock:a").expectedBodiesReceived("Hello World");
+            getMockEndpoint("mock:b").expectedBodiesReceived("Hello World");
 
-        getMockEndpoint("mock:a").expectedMessageCount(0);
-        getMockEndpoint("mock:b").expectedBodiesReceived("Bye World");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello World");
+        }
 
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Bye World");
+        @Test
+        void testRemoveOneRoute() throws Exception {
+            assertMockEndpointsSatisfied();
 
-        assertMockEndpointsSatisfied();
-    }
+            // now stop and remove route A
+            context.getRouteController().stopRoute("a");
+            assertTrue(context.removeRoute("a"));
 
-    private void sendAMessageToOneTopicWithTwoSubscribers() throws Exception {
-        // give a bit of time for AMQ to properly setup topic subscribers
-        Thread.sleep(500);
+            // send new message should go to B only
+            resetMocks();
 
-        getMockEndpoint("mock:a").expectedBodiesReceived("Hello World");
-        getMockEndpoint("mock:b").expectedBodiesReceived("Hello World");
+            getMockEndpoint("mock:a").expectedMessageCount(0);
+            getMockEndpoint("mock:b").expectedBodiesReceived("Bye World");
 
-        template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Hello World");
+            template.sendBody("activemq:topic:TwoConsumerOnSameTopicTest", "Bye World");
 
-        assertMockEndpointsSatisfied();
+            assertMockEndpointsSatisfied();
+        }
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/activemq/ActiveMQConsumeWildcardQueuesTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/activemq/ActiveMQConsumeWildcardQueuesTest.java
index 7b1ea0abd53..88f0180a9be 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/activemq/ActiveMQConsumeWildcardQueuesTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/activemq/ActiveMQConsumeWildcardQueuesTest.java
@@ -16,16 +16,10 @@
  */
 package org.apache.camel.component.jms.activemq;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * ActiveMQ specific unit test
  */
@@ -46,14 +40,8 @@ public class ActiveMQConsumeWildcardQueuesTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerFalseTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerFalseTest.java
index 3e1e53caa9f..4922f659ea9 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerFalseTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerFalseTest.java
@@ -16,16 +16,11 @@
  */
 package org.apache.camel.component.jms.async;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  *
  */
@@ -42,16 +37,17 @@ public class AsyncConsumerFalseTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
         camelContext.addComponent("async", new MyAsyncComponent());
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
         return camelContext;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTest.java
index aa7fa24bf02..2819c7740c2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTest.java
@@ -16,20 +16,14 @@
  */
 package org.apache.camel.component.jms.async;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
-/**
- *
- */
+@Timeout(10)
 public class AsyncConsumerInOutTest extends AbstractJMSTest {
 
     @Test
@@ -46,15 +40,16 @@ public class AsyncConsumerInOutTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-
         camelContext.addComponent("async", new MyAsyncComponent());
 
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
         return camelContext;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTwoTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTwoTest.java
index a9054693ada..d1ed937ed46 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTwoTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerInOutTwoTest.java
@@ -16,20 +16,15 @@
  */
 package org.apache.camel.component.jms.async;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-/**
- *
- */
+@Timeout(10)
 public class AsyncConsumerInOutTwoTest extends AbstractJMSTest {
 
     @Test
@@ -40,16 +35,16 @@ public class AsyncConsumerInOutTwoTest extends AbstractJMSTest {
         assertEquals("Bye World", out);
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-
         camelContext.addComponent("async", new MyAsyncComponent());
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
         return camelContext;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerTest.java
index c0099ac7cff..42404d87a6c 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncConsumerTest.java
@@ -16,15 +16,11 @@
  */
 package org.apache.camel.component.jms.async;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-
 /**
  *
  */
@@ -44,16 +40,16 @@ public class AsyncConsumerTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-
         camelContext.addComponent("async", new MyAsyncComponent());
 
-        ConnectionFactory connectionFactory
-                = org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
         return camelContext;
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsInOutTest.java
index 08770ebb693..636137f915b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsInOutTest.java
@@ -18,9 +18,6 @@ package org.apache.camel.component.jms.async;
 
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -30,8 +27,6 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.body;
 
 public class AsyncJmsInOutTest extends AbstractJMSTest {
@@ -39,14 +34,8 @@ public class AsyncJmsInOutTest extends AbstractJMSTest {
     private static final Logger LOG = LoggerFactory.getLogger(AsyncJmsInOutTest.class);
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
@@ -64,7 +53,7 @@ public class AsyncJmsInOutTest extends AbstractJMSTest {
         // just in case we run on slow boxes
         assertMockEndpointsSatisfied(20, TimeUnit.SECONDS);
 
-        LOG.info("Took " + watch.taken() + " ms. to process 100 messages request/reply over JMS");
+        LOG.info("Took {} ms. to process 100 messages request/reply over JMS", watch.taken());
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java
index ef65b836ab4..405d8c405fc 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.async;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
@@ -48,14 +43,8 @@ public class AsyncJmsProducerTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/MyAsyncProducer.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/MyAsyncProducer.java
index 177399b8a56..fce1286728c 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/MyAsyncProducer.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/MyAsyncProducer.java
@@ -50,19 +50,19 @@ public class MyAsyncProducer extends DefaultAsyncProducer {
     public boolean process(final Exchange exchange, final AsyncCallback callback) {
         executor.submit(() -> {
 
-            LOG.info("Simulating a task which takes " + getEndpoint().getDelay() + " millis to reply");
+            LOG.info("Simulating a task which takes {} millis to reply", getEndpoint().getDelay());
             Thread.sleep(getEndpoint().getDelay());
 
             int count = counter.incrementAndGet();
             if (getEndpoint().getFailFirstAttempts() >= count) {
-                LOG.info("Simulating a failure at attempt " + count);
+                LOG.info("Simulating a failure at attempt {}", count);
                 exchange.setException(new CamelExchangeException("Simulated error at attempt " + count, exchange));
             } else {
                 String reply = getEndpoint().getReply();
                 exchange.getMessage().setBody(reply);
                 // propagate headers
                 exchange.getMessage().setHeaders(exchange.getIn().getHeaders());
-                LOG.info("Setting reply " + reply);
+                LOG.info("Setting reply {}", reply);
             }
 
             LOG.info("Callback done(false)");
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/JmsDiscoveryTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/JmsDiscoveryTest.java
index e413917f325..c81d38ff354 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/JmsDiscoveryTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/JmsDiscoveryTest.java
@@ -18,9 +18,6 @@ package org.apache.camel.component.jms.discovery;
 
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ShutdownRoute;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -29,8 +26,6 @@ import org.apache.camel.spi.Registry;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class JmsDiscoveryTest extends AbstractJMSTest {
@@ -52,14 +47,8 @@ public class JmsDiscoveryTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/MyRegistry.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/MyRegistry.java
index 94a930dd1ed..ea85deeba5e 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/MyRegistry.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/discovery/MyRegistry.java
@@ -32,7 +32,7 @@ public class MyRegistry {
 
     public void onEvent(Map<String, Object> heartbeat) {
         String key = (String) heartbeat.get("name");
-        LOG.debug(">>> event for: " + key + " details: " + heartbeat);
+        LOG.debug(">>> event for: {} details: {}", key, heartbeat);
         services.put(key, heartbeat);
     }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java
index 06526fca5cf..07b17270610 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateHeadersTest.java
@@ -19,10 +19,7 @@ package org.apache.camel.component.jms.issues;
 import java.util.Date;
 import java.util.List;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.activemq.command.ActiveMQQueue;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
@@ -31,8 +28,6 @@ import org.apache.camel.component.mock.AssertionClause;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ActiveMQPropagateHeadersTest extends AbstractJMSTest {
@@ -64,16 +59,8 @@ public class ActiveMQPropagateHeadersTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        // START SNIPPET: example
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        // END SNIPPET: example
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateSerializableHeadersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateSerializableHeadersTest.java
index d242d9dc3e7..158147f4e16 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateSerializableHeadersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/ActiveMQPropagateSerializableHeadersTest.java
@@ -22,8 +22,6 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.activemq.command.ActiveMQQueue;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
@@ -35,8 +33,6 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ActiveMQPropagateSerializableHeadersTest extends AbstractJMSTest {
@@ -86,16 +82,15 @@ public class ActiveMQPropagateSerializableHeadersTest extends AbstractJMSTest {
         }
     }
 
+    @Override
+    protected String getComponentName() {
+        return "activemq";
+    }
+
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
 
-        // START SNIPPET: example
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        // END SNIPPET: example
-
         // prevent java.io.NotSerializableException: org.apache.camel.support.DefaultMessageHistory
         camelContext.setMessageHistory(false);
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/BruceHandlingBeanExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/BruceHandlingBeanExceptionTest.java
index 83c25d5a99b..81e8dedcf97 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/BruceHandlingBeanExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/BruceHandlingBeanExceptionTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -47,14 +42,8 @@ public class BruceHandlingBeanExceptionTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/DynamicRoutersWithJMSMessageLostHeadersIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/DynamicRoutersWithJMSMessageLostHeadersIssueTest.java
index 40801eeab20..759c975178c 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/DynamicRoutersWithJMSMessageLostHeadersIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/DynamicRoutersWithJMSMessageLostHeadersIssueTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Header;
 import org.apache.camel.builder.RouteBuilder;
@@ -26,8 +23,6 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 
 /**
@@ -44,14 +39,8 @@ public class DynamicRoutersWithJMSMessageLostHeadersIssueTest extends AbstractJM
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsAnotherCustomJMSReplyToTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsAnotherCustomJMSReplyToTest.java
index 0b57f05a5b8..89c795442c1 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsAnotherCustomJMSReplyToTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsAnotherCustomJMSReplyToTest.java
@@ -22,7 +22,6 @@ import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 import javax.jms.TextMessage;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -32,8 +31,6 @@ import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsAnotherCustomJMSReplyToTest extends AbstractJMSTest {
@@ -45,18 +42,15 @@ public class JmsAnotherCustomJMSReplyToTest extends AbstractJMSTest {
         mock.expectedBodiesReceived("My name is Arnio");
 
         // start a inOnly route
-        template.sendBody("activemq:queue:hello", "Hello, I'm here");
-
-        // now consume using something that is not Camel
-        Thread.sleep(1000);
+        template.sendBody("activemq:queue:JmsAnotherCustomJMSReplyToTest", "Hello, I'm here");
 
         JmsTemplate jms = new JmsTemplate(amq.getConfiguration().getConnectionFactory());
-        TextMessage msg = (TextMessage) jms.receive("nameRequestor");
+        TextMessage msg = (TextMessage) jms.receive("JmsAnotherCustomJMSReplyToTest.dest");
         assertEquals("What's your name", msg.getText());
 
         // there should be a JMSReplyTo so we know where to send the reply
         Destination replyTo = msg.getJMSReplyTo();
-        assertEquals("queue://nameReplyQueue", replyTo.toString());
+        assertEquals("queue://JmsAnotherCustomJMSReplyToTest.reply", replyTo.toString());
 
         // send reply
         template.sendBody("activemq:" + replyTo, "My name is Arnio");
@@ -69,29 +63,28 @@ public class JmsAnotherCustomJMSReplyToTest extends AbstractJMSTest {
         return new RouteBuilder() {
 
             public void configure() {
-                from("activemq:queue:hello")
+                from("activemq:queue:JmsAnotherCustomJMSReplyToTest")
                         .setExchangePattern(ExchangePattern.InOnly)
                         .process(exchange -> {
                             exchange.getIn().setBody("What's your name");
-                            exchange.getIn().setHeader("JMSReplyTo", "nameReplyQueue");
+                            exchange.getIn().setHeader("JMSReplyTo", "JmsAnotherCustomJMSReplyToTest.reply");
                         })
-                        .to("activemq:queue:nameRequestor?preserveMessageQos=true");
+                        .to("activemq:queue:JmsAnotherCustomJMSReplyToTest.dest?preserveMessageQos=true");
 
-                from("activemq:queue:nameReplyQueue").to("mock:result");
+                from("activemq:queue:JmsAnotherCustomJMSReplyToTest.reply").to("mock:result");
             }
         };
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
+    @Override
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        amq = super.buildComponent(connectionFactory);
 
-        amq = camelContext.getComponent("activemq", JmsComponent.class);
-        return camelContext;
+        return amq;
     }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java
index a05860fc793..12e8c0f9609 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBeanMethodHeaderTest.java
@@ -16,11 +16,8 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.Body;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
@@ -28,9 +25,6 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test for sending the bean method name as a key over the JMS wire, that we now support this.
  */
@@ -98,14 +92,8 @@ public class JmsBeanMethodHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(super.service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
index 1ae9ea69cf6..5e8d3f4e598 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
@@ -34,6 +34,7 @@ import org.apache.camel.spi.Synchronization;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -43,6 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 /**
  * Tests CAMEL-5769. Camel JMS producer can block a thread under specific circumstances.
  */
+@Timeout(30)
 public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
 
     private static final Logger LOG = LoggerFactory.getLogger(JmsBlockedAsyncRoutingEngineTest.class);
@@ -63,7 +65,7 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
     };
 
     public void startBroker() throws Exception {
-        String brokerName = "test-broker-" + System.currentTimeMillis();
+        String brokerName = "JmsBlockedAsyncRoutingEngineTest-broker-" + System.currentTimeMillis();
         String brokerUri = "vm://" + brokerName;
         broker = new BrokerService();
         broker.setBrokerName(brokerName);
@@ -89,7 +91,9 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
         // 0. This message takes 2000ms to ACK from the broker due to the DelayerBrokerPlugin
         // Until then, the correlation ID doesn't get updated locally
         try {
-            template.asyncRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "hello");
+            template.asyncRequestBody(
+                    "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true",
+                    "hello");
         } catch (Exception e) {
         }
 
@@ -97,15 +101,20 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
         Thread.sleep(3000);
 
         // 2. We send 5 messages that take 2 seconds so that they time out
-        template.asyncCallbackRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
+        template.asyncCallbackRequestBody(
+                "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
                 callback);
-        template.asyncCallbackRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
+        template.asyncCallbackRequestBody(
+                "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
                 callback);
-        template.asyncCallbackRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
+        template.asyncCallbackRequestBody(
+                "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
                 callback);
-        template.asyncCallbackRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
+        template.asyncCallbackRequestBody(
+                "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
                 callback);
-        template.asyncCallbackRequestBody("activemq:queue:test?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
+        template.asyncCallbackRequestBody(
+                "activemq:queue:JmsBlockedAsyncRoutingEngineTest?requestTimeout=500&useMessageIDAsCorrelationID=true", "beSlow",
                 callback);
 
         // 3. We assert that we were notified of all timeout exceptions
@@ -114,14 +123,14 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
 
     @AfterEach
     public void cleanup() {
-        LOG.info(">>>>> Latch countdown count was: " + latch.getCount());
+        LOG.info(">>>>> Latch countdown count was: {}", latch.getCount());
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:test?concurrentConsumers=5&useMessageIDAsCorrelationID=true&transacted=true")
+                from("activemq:queue:JmsBlockedAsyncRoutingEngineTest?concurrentConsumers=5&useMessageIDAsCorrelationID=true&transacted=true")
                         .filter().simple("${in.body} == 'beSlow'")
                         .delay(constant(2000))
                         .log(">>>>> Received message on test queue")
@@ -141,9 +150,9 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
             LOG.info("******** Received message for destination " + destinationName);
 
             // do not intercept sends to DLQ
-            if (destinationName.toLowerCase().contains("test") && i == 0) {
+            if (destinationName.toLowerCase().contains("JmsBlockedAsyncRoutingEngineTest") && i == 0) {
                 Thread.sleep(2000);
-                LOG.info("******** Waited 2 seconds for destination: " + destinationName);
+                LOG.info("******** Waited 2 seconds for destination: {}", destinationName);
                 i++;
             }
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsChainedEndpointDelayTimeoutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsChainedEndpointDelayTimeoutTest.java
index 4540c954b79..80a5a2609d7 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsChainedEndpointDelayTimeoutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsChainedEndpointDelayTimeoutTest.java
@@ -16,18 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test to assert that timeouts don't trigger twice when JMS InOut endpoints are chained, and the second endpoint
  * takes longer to respond than the timeout set for the first endpoint.
@@ -51,12 +45,8 @@ public class JmsChainedEndpointDelayTimeoutTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumersTest.java
index 816981fe3c0..9e8cc8324a4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsConcurrentConsumersTest.java
@@ -20,22 +20,19 @@ import java.time.Duration;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Concurrent consumer with JMSReply test.
  */
+@Isolated
 public class JmsConcurrentConsumersTest extends AbstractJMSTest {
 
     @Test
@@ -69,14 +66,8 @@ public class JmsConcurrentConsumersTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsCustomJMSReplyToIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsCustomJMSReplyToIssueTest.java
index 51f9abe8569..f3f878ad05b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsCustomJMSReplyToIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsCustomJMSReplyToIssueTest.java
@@ -20,18 +20,17 @@ import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 import javax.jms.TextMessage;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(10)
 public class JmsCustomJMSReplyToIssueTest extends AbstractJMSTest {
 
     private JmsComponent amq;
@@ -44,16 +43,13 @@ public class JmsCustomJMSReplyToIssueTest extends AbstractJMSTest {
         // start a inOnly route
         template.sendBody("direct:start", "Hello World");
 
-        // now consume using something that is not Camel
-        Thread.sleep(1000);
-
         JmsTemplate jms = new JmsTemplate(amq.getConfiguration().getConnectionFactory());
-        TextMessage msg = (TextMessage) jms.receive("in");
+        TextMessage msg = (TextMessage) jms.receive("JmsCustomJMSReplyToIssueTest.in");
         assertEquals("Hello World", msg.getText());
 
         // there should be a JMSReplyTo so we know where to send the reply
         Destination replyTo = msg.getJMSReplyTo();
-        assertEquals("queue://myReplyQueue", replyTo.toString());
+        assertEquals("queue://JmsCustomJMSReplyToIssueTest.reply", replyTo.toString());
 
         // send reply
         template.sendBody("activemq:" + replyTo, "Bye World");
@@ -62,14 +58,15 @@ public class JmsCustomJMSReplyToIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        amq = camelContext.getComponent("activemq", JmsComponent.class);
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
+    }
+
+    @Override
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        amq = super.buildComponent(connectionFactory);
+
+        return amq;
     }
 
     @Override
@@ -80,10 +77,10 @@ public class JmsCustomJMSReplyToIssueTest extends AbstractJMSTest {
                 from("direct:start").process(exchange -> {
                     exchange.getMessage().setBody("Hello World");
                     // set the JMSReplyTo to force sending the reply here
-                    exchange.getMessage().setHeader("JMSReplyTo", "myReplyQueue");
-                }).to("activemq:queue:in?preserveMessageQos=true");
+                    exchange.getMessage().setHeader("JMSReplyTo", "JmsCustomJMSReplyToIssueTest.reply");
+                }).to("activemq:queue:JmsCustomJMSReplyToIssueTest.in?preserveMessageQos=true");
 
-                from("activemq:queue:myReplyQueue").to("mock:result");
+                from("activemq:queue:JmsCustomJMSReplyToIssueTest.reply").to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsFilenameHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsFilenameHeaderTest.java
index 28c21158834..95d1ac2f544 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsFilenameHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsFilenameHeaderTest.java
@@ -18,17 +18,12 @@ package org.apache.camel.component.jms.issues;
 
 import java.io.File;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
@@ -51,22 +46,16 @@ public class JmsFilenameHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("direct:in").to("activemq:test.a");
-                from("activemq:test.a").to("direct:save");
+                from("direct:in").to("activemq:JmsFilenameHeaderTest");
+                from("activemq:JmsFilenameHeaderTest").to("direct:save");
 
                 from("direct:save").to("file://target?fileExist=Override", "mock:result");
             }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueTest.java
index 4e6be7f66b1..3daa1acc105 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueTest.java
@@ -18,21 +18,16 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsGetHeaderKeyFormatIssueTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello?jmsKeyFormatStrategy=default";
+    private final String uri = "activemq:queue:JmsGetHeaderKeyFormatIssueTest?jmsKeyFormatStrategy=default";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -47,12 +42,8 @@ public class JmsGetHeaderKeyFormatIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.java
index 3797f044bc4..3518d5a6967 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsMessage;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -37,7 +32,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
  */
 public class JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello?jmsKeyFormatStrategy=default";
+    private final String uri
+            = "activemq:queue:JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest?jmsKeyFormatStrategy=default";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -57,12 +53,8 @@ public class JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest extends Abstrac
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -78,9 +70,9 @@ public class JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest extends Abstrac
                             JmsMessage msg = assertIsInstanceOf(JmsMessage.class, exchange.getIn());
                             assertNotNull(msg.getJmsMessage(), "javax.jms.Message should not be null");
                         })
-                        .to("activemq:queue:copy", "mock:result");
+                        .to("activemq:queue:JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.copy", "mock:result");
 
-                from("activemq:queue:copy").to("mock:copy");
+                from("activemq:queue:JmsGetHeaderKeyFormatIssueWithContentTypeHeaderTest.copy").to("mock:copy");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsHeaderAsObjectTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsHeaderAsObjectTest.java
index 4d0fab80a93..14e25e86f04 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsHeaderAsObjectTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsHeaderAsObjectTest.java
@@ -19,17 +19,11 @@ package org.apache.camel.component.jms.issues;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsHeaderAsObjectTest extends AbstractJMSTest {
 
     @Test
@@ -42,7 +36,7 @@ public class JmsHeaderAsObjectTest extends AbstractJMSTest {
         Map<String, Object> headers = new HashMap<>();
         headers.put("foo", "bar");
         headers.put("number", 23);
-        template.sendBodyAndHeaders("activemq:in", "Hello World", headers);
+        template.sendBodyAndHeaders("activemq:JmsHeaderAsObjectTest", "Hello World", headers);
 
         mock.assertIsSatisfied();
     }
@@ -62,25 +56,21 @@ public class JmsHeaderAsObjectTest extends AbstractJMSTest {
         Map<String, Object> headers = new HashMap<>();
         headers.put("foo", "bar");
         headers.put("order", order);
-        template.sendBodyAndHeaders("activemq:in", "Hello World", headers);
+        template.sendBodyAndHeaders("activemq:JmsHeaderAsObjectTest", "Hello World", headers);
 
         mock.assertIsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:in").to("mock:result");
+                from("activemq:JmsHeaderAsObjectTest").to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyIssueTest.java
index e1239e7c05d..ccf24fea347 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyIssueTest.java
@@ -16,9 +16,9 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
@@ -26,8 +26,7 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOnlyIssueTest extends AbstractJMSTest {
@@ -37,7 +36,7 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Bye World");
 
-        template.sendBody("activemq:queue:in", "Hello World");
+        template.sendBody("activemq:queue:JmsInOnlyIssueTest.in", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
@@ -47,10 +46,11 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Bye World");
 
-        // need a little sleep to let task exectuor be ready
-        Thread.sleep(1000);
+        // need a little sleep to let task executor be ready
 
-        template.asyncSendBody("activemq:queue:in", "Hello World");
+        final CompletableFuture<Object> future = template.asyncSendBody("activemq:queue:JmsInOnlyIssueTest.in", "Hello World");
+
+        assertDoesNotThrow(() -> future.get(1, TimeUnit.SECONDS));
 
         assertMockEndpointsSatisfied();
     }
@@ -60,7 +60,7 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Bye World");
 
-        Exchange out = template.send("activemq:queue:in", ExchangePattern.InOnly,
+        Exchange out = template.send("activemq:queue:JmsInOnlyIssueTest.in", ExchangePattern.InOnly,
                 exchange -> exchange.getIn().setBody("Hello World"));
 
         assertMockEndpointsSatisfied();
@@ -76,31 +76,29 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Bye World");
 
-        // need a little sleep to let task exectuor be ready
-        Thread.sleep(1000);
+        // need a little sleep to let task executor be ready
 
-        template.asyncSend("activemq:queue:in", exchange -> {
+        final CompletableFuture<Exchange> future = template.asyncSend("activemq:queue:JmsInOnlyIssueTest.in", exchange -> {
             exchange.setPattern(ExchangePattern.InOnly);
             exchange.getIn().setBody("Hello World");
         });
 
+        assertDoesNotThrow(() -> future.get(1, TimeUnit.SECONDS));
+
         assertMockEndpointsSatisfied();
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:in").process(exchange -> exchange.getIn().setBody("Bye World")).to("mock:result");
+                from("activemq:queue:JmsInOnlyIssueTest.in").process(exchange -> exchange.getIn().setBody("Bye World"))
+                        .to("mock:result");
             }
         };
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyParameterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyParameterTest.java
index 2b93031ab1f..ffd7d18f484 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyParameterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOnlyParameterTest.java
@@ -16,18 +16,15 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Timeout(30)
 public class JmsInOnlyParameterTest extends AbstractJMSTest {
 
     @Test
@@ -63,12 +60,8 @@ public class JmsInOnlyParameterTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -76,11 +69,11 @@ public class JmsInOnlyParameterTest extends AbstractJMSTest {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to("activemq:queue:in?exchangePattern=InOnly")
+                        .to("activemq:queue:JmsInOnlyParameterTest.in?exchangePattern=InOnly")
                         .transform().constant("Bye World")
                         .to("mock:result");
 
-                from("activemq:queue:in")
+                from("activemq:queue:JmsInOnlyParameterTest.in")
                         .to("mock:in");
             }
         };
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicRecipientListTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicRecipientListTest.java
index 79082ffd1d1..b21e4ebb7ba 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicRecipientListTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicRecipientListTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutExclusiveTopicRecipientListTest extends AbstractJMSTest {
@@ -34,7 +29,7 @@ public class JmsInOutExclusiveTopicRecipientListTest extends AbstractJMSTest {
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye Camel");
 
         String out = template.requestBodyAndHeader("direct:start", "Camel", "whereTo",
-                "activemq:topic:news?replyToType=Exclusive&replyTo=queue:JmsInOutExclusiveTopicRecipientListTest.reply",
+                "activemq:topic:JmsInOutExclusiveTopicRecipientListTest.news?replyToType=Exclusive&replyTo=queue:JmsInOutExclusiveTopicRecipientListTest.reply",
                 String.class);
         assertEquals("Bye Camel", out);
 
@@ -42,11 +37,8 @@ public class JmsInOutExclusiveTopicRecipientListTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -57,7 +49,7 @@ public class JmsInOutExclusiveTopicRecipientListTest extends AbstractJMSTest {
                         .recipientList().header("whereTo")
                         .to("mock:result");
 
-                from("activemq:topic:news?disableReplyTo=true")
+                from("activemq:topic:JmsInOutExclusiveTopicRecipientListTest.news?disableReplyTo=true")
                         .transform(body().prepend("Bye "))
                         .process(exchange -> {
                             String replyTo = exchange.getIn().getHeader("JMSReplyTo", String.class);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicTest.java
index f76f95cc20c..a996a1c3a8e 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutExclusiveTopicTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutExclusiveTopicTest extends AbstractJMSTest {
@@ -40,12 +35,8 @@ public class JmsInOutExclusiveTopicTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutIssueTest.java
index d3e23d0f5cf..10b45785483 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutIssueTest.java
@@ -18,21 +18,14 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.concurrent.Future;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.parallel.Isolated;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-@Isolated
 public class JmsInOutIssueTest extends AbstractJMSTest {
 
     @Test
@@ -75,12 +68,8 @@ public class JmsInOutIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutParallelTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutParallelTest.java
index f60a7ff5bb4..144e3f67006 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutParallelTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutParallelTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutParallelTest extends AbstractJMSTest {
@@ -42,11 +37,8 @@ public class JmsInOutParallelTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -56,18 +48,18 @@ public class JmsInOutParallelTest extends AbstractJMSTest {
 
                 from("direct:test")
                         .setBody(constant("1,2,3,4,5"))
-                        .to(ExchangePattern.InOut, "activemq:queue:test1?requestTimeout=2000")
+                        .to(ExchangePattern.InOut, "activemq:queue:JmsInOutParallelTest.1?requestTimeout=2000")
                         .split().tokenize(",").parallelProcessing()
-                        .to(ExchangePattern.InOut, "activemq:queue:test2?requestTimeout=2000")
+                        .to(ExchangePattern.InOut, "activemq:queue:JmsInOutParallelTest.2?requestTimeout=2000")
                         .to("mock:received")
                         .end()
                         .setBody(constant("Fully done"))
                         .log("Finished");
 
-                from("activemq:queue:test1")
+                from("activemq:queue:JmsInOutParallelTest.1")
                         .log("Received on queue test1");
 
-                from("activemq:queue:test2")
+                from("activemq:queue:JmsInOutParallelTest.2")
                         .log("Received on queue test2")
                         .setBody(constant("Some reply"))
                         .delay(constant(100));
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java
index d4f045915fb..89638285f2f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
 
     @Test
@@ -42,12 +36,8 @@ public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPipelineWithBeanTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPipelineWithBeanTest.java
index 85970b3116f..07419a390ea 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPipelineWithBeanTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPipelineWithBeanTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.BindToRegistry;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -39,45 +34,44 @@ public class JmsInOutPipelineWithBeanTest extends AbstractJMSTest {
 
     @Test
     public void testA() {
-        Object response = template.requestBody("activemq:testA", "Hello World");
+        Object response = template.requestBody("activemq:JmsInOutPipelineWithBeanTest.A", "Hello World");
         assertEquals("Hello World,From Bean,From A,From B", response, "Reply");
     }
 
     @Test
     public void testB() {
-        Object response = template.requestBody("activemq:testB", "Hello World");
+        Object response = template.requestBody("activemq:JmsInOutPipelineWithBeanTest.B", "Hello World");
         assertEquals("Hello World,From A,From Bean,From B", response, "Reply");
     }
 
     @Test
     public void testC() {
-        Object response = template.requestBody("activemq:testC", "Hello World");
+        Object response = template.requestBody("activemq:JmsInOutPipelineWithBeanTest.C", "Hello World");
         assertEquals("Hello World,From A,From B,From Bean", response, "Reply");
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:testA").to("bean:dummyBean").to("activemq:a").to("activemq:b");
-                from("activemq:testB").to("activemq:a").to("bean:dummyBean").to("activemq:b");
-                from("activemq:testC").to("activemq:a").to("activemq:b").to("bean:dummyBean");
+                from("activemq:JmsInOutPipelineWithBeanTest.A").to("bean:dummyBean")
+                        .to("activemq:JmsInOutPipelineWithBeanTest.dest.a").to("activemq:JmsInOutPipelineWithBeanTest.dest.b");
+                from("activemq:JmsInOutPipelineWithBeanTest.B").to("activemq:JmsInOutPipelineWithBeanTest.dest.a")
+                        .to("bean:dummyBean").to("activemq:JmsInOutPipelineWithBeanTest.dest.b");
+                from("activemq:JmsInOutPipelineWithBeanTest.C").to("activemq:JmsInOutPipelineWithBeanTest.dest.a")
+                        .to("activemq:JmsInOutPipelineWithBeanTest.dest.b").to("bean:dummyBean");
 
-                from("activemq:a").process(exchange -> {
+                from("activemq:JmsInOutPipelineWithBeanTest.dest.a").process(exchange -> {
                     String body = exchange.getIn().getBody(String.class);
                     exchange.getMessage().setBody(body + ",From A");
                 });
 
-                from("activemq:b").process(exchange -> {
+                from("activemq:JmsInOutPipelineWithBeanTest.dest.b").process(exchange -> {
                     String body = exchange.getIn().getBody(String.class);
                     exchange.getMessage().setBody(body + ",From B");
                 });
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRepeatedInvocationsTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRepeatedInvocationsTest.java
index 925fa4582cd..7e28a81b2eb 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRepeatedInvocationsTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRepeatedInvocationsTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutRepeatedInvocationsTest extends AbstractJMSTest {
@@ -42,12 +37,8 @@ public class JmsInOutRepeatedInvocationsTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
@@ -56,13 +47,13 @@ public class JmsInOutRepeatedInvocationsTest extends AbstractJMSTest {
             public void configure() {
 
                 from("direct:test")
-                        .to(ExchangePattern.InOut, "activemq:queue:test1?requestTimeout=200")
-                        .to(ExchangePattern.InOut, "activemq:queue:test1?requestTimeout=200")
-                        .to(ExchangePattern.InOut, "activemq:queue:test1?requestTimeout=200")
+                        .to(ExchangePattern.InOut, "activemq:queue:JmsInOutRepeatedInvocationsTest?requestTimeout=200")
+                        .to(ExchangePattern.InOut, "activemq:queue:JmsInOutRepeatedInvocationsTest?requestTimeout=200")
+                        .to(ExchangePattern.InOut, "activemq:queue:JmsInOutRepeatedInvocationsTest?requestTimeout=200")
                         .to("mock:finished");
 
-                from("activemq:queue:test1")
-                        .log("Received on queue test1")
+                from("activemq:queue:JmsInOutRepeatedInvocationsTest")
+                        .log("Received on queue JmsInOutRepeatedInvocationsTest")
                         .setBody().constant("Some reply");
 
             }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRoutingSlipTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRoutingSlipTest.java
index e7c172c3532..b1a781128f6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRoutingSlipTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutRoutingSlipTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsInOutRoutingSlipTest extends AbstractJMSTest {
 
     @Test
@@ -42,12 +36,8 @@ public class JmsInOutRoutingSlipTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutTransferExchangeInflightRepositoryFlushTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutTransferExchangeInflightRepositoryFlushTest.java
index 114bfa3819b..5fca299ad45 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutTransferExchangeInflightRepositoryFlushTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutTransferExchangeInflightRepositoryFlushTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -27,19 +24,13 @@ import org.apache.camel.component.jms.SerializableResponseDto;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsInOutTransferExchangeInflightRepositoryFlushTest extends AbstractJMSTest {
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
@@ -61,10 +52,11 @@ public class JmsInOutTransferExchangeInflightRepositoryFlushTest extends Abstrac
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to(ExchangePattern.InOut, "activemq:responseGenerator?transferExchange=true&requestTimeout=5000")
+                        .to(ExchangePattern.InOut,
+                                "activemq:JmsInOutTransferExchangeInflightRepositoryFlushTest.responseGenerator?transferExchange=true&requestTimeout=5000")
                         .to("mock:result");
 
-                from("activemq:responseGenerator?transferExchange=true")
+                from("activemq:JmsInOutTransferExchangeInflightRepositoryFlushTest.responseGenerator?transferExchange=true")
                         .process(exchange -> {
                             // there are 2 inflight (one for both routes)
                             assertEquals(2, exchange.getContext().getInflightRepository().size());
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutUseMessageIDasCorrelationIDTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutUseMessageIDasCorrelationIDTest.java
index 3863cf48dca..7b264d42ad2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutUseMessageIDasCorrelationIDTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutUseMessageIDasCorrelationIDTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
@@ -48,11 +43,8 @@ public class JmsInOutUseMessageIDasCorrelationIDTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToConsumerEndpointUsingInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToConsumerEndpointUsingInOutTest.java
index 92b0a02c24f..3f54584f7e8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToConsumerEndpointUsingInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToConsumerEndpointUsingInOutTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
@@ -34,9 +29,10 @@ public class JmsJMSReplyToConsumerEndpointUsingInOutTest extends AbstractJMSTest
 
     @Test
     public void testCustomJMSReplyToInOut() {
-        template.sendBody("activemq:queue:hello", "What is your name?");
+        template.sendBody("activemq:queue:JmsJMSReplyToConsumerEndpointUsingInOutTest", "What is your name?");
 
-        String reply = consumer.receiveBody("activemq:queue:namedReplyQueue", 5000, String.class);
+        String reply
+                = consumer.receiveBody("activemq:queue:JmsJMSReplyToConsumerEndpointUsingInOutTest.reply", 5000, String.class);
         assertEquals("My name is Camel", reply);
     }
 
@@ -44,7 +40,7 @@ public class JmsJMSReplyToConsumerEndpointUsingInOutTest extends AbstractJMSTest
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello?replyTo=queue:namedReplyQueue")
+                from("activemq:queue:JmsJMSReplyToConsumerEndpointUsingInOutTest?replyTo=queue:JmsJMSReplyToConsumerEndpointUsingInOutTest.reply")
                         .to("log:hello")
                         .transform(constant("My name is Camel"));
             }
@@ -52,12 +48,8 @@ public class JmsJMSReplyToConsumerEndpointUsingInOutTest extends AbstractJMSTest
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToEndpointUsingInOutTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToEndpointUsingInOutTest.java
index b2d200f4048..3caa739d34e 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToEndpointUsingInOutTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsJMSReplyToEndpointUsingInOutTest.java
@@ -23,22 +23,21 @@ import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 import javax.jms.TextMessage;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
 import org.springframework.jms.core.JmsTemplate;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test using a fixed replyTo specified on the JMS endpoint
  */
+@Timeout(30)
 public class JmsJMSReplyToEndpointUsingInOutTest extends AbstractJMSTest {
     private JmsComponent amq;
 
@@ -55,7 +54,7 @@ public class JmsJMSReplyToEndpointUsingInOutTest extends AbstractJMSTest {
         executor.submit(() -> {
             JmsTemplate jms = new JmsTemplate(amq.getConfiguration().getConnectionFactory());
 
-            final TextMessage msg = (TextMessage) jms.receive("nameRequestor");
+            final TextMessage msg = (TextMessage) jms.receive("JmsJMSReplyToEndpointUsingInOutTest.namedRequestor");
             assertEquals("What's your name", msg.getText());
 
             // there should be a JMSReplyTo so we know where to send the reply
@@ -75,7 +74,7 @@ public class JmsJMSReplyToEndpointUsingInOutTest extends AbstractJMSTest {
         // now get started and send the first message that gets the ball rolling
         JmsTemplate jms = new JmsTemplate(amq.getConfiguration().getConnectionFactory());
 
-        jms.send("hello", session -> {
+        jms.send("JmsJMSReplyToEndpointUsingInOutTest", session -> {
             TextMessage msg = session.createTextMessage();
             msg.setText("Hello, I'm here");
             return msg;
@@ -90,10 +89,11 @@ public class JmsJMSReplyToEndpointUsingInOutTest extends AbstractJMSTest {
         return new RouteBuilder() {
 
             public void configure() {
-                from("activemq:queue:hello")
+                from("activemq:queue:JmsJMSReplyToEndpointUsingInOutTest")
                         .process(exchange -> exchange.getMessage().setBody("What's your name"))
                         // use in out to get a reply as well
-                        .to(ExchangePattern.InOut, "activemq:queue:nameRequestor?replyTo=queue:namedReplyQueue")
+                        .to(ExchangePattern.InOut,
+                                "activemq:queue:JmsJMSReplyToEndpointUsingInOutTest.namedRequestor?replyTo=queue:JmsJMSReplyToEndpointUsingInOutTest.namedReplyQueue")
                         // and send the reply to our mock for validation
                         .to("mock:result");
             }
@@ -101,13 +101,14 @@ public class JmsJMSReplyToEndpointUsingInOutTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        amq = camelContext.getComponent("activemq", JmsComponent.class);
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
+    @Override
+    protected JmsComponent buildComponent(ConnectionFactory connectionFactory) {
+        amq = super.buildComponent(connectionFactory);
+
+        return amq;
+    }
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsLifecycleIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsLifecycleIssueTest.java
index d0248b891a2..3c8941e9ef4 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsLifecycleIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsLifecycleIssueTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -27,8 +24,6 @@ import org.junit.jupiter.api.TestInstance;
 
 import static org.apache.camel.ServiceStatus.Started;
 import static org.apache.camel.ServiceStatus.Stopped;
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
@@ -71,12 +66,8 @@ public class JmsLifecycleIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMQSpecialHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMQSpecialHeaderTest.java
index dc6b53bc2a1..65c228242e5 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMQSpecialHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMQSpecialHeaderTest.java
@@ -19,17 +19,11 @@ package org.apache.camel.component.jms.issues;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsMQSpecialHeaderTest extends AbstractJMSTest {
 
     @Test
@@ -59,14 +53,8 @@ public class JmsMQSpecialHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMessageHeaderContentBasedRouterTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMessageHeaderContentBasedRouterTest.java
index f67280d5d1c..dfcb6f0b795 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMessageHeaderContentBasedRouterTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMessageHeaderContentBasedRouterTest.java
@@ -16,18 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Predicate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Unit test based on user on user forum with an issue.
  */
@@ -44,12 +38,8 @@ public class JmsMessageHeaderContentBasedRouterTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateMessageTest.java
index c6a779846d1..a35cbf4e978 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateMessageTest.java
@@ -16,24 +16,19 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsMessage;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JmsMutateMessageTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello";
+    private final String uri = "activemq:queue:JmsMutateMessageTest";
 
     @Test
     public void testMutateMessage() throws Exception {
@@ -48,12 +43,8 @@ public class JmsMutateMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateRemoveHeaderMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateRemoveHeaderMessageTest.java
index ee79f6ccb1f..ce6f9110853 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateRemoveHeaderMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsMutateRemoveHeaderMessageTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsMessage;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -34,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class JmsMutateRemoveHeaderMessageTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello";
+    private final String uri = "activemq:queue:JmsMutateRemoveHeaderMessageTest";
 
     @Test
     public void testMutateMessage() throws Exception {
@@ -49,11 +44,8 @@ public class JmsMutateRemoveHeaderMessageTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = ConnectionFactoryHelper.createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest.java
index 58eadfb5fab..ddd68bf05be 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest.java
@@ -18,21 +18,17 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello?jmsKeyFormatStrategy=passthrough";
+    private final String uri
+            = "activemq:queue:JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest?jmsKeyFormatStrategy=passthrough";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -47,12 +43,8 @@ public class JmsPassThroughtJmsKeyFormatStrategyEndUserIssueTest extends Abstrac
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndpointTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndpointTest.java
index 261f71dfd3e..240accad6ce 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndpointTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyEndpointTest.java
@@ -18,21 +18,17 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsPassThroughtJmsKeyFormatStrategyEndpointTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello?jmsKeyFormatStrategy=passthrough";
+    private final String uri
+            = "activemq:queue:JmsPassThroughtJmsKeyFormatStrategyEndpointTest?jmsKeyFormatStrategy=passthrough";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -54,12 +50,8 @@ public class JmsPassThroughtJmsKeyFormatStrategyEndpointTest extends AbstractJMS
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyTest.java
index 905746c18b3..26a26d570e7 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyTest.java
@@ -18,23 +18,20 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.jms.PassThroughJmsKeyFormatStrategy;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsPassThroughtJmsKeyFormatStrategyTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello";
+    private final String uri = "activemq:queue:JmsPassThroughtJmsKeyFormatStrategyTest";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -56,18 +53,18 @@ public class JmsPassThroughtJmsKeyFormatStrategyTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        // configure to use passthrough
-        JmsComponent activemq = jmsComponentAutoAcknowledge(connectionFactory);
-        activemq.getConfiguration().setJmsKeyFormatStrategy(new PassThroughJmsKeyFormatStrategy());
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        camelContext.addComponent("activemq", activemq);
+        // configure to use passthrough
+        component.getConfiguration().setJmsKeyFormatStrategy(new PassThroughJmsKeyFormatStrategy());
 
-        return camelContext;
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest.java
index 073b3bb20cc..a47a5835ae0 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest.java
@@ -18,23 +18,20 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.jms.PassThroughJmsKeyFormatStrategy;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.activemq.services.ActiveMQService;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest extends AbstractJMSTest {
 
-    private final String uri = "activemq:queue:hello";
+    private final String uri = "activemq:queue:JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest";
 
     @Test
     public void testSendWithHeaders() throws Exception {
@@ -59,16 +56,16 @@ public class JmsPassThroughtJmsKeyFormatStrategyUsingJmsConfigurationTest extend
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
+    protected String getComponentName() {
+        return "activemq";
+    }
 
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        JmsComponent jms = camelContext.getComponent("activemq", JmsComponent.class);
-        jms.getConfiguration().setJmsKeyFormatStrategy(new PassThroughJmsKeyFormatStrategy());
+    @Override
+    protected JmsComponent setupComponent(CamelContext camelContext, ActiveMQService service, String componentName) {
+        final JmsComponent component = super.setupComponent(camelContext, service, componentName);
 
-        return camelContext;
+        component.getConfiguration().setJmsKeyFormatStrategy(new PassThroughJmsKeyFormatStrategy());
+        return component;
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToComponentEndlessLoopTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToComponentEndlessLoopTest.java
index 026b998c11a..e77fb23ca2f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToComponentEndlessLoopTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToComponentEndlessLoopTest.java
@@ -16,15 +16,10 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -37,12 +32,8 @@ public class JmsReplyToComponentEndlessLoopTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToLoopIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToLoopIssueTest.java
index e3f65a60407..61d9634ed30 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToLoopIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsReplyToLoopIssueTest.java
@@ -18,17 +18,13 @@ package org.apache.camel.component.jms.issues;
 
 import java.util.concurrent.TimeUnit;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
+@Isolated
 public class JmsReplyToLoopIssueTest extends AbstractJMSTest {
 
     @Test
@@ -44,11 +40,8 @@ public class JmsReplyToLoopIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsRoutingSlipIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsRoutingSlipIssueTest.java
index 27ba2770884..b2e524d9366 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsRoutingSlipIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsRoutingSlipIssueTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class JmsRoutingSlipIssueTest extends AbstractJMSTest {
 
     @Test
@@ -44,12 +38,8 @@ public class JmsRoutingSlipIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsSendToAlotOfDestinationWithSameEndpointTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsSendToAlotOfDestinationWithSameEndpointTest.java
index b743f56f09e..91d8a3c9e79 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsSendToAlotOfDestinationWithSameEndpointTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsSendToAlotOfDestinationWithSameEndpointTest.java
@@ -20,6 +20,8 @@ import org.apache.camel.ExchangePattern;
 import org.apache.camel.component.jms.JmsConstants;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,6 +29,8 @@ import org.springframework.context.support.AbstractXmlApplicationContext;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
+// This one does not run well in parallel: it becomes flaky
+@Tags({ @Tag("not-parallel") })
 public class JmsSendToAlotOfDestinationWithSameEndpointTest extends CamelSpringTestSupport {
 
     private static final Logger LOG = LoggerFactory.getLogger(JmsSendToAlotOfDestinationWithSameEndpointTest.class);
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsToFileMessageIdTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsToFileMessageIdTest.java
index c9a8b6a2eb7..7ec9de1074c 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsToFileMessageIdTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsToFileMessageIdTest.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsMessage;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -47,14 +42,8 @@ public class JmsToFileMessageIdTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
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 34b68b33584..28021508e43 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
@@ -28,12 +28,16 @@ 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.Tag;
+import org.junit.jupiter.api.Tags;
 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.assertNull;
 
+// This test cannot run in parallel: it reads from the default DLQ and there could be more messages there
+@Tags({ @Tag("not-parallel"), @Tag("transaction") })
 public class JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest extends CamelTestSupport {
     @RegisterExtension
     public ActiveMQService service = ActiveMQServiceFactory.createVMServiceInstance();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionTest.java
index f6ff87eb7e9..af905409110 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionTest.java
@@ -16,10 +16,14 @@
  */
 package org.apache.camel.component.jms.issues;
 
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+// This test cannot run in parallel: it reads from the default DLQ and there could be more messages there
+@Tags({ @Tag("not-parallel"), @Tag("transaction") })
 public class JmsTransactedDeadLetterChannelNotHandlerRollbackOnExceptionTest
         extends JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionTest {
 
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 9769121fac5..f67b7015e93 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
@@ -28,12 +28,16 @@ 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.Tag;
+import org.junit.jupiter.api.Tags;
 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;
 
+// This test cannot run in parallel: it reads from the default DLQ and there could be more messages there
+@Tags({ @Tag("not-parallel"), @Tag("transaction") })
 public class JmsTransactedOnExceptionRollbackOnExceptionTest extends CamelTestSupport {
     @RegisterExtension
     public static ActiveMQService service = ActiveMQServiceFactory.createVMServiceInstance();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTypeConverterIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTypeConverterIssueTest.java
index 204731bab7b..42eb410c3e6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTypeConverterIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsTypeConverterIssueTest.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.jms.issues;
 
 import java.io.File;
 
-import javax.jms.ConnectionFactory;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathFactory;
@@ -26,7 +25,6 @@ import javax.xml.xpath.XPathFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
@@ -34,8 +32,6 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -46,14 +42,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 public class JmsTypeConverterIssueTest extends AbstractJMSTest {
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/LarsIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/LarsIssueTest.java
index 8f02f232729..b1f0ecfa52b 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/LarsIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/LarsIssueTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
@@ -27,9 +24,6 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 /**
  * Lets test that a number of headers MQSeries doesn't like to be sent are excluded when forwarding a JMS message from
  * one destination to another
@@ -51,21 +45,15 @@ public class LarsIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                Processor myProcessor = e -> LOG.info(">>>> Received exchange: " + e);
+                Processor myProcessor = e -> LOG.info(">>>> Received exchange: {}", e);
 
                 // lets enable CACHE_CONSUMER so that the consumer stays around in JMX
                 // as the default due to the spring bug means we keep creating & closing consumers
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/MQSeriesHeaderTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/MQSeriesHeaderTest.java
index a1c15779dc5..8e3a731359d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/MQSeriesHeaderTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/MQSeriesHeaderTest.java
@@ -19,9 +19,6 @@ package org.apache.camel.component.jms.issues;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
@@ -31,8 +28,6 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.apache.camel.test.junit5.TestSupport.assertMessageHeader;
 
 /**
@@ -63,14 +58,8 @@ public class MQSeriesHeaderTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/NoClassDefFoundErrorWrapExceptionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/NoClassDefFoundErrorWrapExceptionTest.java
index 68e9775717a..5e8e63f7eb3 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/NoClassDefFoundErrorWrapExceptionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/NoClassDefFoundErrorWrapExceptionTest.java
@@ -19,15 +19,10 @@ package org.apache.camel.component.jms.issues;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
@@ -36,7 +31,7 @@ public class NoClassDefFoundErrorWrapExceptionTest extends AbstractJMSTest {
     @Test
     public void testNoClassDef() {
         try {
-            template.requestBody("activemq:start?transferException=true", "Hello World");
+            template.requestBody("activemq:NoClassDefFoundErrorWrapExceptionTest?transferException=true", "Hello World");
             fail("Should throw exception");
         } catch (Exception e) {
             StringWriter sw = new StringWriter();
@@ -55,7 +50,7 @@ public class NoClassDefFoundErrorWrapExceptionTest extends AbstractJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("activemq:start?transferException=true")
+                from("activemq:NoClassDefFoundErrorWrapExceptionTest?transferException=true")
                         .process(new ProcessorA())
                         .process(new ProcessorB())
                         .process(new ProcessorFail());
@@ -64,12 +59,7 @@ public class NoClassDefFoundErrorWrapExceptionTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
-
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/RequestReplyWithProducerIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/RequestReplyWithProducerIssueTest.java
index 31debf4f029..abce0568921 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/RequestReplyWithProducerIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/RequestReplyWithProducerIssueTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
@@ -27,8 +24,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class RequestReplyWithProducerIssueTest extends AbstractJMSTest {
@@ -48,14 +43,8 @@ public class RequestReplyWithProducerIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TempReplyToIssueTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TempReplyToIssueTest.java
index 8251e172e2c..61f6bf09552 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TempReplyToIssueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TempReplyToIssueTest.java
@@ -16,11 +16,9 @@
  */
 package org.apache.camel.component.jms.issues;
 
-import javax.jms.ConnectionFactory;
 import javax.jms.Destination;
 
 import org.apache.camel.Body;
-import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Header;
 import org.apache.camel.ProducerTemplate;
@@ -29,8 +27,6 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.jms.JmsConstants;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -73,12 +69,8 @@ public class TempReplyToIssueTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java
index 6a84373fbf5..0db9fe1f230 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java
@@ -28,10 +28,13 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.infra.activemq.services.ActiveMQEmbeddedService;
 import org.apache.camel.test.infra.activemq.services.ActiveMQEmbeddedServiceBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
+@Tags({ @Tag("not-parallel") })
 public class JmsRequestReplyTemporaryRefreshFailureOnStartupTest extends CamelTestSupport {
 
     private String brokerName;
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/TemporaryQueueRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/TemporaryQueueRouteTest.java
index 56ad8db3e96..a06518e5c94 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/TemporaryQueueRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/TemporaryQueueRouteTest.java
@@ -16,17 +16,11 @@
  */
 package org.apache.camel.component.jms.temp;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
-
 public class TemporaryQueueRouteTest extends AbstractJMSTest {
     protected String endpointUri = "activemq:temp-queue:TemporaryQueueRouteTest";
 
@@ -41,14 +35,8 @@ public class TemporaryQueueRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest.java
index 8e85e14957f..ba7c0196af8 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRoutePojoTest.java
@@ -60,7 +60,7 @@ public class PerformanceRoutePojoTest extends CamelSpringTestSupport {
         assertMockEndpointsSatisfied();
 
         long delta = System.currentTimeMillis() - start;
-        LOG.info("RoutePerformancePojoTest: Sent: " + size + " Took: " + delta + " ms");
+        LOG.info("RoutePerformancePojoTest: Sent: {} Took: {} ms", size, delta);
     }
 
 }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRouteTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRouteTest.java
index ad04d418699..d6e87f460f2 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRouteTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tuning/PerformanceRouteTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.component.jms.tuning;
 
-import javax.jms.ConnectionFactory;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
 import org.junit.jupiter.api.Disabled;
@@ -26,8 +23,6 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
-import static org.apache.camel.test.infra.activemq.common.ConnectionFactoryHelper.createConnectionFactory;
 import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
 @Disabled
@@ -63,7 +58,7 @@ public class PerformanceRouteTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
 
         long delta = System.currentTimeMillis() - start;
-        LOG.info("RoutePerformanceTest: Sent: " + size + " Took: " + delta + " ms");
+        LOG.info("RoutePerformanceTest: Sent: {} Took: {} ms", size, delta);
     }
 
     private boolean canRunOnThisPlatform() {
@@ -73,14 +68,8 @@ public class PerformanceRouteTest extends AbstractJMSTest {
     }
 
     @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        ConnectionFactory connectionFactory
-                = createConnectionFactory(service);
-        camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory));
-
-        return camelContext;
+    protected String getComponentName() {
+        return "activemq";
     }
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/AsyncEndpointJmsTX2Test.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/AsyncEndpointJmsTX2Test.java
index 73040d7354a..1f44072fe7d 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/AsyncEndpointJmsTX2Test.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/AsyncEndpointJmsTX2Test.java
@@ -40,7 +40,7 @@ public class AsyncEndpointJmsTX2Test extends CamelSpringTestSupport {
         getMockEndpoint("mock:after").expectedBodiesReceived("Hi Camel");
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye Camel");
 
-        template.sendBody("activemq:queue:inbox", "Hello Camel");
+        template.sendBody("activemq:queue:AsyncEndpointJmsTX2Test.inbox", "Hello Camel");
 
         assertMockEndpointsSatisfied();
 
@@ -55,7 +55,7 @@ public class AsyncEndpointJmsTX2Test extends CamelSpringTestSupport {
             public void configure() {
                 context.addComponent("async", new MyAsyncComponent());
 
-                from("activemq:queue:inbox")
+                from("activemq:queue:AsyncEndpointJmsTX2Test.inbox")
                         .transacted()
                         .to("mock:before")
                         .to("log:before")
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.java
index f1d9bd501ee..f6d3abca3a0 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionIsTransactedRedeliveredTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.jms.tx;
 
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -27,6 +28,8 @@ import org.apache.camel.builder.AdviceWith;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.awaitility.Awaitility;
+import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -81,10 +84,11 @@ public class JMSTransactionIsTransactedRedeliveredTest extends CamelSpringTestSu
 
         // check JMX stats
         // need a little sleep to ensure JMX is updated
-        Thread.sleep(500);
+        final Set<ObjectName> objectNames = Awaitility.await().atMost(500, TimeUnit.MILLISECONDS)
+                .until(() -> getMBeanServer()
+                        .queryNames(new ObjectName("org.apache.camel:context=camel-*,type=routes,name=\"myRoute\""), null),
+                        Matchers.hasSize(1));
 
-        Set<ObjectName> objectNames = getMBeanServer()
-                .queryNames(new ObjectName("org.apache.camel:context=camel-*,type=routes,name=\"myRoute\""), null);
         assertEquals(1, objectNames.size());
         ObjectName name = objectNames.iterator().next();
 
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedSecurityTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedSecurityTest.java
index 2ca4995df07..27cadde6406 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedSecurityTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedSecurityTest.java
@@ -56,7 +56,7 @@ public class JmsToJmsTransactedSecurityTest extends CamelSpringTestSupport {
         // get the message that got rolled back
         Exchange exch = consumer.receive("activemq:queue:JmsToJmsTransactedSecurityTest", 250);
         if (exch != null) {
-            LOG.info("Cleaned up orphaned message: " + exch);
+            LOG.info("Cleaned up orphaned message: {}", exch);
         }
         mock.assertIsSatisfied(3000);
     }
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.java
index 78e3d314777..52570ab57d6 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JmsToJmsTransactedTest.java
@@ -38,14 +38,14 @@ public class JmsToJmsTransactedTest extends CamelSpringTestSupport {
             public void configure() {
                 from("activemq:queue:JmsToJmsTransactedTest")
                         .transacted()
-                        .to("activemq:queue:bar");
+                        .to("activemq:queue:JmsToJmsTransactedTest.reply");
             }
         });
         context.start();
 
         template.sendBody("activemq:queue:JmsToJmsTransactedTest", "Hello World");
 
-        String reply = consumer.receiveBody("activemq:queue:bar", 5000, String.class);
+        String reply = consumer.receiveBody("activemq:queue:JmsToJmsTransactedTest.reply", 5000, String.class);
         assertEquals("Hello World", reply);
     }
 
@@ -57,10 +57,10 @@ public class JmsToJmsTransactedTest extends CamelSpringTestSupport {
                 from("activemq:queue:JmsToJmsTransactedTest")
                         .transacted()
                         .to("mock:start")
-                        .to("activemq:queue:bar")
+                        .to("activemq:queue:JmsToJmsTransactedTest.reply")
                         .throwException(new IllegalArgumentException("Damn"));
 
-                from("activemq:queue:bar").to("log:bar").to("mock:bar");
+                from("activemq:queue:JmsToJmsTransactedTest.reply").to("log:bar").to("mock:bar");
             }
         });
         context.start();
@@ -84,10 +84,10 @@ public class JmsToJmsTransactedTest extends CamelSpringTestSupport {
                 from("activemq:queue:JmsToJmsTransactedTest")
                         .transacted()
                         .to("mock:start")
-                        .to("activemq:queue:bar")
+                        .to("activemq:queue:JmsToJmsTransactedTest.reply")
                         .rollback();
 
-                from("activemq:queue:bar").to("log:bar").to("mock:bar");
+                from("activemq:queue:JmsToJmsTransactedTest.reply").to("log:bar").to("mock:bar");
             }
         });
         context.start();
@@ -115,10 +115,10 @@ public class JmsToJmsTransactedTest extends CamelSpringTestSupport {
                 from("activemq:queue:JmsToJmsTransactedTest")
                         .transacted()
                         .to("mock:start")
-                        .to("activemq:queue:bar")
+                        .to("activemq:queue:JmsToJmsTransactedTest.reply")
                         .markRollbackOnly();
 
-                from("activemq:queue:bar").to("log:bar").to("mock:bar");
+                from("activemq:queue:JmsToJmsTransactedTest.reply").to("log:bar").to("mock:bar");
             }
         });
         context.start();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java
index 81c6538cf58..080b242a226 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java
@@ -47,7 +47,7 @@ public class TransactionMinimalConfigurationTest extends CamelSpringTestSupport
         mock.message(0).header(Exchange.REDELIVERED).isNull();
         mock.message(0).header(Exchange.REDELIVERY_COUNTER).isNull();
 
-        template.sendBody("activemq:queue:okay", "Hello World");
+        template.sendBody("activemq:queue:TransactionMinimalConfigurationTest", "Hello World");
 
         mock.assertIsSatisfied();
     }
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 b5ad37308c5..9c330cfa990 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
@@ -60,7 +60,7 @@
         <jmxAgent id="agent" disabled="true"/>
         <route>
             <!-- 1: from the jms queue -->
-            <from uri="activemq:queue:okay"/>
+            <from uri="activemq:queue:TransactionMinimalConfigurationTest"/>
             <!-- 2: mark this route as transacted -->
             <transacted/>
             <!-- 3: call our business logic that is myProcessor -->
diff --git a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/AbstractActiveMQEmbeddedService.java b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/AbstractActiveMQEmbeddedService.java
index c7a9979bc59..3ef51997998 100644
--- a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/AbstractActiveMQEmbeddedService.java
+++ b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/AbstractActiveMQEmbeddedService.java
@@ -39,19 +39,13 @@ public abstract class AbstractActiveMQEmbeddedService
         implements ActiveMQService, ConnectionFactoryAware, BeforeEachCallback, AfterEachCallback {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractActiveMQEmbeddedService.class);
     private final BrokerService brokerService;
-    private final boolean recycle;
 
     public AbstractActiveMQEmbeddedService() {
         this(ActiveMQEmbeddedServiceBuilder.defaultBroker().brokerService());
     }
 
     public AbstractActiveMQEmbeddedService(BrokerService brokerService) {
-        this(brokerService, false);
-    }
-
-    public AbstractActiveMQEmbeddedService(BrokerService brokerService, boolean recycle) {
         this.brokerService = brokerService;
-        this.recycle = recycle;
     }
 
     @Override
@@ -135,17 +129,12 @@ public abstract class AbstractActiveMQEmbeddedService
 
     @Override
     public void afterEach(ExtensionContext extensionContext) {
-        if (recycle) {
-            shutdown();
-        }
-
+        shutdown();
     }
 
     @Override
     public void beforeEach(ExtensionContext extensionContext) {
-        if (recycle) {
-            initialize();
-        }
+        initialize();
     }
 
     public abstract String getVmURL();
diff --git a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedService.java b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedService.java
index f624742a6ca..3703ad88bea 100644
--- a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedService.java
+++ b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedService.java
@@ -32,11 +32,7 @@ public class ActiveMQEmbeddedService extends AbstractActiveMQEmbeddedService {
     }
 
     public ActiveMQEmbeddedService(BrokerService brokerService) {
-        this(brokerService, false);
-    }
-
-    public ActiveMQEmbeddedService(BrokerService brokerService, boolean recycle) {
-        super(brokerService, recycle);
+        super(brokerService);
     }
 
     public String getVmURL() {
diff --git a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedServiceBuilder.java b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedServiceBuilder.java
index 9a89d7a4f76..2c6438adb99 100644
--- a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedServiceBuilder.java
+++ b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQEmbeddedServiceBuilder.java
@@ -592,8 +592,9 @@ public class ActiveMQEmbeddedServiceBuilder {
         return new ActiveMQEmbeddedService(brokerService);
     }
 
+    @Deprecated
     public ActiveMQEmbeddedService buildWithRecycle() {
-        return new ActiveMQEmbeddedService(brokerService, true);
+        return build();
     }
 
     public static ActiveMQEmbeddedServiceBuilder bare() {
diff --git a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQPersistentVMService.java b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQPersistentVMService.java
index a99e5f98036..ddc1277ddbf 100644
--- a/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQPersistentVMService.java
+++ b/test-infra/camel-test-infra-activemq/src/test/java/org/apache/camel/test/infra/activemq/services/ActiveMQPersistentVMService.java
@@ -34,11 +34,7 @@ public class ActiveMQPersistentVMService extends AbstractActiveMQEmbeddedService
     }
 
     public ActiveMQPersistentVMService(BrokerService brokerService) {
... 26 lines suppressed ...