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/26 07:08:06 UTC

[camel] branch main updated (85a734d68ea -> 74688561555)

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

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


    from 85a734d68ea Sync deps
     new 7e91d98dc0d (chores) camel-jms: increase latch timeout
     new 906eeb62a19 (chores) camel-jms: test stability cleanups
     new b1ef563a6c4 (camel-test-infra-activemq) Generate truly unique broker
     new 74688561555 (chores) camel-jms: tries to adjust resource allocation

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 components/camel-jms/pom.xml                       |  3 +-
 .../jms/ActiveMQOriginalDestinationTest.java       |  2 +-
 .../component/jms/JmsAsyncStartListenerTest.java   |  2 +-
 .../jms/JmsBatchResequencerJMSPriorityTest.java    | 20 ++++++---
 ...msDeadLetterQueueUsingTransferExchangeTest.java |  4 +-
 .../jms/JmsDefaultTaskExecutorTypeTest.java        | 39 +++++++++--------
 .../JmsMessageCreatedStrategyComponentTest.java    |  2 +-
 .../jms/JmsMessageCreatedStrategyEndpointTest.java |  2 +-
 .../jms/JmsMessageIDNotOverridenAMQTest.java       |  2 +-
 .../component/jms/JmsPollingConsumerTest.java      | 24 +++++-----
 .../jms/JmsProducerConcurrentWithReplyTest.java    | 15 +++++--
 ...RequestReplyExclusiveReplyToConcurrentTest.java | 18 +++++---
 .../component/jms/JmsRouteUsingJMSXGroupTest.java  | 37 +++++++++++++---
 .../camel/component/jms/JmsSelectorInTest.java     |  2 +
 ...BodyNullErrorHandlerUseOriginalMessageTest.java |  6 ++-
 .../jms/JmsSimpleRequestLateReplyTest.java         |  2 +-
 .../JmsStreamMessageTypeNoStreamCachingTest.java   | 48 ++++++++------------
 .../component/jms/JmsStreamMessageTypeTest.java    |  5 +--
 .../component/jms/JmsTransferExchangeTest.java     | 12 ++---
 .../component/jms/ProduceMessageConverterTest.java |  4 +-
 .../issues/JmsBlockedAsyncRoutingEngineTest.java   |  2 +-
 .../jms/issues/JmsCustomJMSReplyToIssueTest.java   |  2 +-
 .../component/jms/issues/JmsInOnlyIssueTest.java   |  4 +-
 .../issues/JmsInOutPersistentReplyQueueTest.java   |  4 ++
 .../jms/issues/JmsToFileMessageIdTest.java         |  4 +-
 ...TransactionErrorHandlerRedeliveryDelayTest.java | 12 +++--
 ...tionErrorHandlerRedeliveryDelayTest-context.xml |  2 +-
 test-infra/camel-test-infra-activemq/pom.xml       |  5 +++
 .../services/ActiveMQEmbeddedServiceBuilder.java   | 51 ++++++++++++++++++----
 29 files changed, 213 insertions(+), 122 deletions(-)


[camel] 04/04: (chores) camel-jms: tries to adjust resource allocation

Posted by or...@apache.org.
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 7468856155521f3745b1e49cee8f05fcbfaa9a3d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 25 16:58:16 2022 +0200

    (chores) camel-jms: tries to adjust resource allocation
    
    The tests run flaky on systems with a very high core count. This tries to limit the concurrent tests to use at most 70% of the total core capacity
---
 components/camel-jms/pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/components/camel-jms/pom.xml b/components/camel-jms/pom.xml
index dc58b9f273e..0f082e16d2c 100644
--- a/components/camel-jms/pom.xml
+++ b/components/camel-jms/pom.xml
@@ -39,8 +39,9 @@
 
         <camel.surefire.reuseForks>true</camel.surefire.reuseForks>
         <camel.surefire.forkCount>1</camel.surefire.forkCount>
-        <camel.surefire.forkTimeout>120</camel.surefire.forkTimeout>
+        <camel.surefire.forkTimeout>240</camel.surefire.forkTimeout>
         <camel.surefire.parallel>true</camel.surefire.parallel>
+        <camel.surefire.parallel.factor>0.7</camel.surefire.parallel.factor>
     </properties>
 
     <dependencies>


[camel] 03/04: (camel-test-infra-activemq) Generate truly unique broker

Posted by or...@apache.org.
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 b1ef563a6c4db322b9ebf80d2d2b9a4a828128b6
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 25 14:35:26 2022 +0200

    (camel-test-infra-activemq) Generate truly unique broker
---
 test-infra/camel-test-infra-activemq/pom.xml       |  5 +++
 .../services/ActiveMQEmbeddedServiceBuilder.java   | 51 ++++++++++++++++++----
 2 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/test-infra/camel-test-infra-activemq/pom.xml b/test-infra/camel-test-infra-activemq/pom.xml
index 5536efa8267..e8d96b281ce 100644
--- a/test-infra/camel-test-infra-activemq/pom.xml
+++ b/test-infra/camel-test-infra-activemq/pom.xml
@@ -53,6 +53,11 @@
             <type>test-jar</type>
         </dependency>
 
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.activemq</groupId>
             <artifactId>activemq-broker</artifactId>
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 2c6438adb99..21159fb143f 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
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.net.URI;
 import java.util.List;
 import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.LongAdder;
 import java.util.function.Consumer;
 
 import javax.management.ObjectName;
