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 <angusyo...@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); } }