You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/03/06 18:16:09 UTC

(camel) 06/08: CAMEL-20479: fix broken JMS tests

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 b6363f78eb20bc9a3fcf6957c8a522265128dda7
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Mar 6 12:01:00 2024 +0100

    CAMEL-20479: fix broken JMS tests
    
    - isolate unsafe tests
    - fixed tests
---
 .../jms/JmsRequestReplyExclusiveReplyToConcurrentTest.java     |  8 ++++++--
 .../jms/integration/JmsAddAndRemoveRouteManagementIT.java      |  2 +-
 .../jms/integration/JmsDestinationProducedHeaderIT.java        |  7 +++++++
 ...tFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest.java |  3 +++
 .../jms/integration/JmsToDSendDynamicTwoDisabledIT.java        |  7 +++++++
 .../jms/integration/spring/JmsConsumerShutdownIT.java          |  6 ++++++
 .../component/jms/issues/JmsInOutPersistentReplyQueueTest.java | 10 +++++++++-
 7 files changed, 39 insertions(+), 4 deletions(-)

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 62b2705935d..061e640b748 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
@@ -31,9 +31,10 @@ import org.apache.camel.util.StopWatch;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.junit.jupiter.api.parallel.Isolated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,7 +42,10 @@ 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("Creates multiple threads")
+/**
+ * Creates multiple threads
+ */
+@Tags({ @Tag("not-parallel"), @Tag("spring") })
 public class JmsRequestReplyExclusiveReplyToConcurrentTest extends AbstractJMSTest {
 
     @Order(2)
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsAddAndRemoveRouteManagementIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsAddAndRemoveRouteManagementIT.java
index c377131cc53..59c57374e83 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsAddAndRemoveRouteManagementIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsAddAndRemoveRouteManagementIT.java
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
- * Test that all thread pools is removed when adding and removing a route dynamically. This test manipulates the thread
+ * Test that all thread pools are removed when adding and removing a route dynamically. This test manipulates the thread
  * pools, so it's not a good candidate for running in parallel.
  */
 @Tags({ @Tag("not-parallel") })
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsDestinationProducedHeaderIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsDestinationProducedHeaderIT.java
index cafa3c18611..a304b4d9863 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsDestinationProducedHeaderIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsDestinationProducedHeaderIT.java
@@ -20,10 +20,17 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractPersistentJMSTest;
 import org.apache.camel.component.jms.JmsConstants;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+/**
+ * This test computes the number of components, so it could be affected by other tests. Therefore, it's run in
+ * isolation.
+ */
+@Tags({ @Tag("not-parallel"), @Tag("spring") })
 public class JmsDestinationProducedHeaderIT extends AbstractPersistentJMSTest {
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsInOutFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsInOutFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest.java
index bf08487d3d6..e5920485efa 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsInOutFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsInOutFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest.java
@@ -21,7 +21,10 @@ import java.time.Duration;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsInOutFixedReplyQueueTimeoutTest;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 
+@Tags({ @Tag("not-parallel"), @Tag("spring") })
 public class JmsInOutFixedReplyQueueTimeoutUseMessageIDAsCorrelationIDTest extends JmsInOutFixedReplyQueueTimeoutTest {
 
     @Override
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsToDSendDynamicTwoDisabledIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsToDSendDynamicTwoDisabledIT.java
index 7c283688d26..119e52c14af 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsToDSendDynamicTwoDisabledIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/JmsToDSendDynamicTwoDisabledIT.java
@@ -18,10 +18,17 @@ package org.apache.camel.component.jms.integration;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.AbstractPersistentJMSTest;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+/**
+ * This test computes the number of components, so it could be affected by other tests. Therefore, it's run in
+ * isolation.
+ */
+@Tags({ @Tag("not-parallel"), @Tag("spring") })
 public class JmsToDSendDynamicTwoDisabledIT extends AbstractPersistentJMSTest {
 
     @Test
diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsConsumerShutdownIT.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsConsumerShutdownIT.java
index 22cafe28d99..026810164ee 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsConsumerShutdownIT.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsConsumerShutdownIT.java
@@ -26,11 +26,17 @@ import org.apache.camel.test.infra.artemis.services.ArtemisEmbeddedServiceBuilde
 import org.apache.camel.test.infra.artemis.services.ArtemisService;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.test.annotation.DirtiesContext;
 
+/**
+ * This test configures the context shutdown strategy, so we run it in isolation to avoid messing up with others
+ */
+@Tags({ @Tag("not-parallel"), @Tag("spring") })
 public final class JmsConsumerShutdownIT extends CamelSpringTestSupport {
     @RegisterExtension
     public static ArtemisService service = new ArtemisEmbeddedServiceBuilder()
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 a93141b7132..488f011c12a 100644
--- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java
+++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsInOutPersistentReplyQueueTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.jms.issues;
 
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ExchangePattern;
@@ -25,6 +28,7 @@ import org.apache.camel.component.jms.AbstractJMSTest;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.infra.core.CamelContextExtension;
 import org.apache.camel.test.infra.core.DefaultCamelContextExtension;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Tag;
@@ -32,7 +36,7 @@ import org.junit.jupiter.api.Tags;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-// Not parallel due to processing some part of the route concurrently (may be delayed when running on the test threads)
+// 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 {
 
@@ -42,6 +46,7 @@ public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
     protected CamelContext context;
     protected ProducerTemplate template;
     protected ConsumerTemplate consumer;
+    private final CountDownLatch latch = new CountDownLatch(4);
 
     @Test
     public void testInOutPersistentReplyQueue() throws Exception {
@@ -52,6 +57,8 @@ public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
         template.sendBody("seda:start", "C");
         template.sendBody("seda:start", "D");
 
+        Assertions.assertTrue(latch.await(5, TimeUnit.SECONDS));
+
         MockEndpoint.assertIsSatisfied(context);
     }
 
@@ -72,6 +79,7 @@ public class JmsInOutPersistentReplyQueueTest extends AbstractJMSTest {
                         .threads(5)
                         .log("Reply ${body}")
                         .delay(2000)
+                        .process(e -> latch.countDown())
                         .to("mock:result");
 
                 from("activemq:queue:JmsInOutPersistentReplyQueueTest")