@@ -48,6 +49,9 @@ import org.apache.activemq.store.PersistenceAdapterFactory;
 import org.apache.activemq.thread.TaskRunnerFactory;
 import org.apache.activemq.usage.SystemUsage;
 import org.apache.activemq.util.IOExceptionHandler;
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.fail;
 
@@ -57,10 +61,13 @@ import static org.junit.jupiter.api.Assertions.fail;
  * embedded ActiveMQ, they can use this to wrap the broker service into the test-infra compatible service that can be
  * managed by Junit 5.
  */
-public class ActiveMQEmbeddedServiceBuilder {
-    private BrokerService brokerService;
+public final class ActiveMQEmbeddedServiceBuilder {
+    private static final Logger LOG = LoggerFactory.getLogger(ActiveMQEmbeddedServiceBuilder.class);
 
-    public ActiveMQEmbeddedServiceBuilder() {
+    private static final LongAdder BROKER_COUNT = new LongAdder();
+    private final BrokerService brokerService;
+
+    private ActiveMQEmbeddedServiceBuilder() {
         brokerService = new BrokerService();
     }
 
@@ -602,16 +609,40 @@ public class ActiveMQEmbeddedServiceBuilder {
     }
 
     private static String generateDataDirectoryPathForInstance(String name) {
-        return ActiveMQEmbeddedServiceBuilder.class.getResource("/").getFile() + name
-               + ThreadLocalRandom.current().nextInt(1000);
+        final String dataDirectoryPath = ActiveMQEmbeddedServiceBuilder.class.getResource("/").getFile() + name;
+
+        final File dataDirectory = new File(dataDirectoryPath);
+        if (dataDirectory.exists()) {
+            try {
+                FileUtils.deleteDirectory(dataDirectory);
+            } catch (IOException e) {
+                LOG.warn(
+                        "Could not delete the data directory at {}: {} (the error will be ignored, but the tests are likely to fail)",
+                        dataDirectoryPath, e.getMessage());
+            }
+        }
+
+        return dataDirectoryPath;
+    }
+
+    private static String generateSemiUniqueBrokerName() {
+        final String semiUniqueName
+                = ActiveMQEmbeddedServiceBuilder.class.getSimpleName() + "-" + BROKER_COUNT.longValue() + "."
+                  + ThreadLocalRandom.current().nextInt(1000);
+
+        BROKER_COUNT.increment();
+        return semiUniqueName;
     }
 
     public static ActiveMQEmbeddedServiceBuilder defaultBroker() {
-        return defaultBroker(ActiveMQEmbeddedServiceBuilder.class.getSimpleName());
+        final String semiUniqueName = generateSemiUniqueBrokerName();
+
+        return defaultBroker(semiUniqueName);
     }
 
     public static ActiveMQEmbeddedServiceBuilder defaultBroker(String name) {
         final String dataDirectoryPath = generateDataDirectoryPathForInstance(name);
+
         return new ActiveMQEmbeddedServiceBuilder()
                 .withDeleteAllMessagesOnStartup(true)
                 .withBrokerName(name)
@@ -621,9 +652,11 @@ public class ActiveMQEmbeddedServiceBuilder {
     }
 
     public static ActiveMQEmbeddedServiceBuilder persistentBroker() {
-        final String name = "persistent" + ActiveMQEmbeddedServiceBuilder.class.getSimpleName()
-                            + ThreadLocalRandom.current().nextInt(1000);
-        return persistentBroker(name);
+        String semiUniqueName = "persistent" + generateSemiUniqueBrokerName();
+
+        BROKER_COUNT.increment();
+
+        return persistentBroker(semiUniqueName);
     }
 
     public static ActiveMQEmbeddedServiceBuilder persistentBroker(String name) {


[camel] 02/04: (chores) camel-jms: test stability cleanups

Posted by or...@apache.org.
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 906eeb62a19362061af0840b8c82f8f3564f7534
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 25 09:45:20 2022 +0200

    (chores) camel-jms: test stability cleanups
    
    - Isolate a few tests
    - Adjust timeouts
    - Use unique resources
    - Remove duplicated code
    - Move some logic to the setup methods
    - Cleanup resources
    - Avoid blocking for too long
    - Make a flaky test non-parallel
    - Other minor cleanups
---
 .../jms/ActiveMQOriginalDestinationTest.java       |  2 +-
 .../component/jms/JmsAsyncStartListenerTest.java   |  2 +-
 .../jms/JmsBatchResequencerJMSPriorityTest.java    | 20 ++++++---
 ...msDeadLetterQueueUsingTransferExchangeTest.java |  4 +-
 .../jms/JmsDefaultTaskExecutorTypeTest.java        | 39 +++++++++---------
 .../JmsMessageCreatedStrategyComponentTest.java    |  2 +-
 .../jms/JmsMessageCreatedStrategyEndpointTest.java |  2 +-
 .../jms/JmsMessageIDNotOverridenAMQTest.java       |  2 +-
 .../component/jms/JmsPollingConsumerTest.java      | 21 +++++-----
 .../jms/JmsProducerConcurrentWithReplyTest.java    | 15 +++++--
 ...RequestReplyExclusiveReplyToConcurrentTest.java | 16 ++++++--
 .../component/jms/JmsRouteUsingJMSXGroupTest.java  | 37 ++++++++++++++---
 .../camel/component/jms/JmsSelectorInTest.java     |  2 +
 ...BodyNullErrorHandlerUseOriginalMessageTest.java |  6 ++-
 .../jms/JmsSimpleRequestLateReplyTest.java         |  2 +-
 .../JmsStreamMessageTypeNoStreamCachingTest.java   | 48 ++++++++--------------
 .../component/jms/JmsStreamMessageTypeTest.java    |  5 +--
 .../component/jms/JmsTransferExchangeTest.java     | 12 +++---
 .../component/jms/ProduceMessageConverterTest.java |  4 +-
 .../issues/JmsBlockedAsyncRoutingEngineTest.java   |  2 +-
 .../jms/issues/JmsCustomJMSReplyToIssueTest.java   |  2 +-
 .../component/jms/issues/JmsInOnlyIssueTest.java   |  4 +-
 .../issues/JmsInOutPersistentReplyQueueTest.java   |  4 ++
 .../jms/issues/JmsToFileMessageIdTest.java         |  4 +-
 ...TransactionErrorHandlerRedeliveryDelayTest.java | 12 ++++--
 ...tionErrorHandlerRedeliveryDelayTest-context.xml |  2 +-
 26 files changed, 162 insertions(+), 109 deletions(-)

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 6f3d3d403e1..bc72c2fc061 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
@@ -92,7 +92,7 @@ public class ActiveMQOriginalDestinationTest extends AbstractJMSTest {
      * <p/>
      * This implementation uses ActiveMQ specific code which can be moved to activemq-camel when it supports Camel 2.16
      */
-    private class OriginalDestinationPropagateStrategy implements MessageCreatedStrategy {
+    private static class OriginalDestinationPropagateStrategy implements MessageCreatedStrategy {
 
         // TODO: This is supported out of the box from ActiveMQ 5.14 onwards, and hence remove OriginalDestinationPropagateStrategy
 
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 2063e9f79b9..7d5b5da0180 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
@@ -41,7 +41,7 @@ public class JmsAsyncStartListenerTest extends AbstractPersistentJMSTest {
         result.expectedMessageCount(2);
 
         template.sendBody("activemq:queue:JmsAsyncStartListenerTest", "Hello World");
-        template.sendBody("activemq:queue:JmsAsyncStartListenerTest", "Gooday World");
+        template.sendBody("activemq:queue:JmsAsyncStartListenerTest", "Goodbye World");
 
         result.assertIsSatisfied();
     }
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 1b277584a24..ef02ebb03aa 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,20 +16,22 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.TimeUnit;
+
 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 org.junit.jupiter.api.parallel.Isolated;
 
 /**
  * JMSPriority being ordered using the resequencer in batch mode.
  */
+@Isolated
 public class JmsBatchResequencerJMSPriorityTest extends AbstractJMSTest {
 
-    @Test
-    public void testBatchResequencerJMSPriority() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("G", "A", "B", "E", "H", "C", "D", "F");
-
+    @BeforeEach
+    void sendMessages() {
         // must use preserveMessageQos=true to be able to specify the JMSPriority to be used
         template.sendBodyAndHeader("jms:queue:JmsBatchResequencerJMSPriorityTest?preserveMessageQos=true", "A", "JMSPriority",
                 6);
@@ -47,8 +49,14 @@ public class JmsBatchResequencerJMSPriorityTest extends AbstractJMSTest {
                 8);
         template.sendBodyAndHeader("jms:queue:JmsBatchResequencerJMSPriorityTest?preserveMessageQos=true", "H", "JMSPriority",
                 6);
+    }
+
+    @Test
+    public void testBatchResequencerJMSPriority() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("G", "A", "B", "E", "H", "C", "D", "F");
 
-        assertMockEndpointsSatisfied();
+        assertMockEndpointsSatisfied(5, TimeUnit.SECONDS);
     }
 
     @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 c685bf7e4e3..58cf7a9e9be 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
@@ -41,7 +41,7 @@ public class JmsDeadLetterQueueUsingTransferExchangeTest extends AbstractJMSTest
 
     @Test
     public void testKabom() throws Exception {
-        MockEndpoint mock = getMockEndpoint("mock:dead");
+        MockEndpoint mock = getMockEndpoint("mock:JmsDeadLetterQueueUsingTransferExchangeTest.dead");
         mock.expectedBodiesReceived("Kabom");
 
         template.sendBody("direct:start", "Kabom");
@@ -68,7 +68,7 @@ public class JmsDeadLetterQueueUsingTransferExchangeTest extends AbstractJMSTest
                     }
                 }).to("mock:result");
 
-                from(getUri()).to("mock:dead");
+                from(getUri()).to("mock:JmsDeadLetterQueueUsingTransferExchangeTest.dead");
             }
         };
     }
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 22d92e0e677..ffe2e710c92 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
@@ -50,6 +50,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @Tags({ @Tag("not-parallel"), @Tag("slow") })
 @Timeout(60)
 public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
+    public static final int MESSAGE_COUNT = 500;
+    public static final int POOL_SIZE = 5;
+
     private static final Logger LOG = LoggerFactory.getLogger(JmsDefaultTaskExecutorTypeTest.class);
 
     @RegisterExtension
@@ -60,8 +63,8 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
         context.getRouteController().startRoute("threadPool");
         Long beforeThreadCount = currentThreadCount();
         getMockEndpoint("mock:result.threadPool").expectedMessageCount(1000);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.threadPool", 500, 5, DefaultTaskExecutorType.ThreadPool);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.threadPool", 500, 5, DefaultTaskExecutorType.ThreadPool);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.threadPool", DefaultTaskExecutorType.ThreadPool);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.threadPool", DefaultTaskExecutorType.ThreadPool);
         assertMockEndpointsSatisfied();
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
         LOG.info("Number of threads created, testThreadPoolTaskExecutor: {}", numberThreadsCreated);
@@ -74,9 +77,9 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
         context.getRouteController().startRoute("simpleAsync");
         Long beforeThreadCount = currentThreadCount();
         getMockEndpoint("mock:result.simpleAsync").expectedMessageCount(1000);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.simpleAsync", 500, 5, DefaultTaskExecutorType.SimpleAsync);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.simpleAsync", 500, 5, DefaultTaskExecutorType.SimpleAsync);
