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 2024/03/14 08:25:02 UTC

(camel) 04/04: CAMEL-20477: adjust Artemis service to reduce broker recycling

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

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

commit 9a87a3d467d5d8de8c3e5d3b10b50df36d12570b
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Mar 13 12:47:55 2024 +0100

    CAMEL-20477: adjust Artemis service to reduce broker recycling
    
    Previously, the broker would be recycled after every test. However, this is unnecessary now that the tests use separate resources.
---
 .../component/jms/JmsAsyncStartStopListenerTest.java |  2 +-
 .../jms/JmsDefaultTaskExecutorTypeTest.java          |  2 +-
 ...msRequestReplyTempQueueMultipleConsumersTest.java |  2 +-
 .../jms/integration/JmsLoadBalanceFailOverIT.java    |  2 +-
 ...eadLetterChannelHandlerRollbackOnExceptionIT.java |  2 +-
 .../component/jms/tx/TransactedOnCompletionTest.java |  2 +-
 .../sjms/consumer/InOutConsumerQueueAsyncTest.java   | 20 ++++++++++++++++++--
 .../sjms/producer/QueueProducerQoSTest.java          |  2 +-
 .../component/sjms/support/JmsCommonTestSupport.java |  2 +-
 .../sjms/tx/TransactedConcurrentConsumersTest.java   |  6 ++++++
 .../component/sjms/tx/TransactedConsumerSupport.java |  6 ------
 .../tx/TransactedConsumersMultipleRouteTest.java     |  6 ++++++
 .../sjms/tx/TransactedQueueConsumerTest.java         |  6 ++++++
 .../sjms/tx/TransactedTopicConsumerTest.java         |  6 ++++++
 .../component/sjms2/SimpleJms2ComponentTest.java     |  2 +-
 .../sjms2/Sjms2EndpointNameOverrideTest.java         |  2 +-
 .../camel/component/sjms2/Sjms2EndpointTest.java     |  2 +-
 .../consumer/InOnlyTopicDurableConsumerTest.java     | 11 +++++++++++
 .../consumer/InOnlyTopicSharedConsumerTest.java      | 11 +++++++++++
 .../sjms2/producer/InOnlyQueueProducerTest.java      | 10 ++++++++++
 .../sjms2/producer/InOnlyTopicProducerTest.java      | 10 ++++++++++
 .../sjms2/producer/Sjms2ToDSendDynamicTest.java      | 11 +++++++++++
 .../component/sjms2/support/Jms2TestSupport.java     | 16 ++++++----------
 .../apache/camel/component/stomp/StompBaseTest.java  |  6 +++---
 .../test/infra/artemis/services/ArtemisService.java  | 10 +++++-----
 .../artemis/services/ArtemisServiceFactory.java      |  4 ++--
 26 files changed, 122 insertions(+), 39 deletions(-)

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 1d8e05699fa..88b41be0396 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
@@ -40,7 +40,7 @@ import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknow
 @Timeout(30)
 public class JmsAsyncStartStopListenerTest extends CamelTestSupport {
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createPersistentVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createPersistentVMService();
 
     protected final String componentName = "activemq";
 
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 2710dc181c5..f7071976ecc 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
@@ -57,7 +57,7 @@ class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
     private static final Logger LOG = LoggerFactory.getLogger(JmsDefaultTaskExecutorTypeTest.class);
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createPersistentVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createPersistentVMService();
 
     @Test
     void testThreadPoolTaskExecutor() throws Exception {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTempQueueMultipleConsumersTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTempQueueMultipleConsumersTest.java
index 3c31fb0b28c..bbdc6b4503c 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTempQueueMultipleConsumersTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyTempQueueMultipleConsumersTest.java
@@ -49,7 +49,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class JmsRequestReplyTempQueueMultipleConsumersTest extends CamelTestSupport {
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     private final Map<String, AtomicInteger> msgsPerThread = new ConcurrentHashMap<>();
     private JmsPoolConnectionFactory connectionFactory;
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsLoadBalanceFailOverIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsLoadBalanceFailOverIT.java
index 8208be8ba5c..7e66ab0d17f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsLoadBalanceFailOverIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsLoadBalanceFailOverIT.java
@@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 public class JmsLoadBalanceFailOverIT extends CamelTestSupport {
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @BeforeEach
     void configureTest() {
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/tx/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/tx/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT.java
index e2ab046e885..0345d2f4133 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/tx/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/tx/JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT.java
@@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 @Tags({ @Tag("not-parallel"), @Tag("transaction") })
 public class JmsTransactedDeadLetterChannelHandlerRollbackOnExceptionIT extends CamelTestSupport {
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     public static class BadErrorHandler {
         @Handler
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactedOnCompletionTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactedOnCompletionTest.java
index 496b2110add..93d796268ee 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactedOnCompletionTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactedOnCompletionTest.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 public class TransactedOnCompletionTest extends CamelTestSupport {
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @Produce
     protected ProducerTemplate template;
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOutConsumerQueueAsyncTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOutConsumerQueueAsyncTest.java
index 33a323d381c..5aeb3b9898f 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOutConsumerQueueAsyncTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/consumer/InOutConsumerQueueAsyncTest.java
@@ -16,15 +16,22 @@
  */
 package org.apache.camel.component.sjms.consumer;
 
+import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
 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.component.sjms.support.JmsTestSupport;
+import org.apache.camel.component.sjms.support.JmsCommonTestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
-public class InOutConsumerQueueAsyncTest extends JmsTestSupport {
+public class InOutConsumerQueueAsyncTest extends JmsCommonTestSupport {
+
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @Test
     public void testAsync() throws Exception {
@@ -61,4 +68,13 @@ public class InOutConsumerQueueAsyncTest extends JmsTestSupport {
         };
     }
 
+    @Override
+    protected String getBrokerUri() {
+        return service.serviceAddress();
+    }
+
+    @Override
+    protected void setupFactoryExternal(ActiveMQConnectionFactory factory) {
+        setupFactoryExternal(factory, service);
+    }
 }
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/producer/QueueProducerQoSTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/producer/QueueProducerQoSTest.java
index ce2fb1c8e92..de971ad5824 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/producer/QueueProducerQoSTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/producer/QueueProducerQoSTest.java
@@ -51,7 +51,7 @@ public class QueueProducerQoSTest extends CamelTestSupport {
     private static final String MOCK_EXPIRED_ADVISORY = "mock:expiredAdvisory";
 
     @RegisterExtension
-    public ArtemisService service = new ArtemisEmbeddedServiceBuilder()
+    public static ArtemisService service = new ArtemisEmbeddedServiceBuilder()
             .withPersistent(true)
             .withCustomConfiguration(configuration -> configureArtemis(configuration))
             .build();
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsCommonTestSupport.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsCommonTestSupport.java
index 0e0e54a772a..dcfd865067a 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsCommonTestSupport.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/support/JmsCommonTestSupport.java
@@ -46,7 +46,7 @@ import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 /**
  * A support class that builds up and tears down an ActiveMQ instance to be used for unit testing.
  */
-abstract class JmsCommonTestSupport extends CamelTestSupport {
+public abstract class JmsCommonTestSupport extends CamelTestSupport {
 
     protected final Logger log = LoggerFactory.getLogger(getClass());
 
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java
index 20a01ee4549..f162dfcaeaa 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConcurrentConsumersTest.java
@@ -16,13 +16,19 @@
  */
 package org.apache.camel.component.sjms.tx;
 
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 /**
  * Test to verify concurrent consumers on a transacted endpoint.
  */
 public class TransactedConcurrentConsumersTest extends TransactedConsumerSupport {
 
+    @RegisterExtension
+    protected static ArtemisService service = ArtemisServiceFactory.createVMService();
+
     /**
      * We want to verify that when consuming from a single destination with multiple routes that we are thread safe and
      * behave accordingly.
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumerSupport.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumerSupport.java
index 8c2c312df71..7f5ec842dbe 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumerSupport.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumerSupport.java
@@ -27,10 +27,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.sjms.SjmsComponent;
-import org.apache.camel.test.infra.artemis.services.ArtemisService;
-import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,9 +35,6 @@ public abstract class TransactedConsumerSupport extends CamelTestSupport {
 
     protected final Logger log = LoggerFactory.getLogger(getClass());
 
-    @RegisterExtension
-    protected ArtemisService service = ArtemisServiceFactory.createVMService();
-
     public abstract String getBrokerUri();
 
     protected void runTest(
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumersMultipleRouteTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumersMultipleRouteTest.java
index dbe825f0335..c14d9dc89e9 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumersMultipleRouteTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedConsumersMultipleRouteTest.java
@@ -16,8 +16,11 @@
  */
 package org.apache.camel.component.sjms.tx;
 
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 /**
  * Test to verify concurrent consumers on a transacted endpoint.
@@ -25,6 +28,9 @@ import org.junit.jupiter.api.Test;
 @Disabled("Works only in isolation")
 public class TransactedConsumersMultipleRouteTest extends TransactedConsumerSupport {
 
+    @RegisterExtension
+    protected static ArtemisService service = ArtemisServiceFactory.createVMService();
+
     /**
      * We want to verify that when consuming from a single destination with multiple routes that we are thread safe and
      * behave accordingly.
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedQueueConsumerTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedQueueConsumerTest.java
index ae3bbb9eeef..880772a9c09 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedQueueConsumerTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedQueueConsumerTest.java
@@ -16,10 +16,16 @@
  */
 package org.apache.camel.component.sjms.tx;
 
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 public class TransactedQueueConsumerTest extends TransactedConsumerSupport {
 
+    @RegisterExtension
+    protected static ArtemisService service = ArtemisServiceFactory.createVMService();
+
     /**
      * We want to verify that when consuming from a single destination with multiple routes that we are thread safe and
      * behave accordingly.
diff --git a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedTopicConsumerTest.java b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedTopicConsumerTest.java
index 689d1f57f05..6c613f9d6ab 100644
--- a/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedTopicConsumerTest.java
+++ b/components/camel-sjms/src/test/java/org/apache/camel/component/sjms/tx/TransactedTopicConsumerTest.java
@@ -16,10 +16,16 @@
  */
 package org.apache.camel.component.sjms.tx;
 
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 public class TransactedTopicConsumerTest extends TransactedConsumerSupport {
 
+    @RegisterExtension
+    protected static ArtemisService service = ArtemisServiceFactory.createVMService();
+
     /**
      * We want to verify that when consuming from a single destination with multiple routes that we are thread safe and
      * behave accordingly.
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/SimpleJms2ComponentTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/SimpleJms2ComponentTest.java
index e373c0f7040..3adfb61e79c 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/SimpleJms2ComponentTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/SimpleJms2ComponentTest.java
@@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 public class SimpleJms2ComponentTest extends CamelTestSupport {
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @Test
     public void testHelloWorld() {
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointNameOverrideTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointNameOverrideTest.java
index 9d2bacdd56e..39f537d57f9 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointNameOverrideTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointNameOverrideTest.java
@@ -35,7 +35,7 @@ public class Sjms2EndpointNameOverrideTest extends CamelTestSupport {
     private static final String BEAN_NAME = "not-sjms";
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @Override
     protected boolean useJmx() {
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointTest.java
index ac3ac678785..86512e141f8 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/Sjms2EndpointTest.java
@@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 public class Sjms2EndpointTest extends CamelTestSupport {
 
     @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createVMService();
+    public static ArtemisService service = ArtemisServiceFactory.createVMService();
 
     @Override
     protected boolean useJmx() {
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicDurableConsumerTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicDurableConsumerTest.java
index ed0fcc47122..8470bedd66c 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicDurableConsumerTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicDurableConsumerTest.java
@@ -16,17 +16,24 @@
  */
 package org.apache.camel.component.sjms2.consumer;
 
+import jakarta.jms.ConnectionFactory;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.sjms2.Sjms2Component;
 import org.apache.camel.component.sjms2.support.Jms2TestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 import org.messaginghub.pooled.jms.JmsPoolConnectionFactory;
 
 public class InOnlyTopicDurableConsumerTest extends Jms2TestSupport {
 
     private static final String CONNECTION_ID = "test-connection-1";
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
 
     @Override
     protected boolean useJmx() {
@@ -76,4 +83,8 @@ public class InOnlyTopicDurableConsumerTest extends Jms2TestSupport {
             }
         };
     }
+
+    protected ConnectionFactory getConnectionFactory() throws Exception {
+        return getConnectionFactory(service.serviceAddress());
+    }
 }
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicSharedConsumerTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicSharedConsumerTest.java
index 1993ec7df44..e03d8fba9ac 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicSharedConsumerTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/consumer/InOnlyTopicSharedConsumerTest.java
@@ -16,14 +16,21 @@
  */
 package org.apache.camel.component.sjms2.consumer;
 
+import jakarta.jms.ConnectionFactory;
+
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.sjms2.support.Jms2TestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 public class InOnlyTopicSharedConsumerTest extends Jms2TestSupport {
 
     private static final String TEST_DESTINATION_NAME = "sjms2:topic:in.only.topic.consumer.test";
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
 
     @Override
     protected boolean useJmx() {
@@ -64,4 +71,8 @@ public class InOnlyTopicSharedConsumerTest extends Jms2TestSupport {
             }
         };
     }
+
+    protected ConnectionFactory getConnectionFactory() throws Exception {
+        return getConnectionFactory(service.serviceAddress());
+    }
 }
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyQueueProducerTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyQueueProducerTest.java
index d9c0afe962d..8b0cb55110c 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyQueueProducerTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyQueueProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.sjms2.producer;
 
+import jakarta.jms.ConnectionFactory;
 import jakarta.jms.Message;
 import jakarta.jms.MessageConsumer;
 import jakarta.jms.TextMessage;
@@ -24,7 +25,10 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.sjms.SjmsConstants;
 import org.apache.camel.component.sjms2.support.Jms2TestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -32,6 +36,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class InOnlyQueueProducerTest extends Jms2TestSupport {
 
     private static final String TEST_DESTINATION_NAME = "sync.queue.producer.test";
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
 
     @Test
     public void testInOnlyQueueProducer() throws Exception {
@@ -97,4 +103,8 @@ public class InOnlyQueueProducerTest extends Jms2TestSupport {
             }
         };
     }
+
+    protected ConnectionFactory getConnectionFactory() throws Exception {
+        return getConnectionFactory(service.serviceAddress());
+    }
 }
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyTopicProducerTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyTopicProducerTest.java
index a141643c727..9d79b6f3031 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyTopicProducerTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/InOnlyTopicProducerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.sjms2.producer;
 
+import jakarta.jms.ConnectionFactory;
 import jakarta.jms.Message;
 import jakarta.jms.MessageConsumer;
 import jakarta.jms.TextMessage;
@@ -23,7 +24,10 @@ import jakarta.jms.TextMessage;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.sjms2.support.Jms2TestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -31,6 +35,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class InOnlyTopicProducerTest extends Jms2TestSupport {
 
     private static final String TEST_DESTINATION_NAME = "test.foo.topic";
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
 
     public InOnlyTopicProducerTest() {
     }
@@ -83,4 +89,8 @@ public class InOnlyTopicProducerTest extends Jms2TestSupport {
             }
         };
     }
+
+    protected ConnectionFactory getConnectionFactory() throws Exception {
+        return getConnectionFactory(service.serviceAddress());
+    }
 }
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/Sjms2ToDSendDynamicTest.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/Sjms2ToDSendDynamicTest.java
index a2236417860..cbd4fcd3d44 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/Sjms2ToDSendDynamicTest.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/producer/Sjms2ToDSendDynamicTest.java
@@ -16,14 +16,22 @@
  */
 package org.apache.camel.component.sjms2.producer;
 
+import jakarta.jms.ConnectionFactory;
+
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.sjms2.support.Jms2TestSupport;
+import org.apache.camel.test.infra.artemis.services.ArtemisService;
+import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class Sjms2ToDSendDynamicTest extends Jms2TestSupport {
 
+    @RegisterExtension
+    public static ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
+
     @Test
     public void testToD() {
         template.sendBodyAndHeader("direct:start", "Hello bar", "where", "bar");
@@ -51,4 +59,7 @@ public class Sjms2ToDSendDynamicTest extends Jms2TestSupport {
         };
     }
 
+    protected ConnectionFactory getConnectionFactory() throws Exception {
+        return getConnectionFactory(service.serviceAddress());
+    }
 }
diff --git a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/support/Jms2TestSupport.java b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/support/Jms2TestSupport.java
index bfc8e859831..257e5f9b4bc 100644
--- a/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/support/Jms2TestSupport.java
+++ b/components/camel-sjms2/src/test/java/org/apache/camel/component/sjms2/support/Jms2TestSupport.java
@@ -31,20 +31,14 @@ import org.apache.camel.component.sjms.jms.DestinationCreationStrategy;
 import org.apache.camel.component.sjms2.Sjms2Component;
 import org.apache.camel.component.sjms2.jms.Jms2ObjectFactory;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.infra.artemis.services.ArtemisService;
-import org.apache.camel.test.infra.artemis.services.ArtemisServiceFactory;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A support class that builds up and tears down an ActiveMQ Artemis instance to be used for unit testing.
  */
-public class Jms2TestSupport extends CamelTestSupport {
-
-    @RegisterExtension
-    public ArtemisService service = ArtemisServiceFactory.createTCPAllProtocolsService();
+public abstract class Jms2TestSupport extends CamelTestSupport {
 
     protected final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -96,7 +90,7 @@ public class Jms2TestSupport extends CamelTestSupport {
         return camelContext;
     }
 
-    protected ConnectionFactory getConnectionFactory() throws Exception {
+    protected static ConnectionFactory getConnectionFactory(String serviceAddress) throws Exception {
         final String protocol = System.getProperty("protocol", "CORE").toUpperCase();
 
         //Currently AMQP and HORENTQ don't operate in exactly the same way on artemis as OPENWIRE
@@ -104,12 +98,14 @@ public class Jms2TestSupport extends CamelTestSupport {
         //of artemis we may be able test against them in an agnostic way.
         switch (protocol) {
             case "OPENWIRE":
-                return new ActiveMQConnectionFactory(service.serviceAddress());
+                return new ActiveMQConnectionFactory(serviceAddress);
             default:
-                return ActiveMQJMSClient.createConnectionFactory(service.serviceAddress(), "test");
+                return ActiveMQJMSClient.createConnectionFactory(serviceAddress, "test");
         }
     }
 
+    protected abstract ConnectionFactory getConnectionFactory() throws Exception;
+
     public void setSession(Session session) {
         this.session = session;
     }
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java
index f1ad9fa3235..fe079daacb3 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java
@@ -36,11 +36,11 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 public abstract class StompBaseTest extends CamelTestSupport {
 
     protected int numberOfMessages = 100;
-    int sslServicePort = AvailablePortFinder.getNextAvailable();
-    int servicePort = AvailablePortFinder.getNextAvailable();
+    static int sslServicePort = AvailablePortFinder.getNextAvailable();
+    static int servicePort = AvailablePortFinder.getNextAvailable();
 
     @RegisterExtension
-    public ArtemisService service = new ArtemisEmbeddedServiceBuilder()
+    public static ArtemisService service = new ArtemisEmbeddedServiceBuilder()
             .withCustomConfiguration(configuration -> {
                 try {
                     configuration.setJMXManagementEnabled(true);
diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java
index 6de555cf90f..3782a50ecaa 100644
--- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java
+++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java
@@ -20,11 +20,11 @@ import org.apache.activemq.artemis.core.server.QueueQueryResult;
 import org.apache.camel.test.infra.artemis.common.ArtemisProperties;
 import org.apache.camel.test.infra.common.services.TestService;
 import org.apache.camel.test.infra.common.services.TestServiceUtil;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
+import org.junit.jupiter.api.extension.AfterAllCallback;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 
-public interface ArtemisService extends BeforeEachCallback, AfterEachCallback, TestService {
+public interface ArtemisService extends AfterAllCallback, BeforeAllCallback, TestService {
 
     String serviceAddress();
 
@@ -43,12 +43,12 @@ public interface ArtemisService extends BeforeEachCallback, AfterEachCallback, T
     }
 
     @Override
-    default void afterEach(ExtensionContext extensionContext) throws Exception {
+    default void afterAll(ExtensionContext extensionContext) throws Exception {
         TestServiceUtil.tryShutdown(this, extensionContext);
     }
 
     @Override
-    default void beforeEach(ExtensionContext extensionContext) throws Exception {
+    default void beforeAll(ExtensionContext extensionContext) throws Exception {
         TestServiceUtil.tryInitialize(this, extensionContext);
     }
 
diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java
index 3c4675d3189..9fdc3c9ffd4 100644
--- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java
+++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java
@@ -74,12 +74,12 @@ public final class ArtemisServiceFactory {
         }
 
         @Override
-        public void afterEach(ExtensionContext extensionContext) {
+        public void afterAll(ExtensionContext extensionContext) {
             // NO-OP
         }
 
         @Override
-        public void beforeEach(ExtensionContext extensionContext) {
+        public void beforeAll(ExtensionContext extensionContext) {
             addToStore(extensionContext);
         }
     }