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:08 UTC
[camel] 02/04: (chores) camel-jms: test stability cleanups
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"/>