-        assertMockEndpointsSatisfied();
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.simpleAsync", DefaultTaskExecutorType.SimpleAsync);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.simpleAsync", DefaultTaskExecutorType.SimpleAsync);
+        assertMockEndpointsSatisfied(40, TimeUnit.SECONDS);
         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 "
@@ -88,8 +91,8 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
         context.getRouteController().startRoute("default");
         Long beforeThreadCount = currentThreadCount();
         getMockEndpoint("mock:result.default").expectedMessageCount(1000);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", 500, 5, null);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", 500, 5, null);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", null);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", null);
         assertMockEndpointsSatisfied();
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
         LOG.info("Number of threads created, testDefaultTaskExecutor: {}", numberThreadsCreated);
@@ -106,9 +109,9 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
         context.getRouteController().startRoute("default");
         Long beforeThreadCount = currentThreadCount();
         getMockEndpoint("mock:result.default").expectedMessageCount(1000);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", 500, 5, DefaultTaskExecutorType.ThreadPool);
-        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", 500, 5, DefaultTaskExecutorType.ThreadPool);
-        assertMockEndpointsSatisfied();
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", DefaultTaskExecutorType.ThreadPool);
+        doSendMessages("foo.JmsDefaultTaskExecutorTypeTest.default", DefaultTaskExecutorType.ThreadPool);
+        assertMockEndpointsSatisfied(40, TimeUnit.SECONDS);
         Long numberThreadsCreated = currentThreadCount() - beforeThreadCount;
         LOG.info("Number of threads created, testDefaultTaskExecutorThreadPoolAtComponentConfig: " + numberThreadsCreated);
         assertTrue(numberThreadsCreated <= 100, "Number of threads created should be equal or lower than "
@@ -120,8 +123,7 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
             IllegalAccessException, InvocationTargetException {
         Method m = ThreadHelper.class.getDeclaredMethod("nextThreadCounter", (Class<?>[]) null);
         m.setAccessible(true);
-        Long nextThreadCount = (Long) m.invoke(null);
-        return nextThreadCount;
+        return (Long) m.invoke(null);
     }
 
     @Override
@@ -152,22 +154,21 @@ public class JmsDefaultTaskExecutorTypeTest extends CamelTestSupport {
                 return null;
             });
         }
