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

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


The following commit(s) were added to refs/heads/main by this push:
     new 8898beef8dbe CAMEL-24049: Fix flaky JMS Spring tests - queue name 
isolation and readiness (#24660)
8898beef8dbe is described below

commit 8898beef8dbe5cdbb761a87503058355809fa01a
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Jul 14 23:04:09 2026 +0200

    CAMEL-24049: Fix flaky JMS Spring tests - queue name isolation and 
readiness (#24660)
    
    CAMEL-24049: Fix flaky JMS Spring tests - queue name isolation and 
readiness checks
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../java/org/apache/camel/component/jms/JmsRouteTest.java  | 12 ++++++++----
 .../spring/JmsSpringLoadBalanceFailOverJMSIT.java          |  4 ++++
 .../jms/integration/spring/tx/RouteIdTransactedIT.java     | 13 ++++++++++---
 .../integration/spring/JmsSpringLoadBalanceFailOverIT.xml  | 14 +++++++-------
 4 files changed, 29 insertions(+), 14 deletions(-)

diff --git 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
index b93be1ba8db7..b26631882af5 100644
--- 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
+++ 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.jms;
 
 import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
@@ -57,7 +58,7 @@ public abstract class JmsRouteTest extends AbstractJMSTest {
         sendExchange("");
         sendExchange(null);
 
-        resultEndpoint.assertIsSatisfied();
+        MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
     }
 
     protected void assertSendAndReceiveBody(Object expectedBody) throws 
InterruptedException {
@@ -66,7 +67,7 @@ public abstract class JmsRouteTest extends AbstractJMSTest {
 
         sendExchange(expectedBody);
 
-        resultEndpoint.assertIsSatisfied();
+        MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
     }
 
     protected void sendExchange(final Object expectedBody) {
@@ -85,8 +86,8 @@ public abstract class JmsRouteTest extends AbstractJMSTest {
 
         return new RouteBuilder() {
             public void configure() {
-                from(startEndpointUri).to(endEndpointUri);
-                from(endEndpointUri).to("mock:result");
+                from(startEndpointUri).routeId("jmsRoute1").to(endEndpointUri);
+                from(endEndpointUri).routeId("jmsRoute2").to("mock:result");
             }
         };
     }
@@ -103,5 +104,8 @@ public abstract class JmsRouteTest extends AbstractJMSTest {
         consumer = camelContextExtension.getConsumerTemplate();
 
         resultEndpoint = context.getEndpoint("mock:result", 
MockEndpoint.class);
+
+        // Wait for the JMS consumer routes to be fully subscribed to the 
broker
+        JmsTestHelper.waitForJmsConsumerRoutes(context, "jmsRoute1", 
"jmsRoute2");
     }
 }
diff --git 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverJMSIT.java
 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverJMSIT.java
index cbdea830c033..798fc0bf70f0 100644
--- 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverJMSIT.java
+++ 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverJMSIT.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.jms.integration.spring;
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.camel.component.jms.JmsTestHelper;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Tags;
@@ -45,6 +46,9 @@ public class JmsSpringLoadBalanceFailOverJMSIT extends 
AbstractSpringJMSITSuppor
 
     @Test
     public void testFailover() throws Exception {
+        // Wait for the JMS consumer routes to be fully subscribed to the 
broker
+        JmsTestHelper.waitForJmsConsumerRoutes(context, "fooConsumerRoute", 
"barConsumerRoute");
+
         getMockEndpoint("mock:foo").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:bar").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
diff --git 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/tx/RouteIdTransactedIT.java
 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/tx/RouteIdTransactedIT.java
index 7297aca9b1ec..7cb94960ab5d 100644
--- 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/tx/RouteIdTransactedIT.java
+++ 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/integration/spring/tx/RouteIdTransactedIT.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.jms.integration.spring.tx;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jms.JmsTestHelper;
 import 
org.apache.camel.component.jms.integration.spring.AbstractSpringJMSITSupport;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.MethodOrderer;
@@ -44,10 +45,13 @@ public class RouteIdTransactedIT extends 
AbstractSpringJMSITSupport {
     @Order(1)
     @Test
     public void testRouteId() throws Exception {
+        // Wait for the JMS consumer route to be fully subscribed to the broker
+        JmsTestHelper.waitForJmsConsumerRoutes(context, "myCoolRoute");
+
         getMockEndpoint("mock:error").expectedMessageCount(0);
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
-        template.sendBody("activemq:queue:RouteIdTransactedTest", "Hello 
World");
+        template.sendBody("activemq:queue:RouteIdTransactedIT", "Hello World");
 
         MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
 
@@ -58,10 +62,13 @@ public class RouteIdTransactedIT extends 
AbstractSpringJMSITSupport {
     @Order(2)
     @Test
     public void testRouteIdFailed() throws Exception {
+        // Wait for the JMS consumer route to be fully subscribed to the broker
+        JmsTestHelper.waitForJmsConsumerRoutes(context, "myCoolRoute");
+
         getMockEndpoint("mock:error").expectedMessageCount(1);
         getMockEndpoint("mock:result").expectedMessageCount(0);
 
-        template.sendBody("activemq:queue:RouteIdTransactedTest", "Kaboom");
+        template.sendBody("activemq:queue:RouteIdTransactedIT", "Kaboom");
 
         MockEndpoint.assertIsSatisfied(context, 30, TimeUnit.SECONDS);
 
@@ -74,7 +81,7 @@ public class RouteIdTransactedIT extends 
AbstractSpringJMSITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("activemq:queue:RouteIdTransactedTest?transacted=true").id("myCoolRoute")
+                
from("activemq:queue:RouteIdTransactedIT?transacted=true").id("myCoolRoute")
                         
.onException(IllegalArgumentException.class).handled(true).to("log:bar").to("mock:error").end()
                         .transacted()
                         .choice()
diff --git 
a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverIT.xml
 
b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverIT.xml
index 002943454c18..898b5d93903f 100644
--- 
a/components/camel-jms/src/test/resources/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverIT.xml
+++ 
b/components/camel-jms/src/test/resources/org/apache/camel/component/jms/integration/spring/JmsSpringLoadBalanceFailOverIT.xml
@@ -41,24 +41,24 @@
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
         <jmxAgent id="agent" disabled="true"/>
 
-        <route>
+        <route id="loadBalanceRoute">
             <from uri="direct:start"/>
             <loadBalance>
                 <failoverLoadBalancer/>
-                <to uri="jms:queue:foo?transferException=true"/>
-                <to uri="jms:queue:bar?transferException=true"/>
+                <to 
uri="jms:queue:JmsSpringLoadBalanceFailOver.foo?transferException=true"/>
+                <to 
uri="jms:queue:JmsSpringLoadBalanceFailOver.bar?transferException=true"/>
             </loadBalance>
             <to uri="mock:result"/>
         </route>
 
-        <route>
-            <from uri="jms:queue:foo?transferException=true"/>
+        <route id="fooConsumerRoute">
+            <from 
uri="jms:queue:JmsSpringLoadBalanceFailOver.foo?transferException=true"/>
             <to uri="mock:foo"/>
             <throwException ref="damn"/>
         </route>
 
-        <route>
-            <from uri="jms:queue:bar?transferException=true"/>
+        <route id="barConsumerRoute">
+            <from 
uri="jms:queue:JmsSpringLoadBalanceFailOver.bar?transferException=true"/>
             <to uri="mock:bar"/>
             <transform><simple>Bye World</simple></transform>
         </route>

Reply via email to