-
     }
 
     private void doSendMessages(
-            final String queueName, int messages, int poolSize,
+            final String queueName,
             final DefaultTaskExecutorType defaultTaskExecutorType)
             throws Exception {
-        ExecutorService executor = Executors.newFixedThreadPool(poolSize);
-        final CountDownLatch latch = new CountDownLatch(messages);
+        final ExecutorService executor = Executors.newFixedThreadPool(POOL_SIZE);
+        final CountDownLatch latch = new CountDownLatch(MESSAGE_COUNT);
 
         try {
-            doSendMessages(queueName, messages, defaultTaskExecutorType, latch, executor);
+            doSendMessages(queueName, MESSAGE_COUNT, defaultTaskExecutorType, latch, executor);
             executor.shutdown();
-            executor.awaitTermination(5, TimeUnit.SECONDS);
+            executor.awaitTermination(POOL_SIZE, TimeUnit.SECONDS);
         } finally {
-            latch.await(5, TimeUnit.SECONDS);
+            latch.await(POOL_SIZE, TimeUnit.SECONDS);
         }
     }
 
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 9d66e15ec69..70617504cf3 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
@@ -65,7 +65,7 @@ public class JmsMessageCreatedStrategyComponentTest extends AbstractJMSTest {
         };
     }
 
-    private class MyMessageCreatedStrategy implements MessageCreatedStrategy {
+    private static class MyMessageCreatedStrategy implements MessageCreatedStrategy {
 
         @Override
         public void onMessageCreated(Message message, Session session, Exchange exchange, Throwable cause) {
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 8ad2695653b..c9cc2c2cfd6 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
@@ -62,7 +62,7 @@ public class JmsMessageCreatedStrategyEndpointTest extends AbstractJMSTest {
         };
     }
 
-    private class MyMessageCreatedStrategy implements MessageCreatedStrategy {
+    private static class MyMessageCreatedStrategy implements MessageCreatedStrategy {
 
         @Override
         public void onMessageCreated(Message message, Session session, Exchange exchange, Throwable cause) {
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 898f88eb275..b096a6139f5 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
@@ -79,7 +79,7 @@ public class JmsMessageIDNotOverridenAMQTest extends AbstractJMSTest {
         };
     }
 
-    private class MyMessageCreatedStrategy implements MessageCreatedStrategy {
+    private static class MyMessageCreatedStrategy implements MessageCreatedStrategy {
 
         @Override
         public void onMessageCreated(Message message, Session session, Exchange exchange, Throwable cause) {
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 b876d8e0264..18f29387fde 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
@@ -26,17 +26,19 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Isolated
 public class JmsPollingConsumerTest extends AbstractJMSTest {
 
     @Nested
     class ConsumerWaitTest {
 
-        private CountDownLatch latch = new CountDownLatch(1);
+        private final CountDownLatch latch = new CountDownLatch(1);
 
         @BeforeEach
         void setupConsumer() {
@@ -68,7 +70,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
 
     @Nested
     class ConsumerNoWaitTest {
-        private CountDownLatch latch = new CountDownLatch(1);
+        private final CountDownLatch latch = new CountDownLatch(1);
         private volatile String body;
 
         @BeforeEach
@@ -90,8 +92,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
             MockEndpoint mock = getMockEndpoint("mock:result");
             mock.expectedBodiesReceived("Hello Claus");
 
-            // wait a little to demonstrate we can start poll before we have a msg on the queue
-            assertTrue(latch.await(500, TimeUnit.MILLISECONDS));
+            assertTrue(latch.await(1, TimeUnit.SECONDS));
             assertNull(body, "Message body should be null because there was no message and the polling consumer is 'no wait'");
 
             template.sendBody("direct:start", "Hello");
@@ -102,7 +103,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
 
     @Nested
     class LowTimeoutTest {
-        private CountDownLatch latch = new CountDownLatch(1);
+        private final CountDownLatch latch = new CountDownLatch(1);
         private volatile String body;
 
         @BeforeEach
@@ -132,12 +133,10 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
 
     @Nested
     class HighTimeOutTest {
-        private CountDownLatch latch = new CountDownLatch(1);
+        private final CountDownLatch latch = new CountDownLatch(1);
 
         @BeforeEach
         void setupConsumer() {
-            // 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", 3000, String.class);
                 template.sendBody("activemq:queue.JmsPollingConsumerTest.foo", body + " Claus");
@@ -150,10 +149,12 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
             MockEndpoint mock = getMockEndpoint("mock:result");
             mock.expectedBodiesReceived("Hello Claus");
 
-            // wait a little to demonstrate we can start poll before we have a msg on the queue
             assertFalse(latch.await(500, TimeUnit.MILLISECONDS),
-                    "No message should have been received within 500 milliseconds");
+                    "No message should have been received within 500 milliseconds because the test has not sent any");
+
             template.sendBody("direct:start", "Hello");
+            assertTrue(latch.await(5, TimeUnit.SECONDS),
+                    "A message should have been received but it was not");
 
             assertMockEndpointsSatisfied();
         }
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 a41fd8a91bc..021500e3aec 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
@@ -21,8 +21,10 @@ import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 import org.junit.jupiter.api.Timeout;
@@ -34,6 +36,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @TestInstance(TestInstance.Lifecycle.PER_METHOD)
 public class JmsProducerConcurrentWithReplyTest extends AbstractJMSTest {
 
+    private ExecutorService executor;
+
+    @AfterEach
+    void cleanupExecutor() {
+        executor.shutdownNow();
+    }
+
     @Test
     public void testNoConcurrentProducers() throws Exception {
         doSendMessages(1, 1);
@@ -48,7 +57,7 @@ public class JmsProducerConcurrentWithReplyTest extends AbstractJMSTest {
         getMockEndpoint("mock:result").expectedMessageCount(files);
         getMockEndpoint("mock:result").expectsNoDuplicates(body());
 
-        ExecutorService executor = Executors.newFixedThreadPool(poolSize);
+        executor = Executors.newFixedThreadPool(poolSize);
         final List<Future<String>> futures = new ArrayList<>();
         for (int i = 0; i < files; i++) {
             final int index = i;
@@ -59,10 +68,10 @@ public class JmsProducerConcurrentWithReplyTest extends AbstractJMSTest {
         assertMockEndpointsSatisfied();
 
         for (int i = 0; i < futures.size(); i++) {
-            Object out = futures.get(i).get();
+            Object out = futures.get(i).get(5, TimeUnit.SECONDS);
             assertEquals("Bye Message " + i, out);
         }
-        executor.shutdownNow();
+
     }
 
     @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 cd117506ad8..75241cb066f 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
@@ -26,6 +26,7 @@ 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.junit.jupiter.api.parallel.Isolated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,6 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@Isolated
 public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTest {
 
     private static final Logger LOG = LoggerFactory.getLogger(JmsRequestReplyExclusiveReplyToConcurrentTest.class);
@@ -47,10 +49,16 @@ public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTe
     }
 
     @AfterEach
-    void cleanupExecutor() throws InterruptedException {
-        // just sleep a bit before shutting down
-        Thread.sleep(1000);
-        executor.shutdownNow();
+    void cleanupExecutor() {
+        executor.shutdown();
+        try {
+            final boolean finished = executor.awaitTermination(1, TimeUnit.SECONDS);
+            if (!finished) {
+                LOG.debug("Executor tasks did not terminate within the timeout (shutdown will be forced)");
+            }
+        } catch (InterruptedException e) {
+            executor.shutdownNow();
+        }
     }
 
     @Test
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 a20994885f6..4f48cfa0895 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
@@ -18,30 +18,40 @@ package org.apache.camel.component.jms;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Timeout;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.jms.JmsConstants.JMS_X_GROUP_ID;
 import static org.apache.camel.test.junit5.TestSupport.body;
 
+@Timeout(20)
 public class JmsRouteUsingJMSXGroupTest extends AbstractJMSTest {
+    public static final int POOL_SIZE = 1;
+    private static final Logger LOG = LoggerFactory.getLogger(JmsRouteUsingJMSXGroupTest.class);
+
+    private ExecutorService executor;
 
     @Test
     public void testNoConcurrentProducersJMSXGroupID() throws Exception {
-        doSendMessages(1, 1);
+        doSendMessages(1);
     }
 
     @Test
     public void testConcurrentProducersJMSXGroupID() throws Exception {
-        doSendMessages(10, 1);
+        doSendMessages(10);
     }
 
-    private void doSendMessages(int files, int poolSize) throws Exception {
+    private void doSendMessages(int files) throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(files * 2);
         getMockEndpoint("mock:result").expectsNoDuplicates(body());
 
-        ExecutorService executor = Executors.newFixedThreadPool(poolSize);
         for (int i = 0; i < files; i++) {
             final int index = i;
             executor.submit(() -> {
@@ -53,7 +63,24 @@ public class JmsRouteUsingJMSXGroupTest extends AbstractJMSTest {
         }
 
         assertMockEndpointsSatisfied();
-        executor.shutdownNow();
+    }
+
+    @BeforeEach
+    void setupExecutor() {
+        executor = Executors.newFixedThreadPool(POOL_SIZE);
+    }
+
+    @AfterEach
+    void cleanupExecutor() {
+        executor.shutdown();
+        try {
+            final boolean finished = executor.awaitTermination(1, TimeUnit.SECONDS);
+            if (!finished) {
+                LOG.debug("Executor tasks did not terminate within the timeout (shutdown will be forced)");
+            }
+        } catch (InterruptedException e) {
+            executor.shutdownNow();
+        }
     }
 
     @Override
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 441b8966675..965bb34d0b6 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
@@ -20,10 +20,12 @@ 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 org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @Timeout(30)
+@Isolated
 public class JmsSelectorInTest extends AbstractJMSTest {
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSetBodyNullErrorHandlerUseOriginalMessageTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSetBodyNullErrorHandlerUseOriginalMessageTest.java
index 40f85cc5d38..590fa083785 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSetBodyNullErrorHandlerUseOriginalMessageTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSetBodyNullErrorHandlerUseOriginalMessageTest.java
@@ -33,7 +33,8 @@ public class JmsSetBodyNullErrorHandlerUseOriginalMessageTest extends AbstractPe
 
         assertMockEndpointsSatisfied();
 
-        String body = consumer.receiveBody("activemq:queue:dead", 5000, String.class);
+        String body = consumer.receiveBody("activemq:queue:JmsSetBodyNullErrorHandlerUseOriginalMessageTest.dead", 5000,
+                String.class);
         assertEquals("Hello World", body);
     }
 
@@ -42,7 +43,8 @@ public class JmsSetBodyNullErrorHandlerUseOriginalMessageTest extends AbstractPe
         return new RouteBuilder() {
             @Override
             public void configure() {
-                errorHandler(deadLetterChannel("activemq:queue:dead").useOriginalMessage());
+                errorHandler(deadLetterChannel("activemq:queue:JmsSetBodyNullErrorHandlerUseOriginalMessageTest.dead")
+                        .useOriginalMessage());
 
                 from("activemq:queue:JmsSetBodyNullErrorHandlerUseOriginalMessageTest")
                         .to("mock:foo")
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 f87736a8532..93d85b352b8 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
@@ -133,6 +133,6 @@ public class JmsSimpleRequestLateReplyTest extends AbstractJMSTest {
 
     protected static String getQueueEndpointName() {
         // need to use a fixed queue for reply as a temp queue may be deleted
-        return "activemq:queue:hello.queue?replyTo=myReplyQueue";
+        return "activemq:queue:JmsSimpleRequestLateReplyTest?replyTo=JmsSimpleRequestLateReplyTest.reply";
     }
 }
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 e2c8a3dfca0..a8515a42562 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
@@ -23,12 +23,16 @@ 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.DisplayName;
+import org.junit.jupiter.api.parallel.ResourceLock;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
 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;
 
+@ResourceLock("target/stream/JmsStreamMessageTypeNoStreamCachingTest")
 public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest {
 
     @Override
@@ -59,36 +63,17 @@ public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest {
         return camelContext;
     }
 
-    @Test
-    public void testStreamType() 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:resultJmsStreamMessageTypeNoStreamCachingTest").expectedMessageCount(1);
 
         // copy the file
-        FileUtil.copyFile(new File("src/test/data/message1.xml"), new File("target/stream/in/message1.xml"));
+        final File baseFile = new File("src/test/data/", filename);
+        final File sourceFile = new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/in", filename);
 
-        assertMockEndpointsSatisfied();
-
-        Object body = getMockEndpoint("mock:resultJmsStreamMessageTypeNoStreamCachingTest").getReceivedExchanges().get(0)
-                .getIn().getBody();
-        StreamMessageInputStream is = assertIsInstanceOf(StreamMessageInputStream.class, body);
-
-        // no more bytes should be available on the inputstream
-        assertEquals(0, is.available());
-
-        // 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/JmsStreamMessageTypeNoStreamCachingTest/out/message1.xml"));
-        assertEquals(srcContent, dstContent, "both the source and destination files should have the same content");
-    }
-
-    @Test
-    public void testStreamTypeWithBigFile() throws Exception {
-        getMockEndpoint("mock:resultJmsStreamMessageTypeNoStreamCachingTest").expectedMessageCount(1);
-
-        // copy the file
-        FileUtil.copyFile(new File("src/test/data/message1.txt"), new File("target/stream/in/message1.txt"));
+        FileUtil.copyFile(baseFile, sourceFile);
 
         assertMockEndpointsSatisfied();
 
@@ -96,14 +81,14 @@ public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest {
                 .getIn().getBody();
         StreamMessageInputStream is = assertIsInstanceOf(StreamMessageInputStream.class, body);
 
-        // no more bytes should be available on the inputstream
+        // no more bytes should be available on the input stream
         assertEquals(0, is.available());
 
         // 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, baseFile);
         String dstContent
                 = context.getTypeConverter().mandatoryConvertTo(String.class,
-                        new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/out/message1.txt"));
+                        new File("target/stream/JmsStreamMessageTypeNoStreamCachingTest/out/", filename));
         assertEquals(srcContent, dstContent, "both the source and destination files should have the same content");
     }
 
@@ -112,7 +97,8 @@ public class JmsStreamMessageTypeNoStreamCachingTest extends AbstractJMSTest {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("file:target/stream/in").to("jms:queue:JmsStreamMessageTypeNoStreamCachingTest");
+                from("file:target/stream/JmsStreamMessageTypeNoStreamCachingTest/in")
+                        .to("jms:queue:JmsStreamMessageTypeNoStreamCachingTest");
 
                 from("jms:queue:JmsStreamMessageTypeNoStreamCachingTest")
                         .to("file:target/stream/JmsStreamMessageTypeNoStreamCachingTest/out")
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 2e31df32b64..2f4aa126efa 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
@@ -25,8 +25,7 @@ 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.DisplayName;
-import org.junit.jupiter.api.Tag;
-import org.junit.jupiter.api.Tags;
+import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
@@ -37,7 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 /**
  * This test cannot run in parallel: it reuses the same path for different test iterations
  */
-@Tags({ @Tag("not-parallel") })
+@ResourceLock("target/stream/JmsStreamMessageTypeTest")
 public class JmsStreamMessageTypeTest extends AbstractJMSTest {
 
     @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 3c028396ffc..da3c61e6763 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,6 +16,8 @@
  */
 package org.apache.camel.component.jms;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -23,14 +25,14 @@ import org.junit.jupiter.api.Test;
 public class JmsTransferExchangeTest extends AbstractJMSTest {
 
     protected String getUri() {
-        return "activemq:queue:foo?transferExchange=true";
+        return "activemq:queue:JmsTransferExchangeTest?transferExchange=true";
     }
 
     @Test
     public void testBodyOnly() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
-        mock.expectedHeaderReceived("JMSDestination", "queue://foo");
+        mock.expectedHeaderReceived("JMSDestination", "queue://JmsTransferExchangeTest");
 
         template.sendBody("direct:start", "Hello World");
 
@@ -42,7 +44,7 @@ public class JmsTransferExchangeTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
         mock.expectedHeaderReceived("foo", "cheese");
-        mock.expectedHeaderReceived("JMSDestination", "queue://foo");
+        mock.expectedHeaderReceived("JMSDestination", "queue://JmsTransferExchangeTest");
 
         template.sendBodyAndHeader("direct:start", "Hello World", "foo", "cheese");
 
@@ -55,7 +57,7 @@ public class JmsTransferExchangeTest extends AbstractJMSTest {
         mock.expectedBodiesReceived("Hello World");
         mock.expectedHeaderReceived("foo", "cheese");
         mock.expectedPropertyReceived("bar", 123);
-        mock.expectedHeaderReceived("JMSDestination", "queue://foo");
+        mock.expectedHeaderReceived("JMSDestination", "queue://JmsTransferExchangeTest");
 
         template.send("direct:start", exchange -> {
             exchange.getIn().setBody("Hello World");
@@ -63,7 +65,7 @@ public class JmsTransferExchangeTest extends AbstractJMSTest {
             exchange.setProperty("bar", 123);
         });
 
-        assertMockEndpointsSatisfied();
+        assertMockEndpointsSatisfied(5, TimeUnit.SECONDS);
     }
 
     @Override
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 efbc639f52b..36d4198f05c 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
@@ -43,7 +43,7 @@ public class ProduceMessageConverterTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
 
-        template.sendBody("activemq:queue:hello?messageConverter=#myMessageConverter", "World");
+        template.sendBody("activemq:queue:ProduceMessageConverterTest?messageConverter=#myMessageConverter", "World");
 
         assertMockEndpointsSatisfied();
     }
@@ -52,7 +52,7 @@ public class ProduceMessageConverterTest extends AbstractJMSTest {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("activemq:queue:hello").to("mock:result");
+                from("activemq:queue:ProduceMessageConverterTest").to("mock:result");
             }
         };
     }
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 5e8d3f4e598..a6267d12efb 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
@@ -141,7 +141,7 @@ public class JmsBlockedAsyncRoutingEngineTest extends CamelTestSupport {
         };
     }
 
-    private class DelayerBrokerPlugin extends BrokerPluginSupport {
+    private static class DelayerBrokerPlugin extends BrokerPluginSupport {
         int i;
 
         @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 f3f878ad05b..0deffcc35a6 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
@@ -30,7 +30,7 @@ import org.springframework.jms.core.JmsTemplate;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-@Timeout(10)
+@Timeout(15)
 public class JmsCustomJMSReplyToIssueTest extends AbstractJMSTest {
 
     private JmsComponent amq;
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 ccf24fea347..a0030ad9e30 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
@@ -50,7 +50,7 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
 
         final CompletableFuture<Object> future = template.asyncSendBody("activemq:queue:JmsInOnlyIssueTest.in", "Hello World");
 
-        assertDoesNotThrow(() -> future.get(1, TimeUnit.SECONDS));
+        assertDoesNotThrow(() -> future.get(5, TimeUnit.SECONDS));
 
         assertMockEndpointsSatisfied();
     }
@@ -83,7 +83,7 @@ public class JmsInOnlyIssueTest extends AbstractJMSTest {
             exchange.getIn().setBody("Hello World");
         });
 
-        assertDoesNotThrow(() -> future.get(1, TimeUnit.SECONDS));
+        assertDoesNotThrow(() -> future.get(5, TimeUnit.SECONDS));
 
         assertMockEndpointsSatisfied();
     }
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 89638285f2f..87dcf8b44c4 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
@@ -19,8 +19,12 @@ package org.apache.camel.component.jms.issues;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractJMSTest;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 
+// Not parallel due to processing some part of the route concurrently (may be delayed when running on the test threads)
+@Tags({ @Tag("not-parallel") })
 public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
 
     @Test
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 7ec9de1074c..bd8f98ca7d7 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
@@ -36,7 +36,7 @@ public class JmsToFileMessageIdTest extends AbstractJMSTest {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
 
-        template.sendBody("activemq:foo", "Hello World");
+        template.sendBody("activemq:JmsToFileMessageIdTest", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
@@ -52,7 +52,7 @@ public class JmsToFileMessageIdTest extends AbstractJMSTest {
             @Override
             public void configure() {
                 // Make a route from an activemq queue to a file endpoint, then try to call getMessageId()
-                from("activemq:foo")
+                from("activemq:JmsToFileMessageIdTest")
                         .process(exchange -> {
                             // assert camel id is based on jms id
                             String camelId = exchange.getIn().getMessageId();
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest.java
index 35860ce09e6..a9467c88e8f 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.jms.issues;
 
+import java.util.concurrent.atomic.LongAdder;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
@@ -30,7 +32,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
  */
 public class TransactionErrorHandlerRedeliveryDelayTest extends CamelSpringTestSupport {
 
-    private static volatile int counter;
+    private static LongAdder counter = new LongAdder();
 
     @Override
     protected AbstractApplicationContext createApplicationContext() {
@@ -42,7 +44,7 @@ public class TransactionErrorHandlerRedeliveryDelayTest extends CamelSpringTestS
     public void testTransactedRedeliveryDelay() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
 
-        template.sendBody("activemq:queue:in", "Hello World");
+        template.sendBody("activemq:queue:TransactionErrorHandlerRedeliveryDelayTest.in", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
@@ -54,8 +56,10 @@ public class TransactionErrorHandlerRedeliveryDelayTest extends CamelSpringTestS
 
         @Override
         public void process(Exchange exchange) {
-            if (counter++ < 3) {
-                throw new IllegalArgumentException("Forced exception as counter is " + counter);
+            int counterValue = counter.intValue();
+            counter.increment();
+            if (counterValue < 3) {
+                throw new IllegalArgumentException("Forced exception as counter is " + counterValue);
             }
             assertTrue(exchange.isTransacted(), "Should be transacted");
             exchange.getIn().setBody("Bye World");
diff --git a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
index 7264364b436..4ce20a95881 100644
--- a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
+++ b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
@@ -26,7 +26,7 @@
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
         <jmxAgent id="agent" disabled="true"/>
         <route errorHandlerRef="myTransactionErrorHandler">
-            <from uri="activemq:queue:in"/>
+            <from uri="activemq:queue:TransactionErrorHandlerRedeliveryDelayTest.in"/>
             <transacted ref="required"/>
             <process ref="myFailureProcessor"/>
             <to uri="mock:result"/>


[camel] 01/04: (chores) camel-jms: increase latch timeout

Posted by or...@apache.org.
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 7e91d98dc0dba354833c1bf28e6ad83abf51a9ff
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 25 09:39:42 2022 +0200

    (chores) camel-jms: increase latch timeout
    
    Under load it may take a while for the async consumer/producer to run, causing the latch to timeout before the test completes
---
 .../java/org/apache/camel/component/jms/JmsPollingConsumerTest.java    | 3 +--
 .../component/jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java   | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

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 4cb8f091bcc..b876d8e0264 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
@@ -121,8 +121,7 @@ public class JmsPollingConsumerTest extends AbstractJMSTest {
             MockEndpoint mock = getMockEndpoint("mock:result");
             mock.expectedBodiesReceived("Hello Claus");
 
-            // wait a little to demonstrate we can start poll before we have a msg on the queue
-            assertTrue(latch.await(500, TimeUnit.MILLISECONDS));
+            assertTrue(latch.await(1, TimeUnit.SECONDS));
             assertNull(body, "Message body should be null because the receive timed out");
 
             template.sendBody("direct:start", "Hello");
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 505d4ba2ab3..cd117506ad8 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
@@ -71,7 +71,7 @@ public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTe
         LOG.info("Waiting to process {} messages...", size);
 
         // if any of the assertions above fails then the latch will not get decremented 
-        assertTrue(latch.await(10, TimeUnit.SECONDS), "All assertions outside the main thread above should have passed");
+        assertTrue(latch.await(20, TimeUnit.SECONDS), "All assertions outside the main thread above should have passed");
 
         long delta = watch.taken();
         LOG.info("Took {} millis", delta);