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

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

commit c0fb4815cbbe77b094eb077c9566f4eb734191ac
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Thu Oct 8 11:46:25 2026 +0200

    CAMEL-25342 - Fix NATS IT topic collisions under parallel test execution
    
    When maven-failsafe runs tests concurrently
    (camel.failsafe.parallel=true),
    multiple test classes sharing the same topic name on the same NATS
    server
    would receive each other's messages, causing spurious failures.
    
    Rename the generic 'test' topic in every consumer integration test to a
    unique, class-specific name so no two tests compete for the same
    subscription:
    
      NatsConsumerIT               -> consumer
      NatsConsumerLoadIT           -> consumer-load
      NatsConsumerWithRedeliveryIT -> consumer-redelivery
      NatsConsumerMaxMessagesIT    -> consumer-maxmessages
      NatsConsumerMaxMessagesQueueIT -> consumer-maxmessages-queue (queue
    group renamed too)
      NatsConsumerHeadersSupportIT -> consumer-headers  (subject in
    published NatsMessage updated too)
      NatsConsumerWithConnectionLoadIT -> consumer-connection-load /
    consumer-connection-load1
      NatsConsumerReplyToIT        -> consumer-replyto /
    consumer-replyto-reply
        (NATS_SUBJECT header assertions updated accordingly)
    
    Tests that use 'test' and are already collision-free are left unchanged:
      NatsAuth*IT / NatsAuthToken*IT  run against dedicated Docker
    containers
      NatsProducerIT and its auth variants  publish only, no subscriber
    route
    
    Co-authored-by: IBM Bob 2.2.1
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../nats/integration/NatsConsumerHeadersSupportIT.java         |  4 ++--
 .../camel/component/nats/integration/NatsConsumerIT.java       |  6 +++---
 .../camel/component/nats/integration/NatsConsumerLoadIT.java   |  4 ++--
 .../component/nats/integration/NatsConsumerMaxMessagesIT.java  |  4 ++--
 .../nats/integration/NatsConsumerMaxMessagesQueueIT.java       |  8 +++++---
 .../component/nats/integration/NatsConsumerReplyToIT.java      | 10 +++++-----
 .../nats/integration/NatsConsumerWithConnectionLoadIT.java     |  6 +++---
 .../nats/integration/NatsConsumerWithRedeliveryIT.java         |  4 ++--
 8 files changed, 24 insertions(+), 22 deletions(-)

diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerHeadersSupportIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerHeadersSupportIT.java
index 25b1f85155e4..0e6fa350e5d0 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerHeadersSupportIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerHeadersSupportIT.java
@@ -65,7 +65,7 @@ class NatsConsumerHeadersSupportIT extends NatsITSupport {
 
         final NatsMessage message = NatsMessage.builder()
                 .data("Hello World".getBytes())
-                .subject("test")
+                .subject("consumer-headers")
                 .headers(headers)
                 .build();
 
@@ -80,7 +80,7 @@ class NatsConsumerHeadersSupportIT extends NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
this.from("nats:test").to(NatsConsumerHeadersSupportIT.this.mockResultEndpoint);
+                
this.from("nats:consumer-headers").to(NatsConsumerHeadersSupportIT.this.mockResultEndpoint);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerIT.java
index 2c53f6f39541..2466fad69c7a 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerIT.java
@@ -30,7 +30,7 @@ public class NatsConsumerIT extends NatsITSupport {
     @Test
     public void testConsumer() throws Exception {
         mockResultEndpoint.expectedBodiesReceived("Hello World");
-        mockResultEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"test");
+        mockResultEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"consumer");
 
         waitForNatsConsumers(1);
 
@@ -44,9 +44,9 @@ public class NatsConsumerIT extends NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("direct:send").to("nats:test?flushConnection=true");
+                from("direct:send").to("nats:consumer?flushConnection=true");
 
-                from("nats:test?flushConnection=true").to(mockResultEndpoint);
+                
from("nats:consumer?flushConnection=true").to(mockResultEndpoint);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerLoadIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerLoadIT.java
index e6006828a541..5fdcd5b30969 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerLoadIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerLoadIT.java
@@ -38,7 +38,7 @@ public class NatsConsumerLoadIT extends NatsITSupport {
         waitForNatsConsumers(1);
 
         for (int i = 0; i < 10000; i++) {
-            connection.publish("test", ("test" + i).getBytes());
+            connection.publish("consumer-load", ("test" + i).getBytes());
         }
 
         mockResultEndpoint.assertIsSatisfied();
@@ -49,7 +49,7 @@ public class NatsConsumerLoadIT extends NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("nats:test").to(mockResultEndpoint);
+                from("nats:consumer-load").to(mockResultEndpoint);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesIT.java
index 145988ccb883..29c0e2086aab 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesIT.java
@@ -53,9 +53,9 @@ public class NatsConsumerMaxMessagesIT extends NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("direct:send").to("nats:test");
+                from("direct:send").to("nats:consumer-maxmessages");
 
-                from("nats:test?maxMessages=5").to(mockResultEndpoint);
+                
from("nats:consumer-maxmessages?maxMessages=5").to(mockResultEndpoint);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesQueueIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesQueueIT.java
index 54fc2b581a5d..ae605e2ad3d6 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesQueueIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerMaxMessagesQueueIT.java
@@ -43,11 +43,13 @@ public class NatsConsumerMaxMessagesQueueIT extends 
NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("direct:send").to("nats:test");
+                from("direct:send").to("nats:consumer-maxmessages-queue");
 
-                
from("nats:test?maxMessages=5&queueName=test").routeId("cons1").to(mockResultEndpoint);
+                
from("nats:consumer-maxmessages-queue?maxMessages=5&queueName=consumer-maxmessages-queue").routeId("cons1")
+                        .to(mockResultEndpoint);
 
-                
from("nats:test?maxMessages=6&queueName=test").routeId("cons2").to(mockResultEndpoint);
+                
from("nats:consumer-maxmessages-queue?maxMessages=6&queueName=consumer-maxmessages-queue").routeId("cons2")
+                        .to(mockResultEndpoint);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerReplyToIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerReplyToIT.java
index f1ae931dde13..2fc51d01d06f 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerReplyToIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerReplyToIT.java
@@ -33,9 +33,9 @@ public class NatsConsumerReplyToIT extends NatsITSupport {
     @Test
     public void testReplyTo() throws Exception {
         mockResultEndpoint.expectedBodiesReceived("World");
-        mockResultEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"test");
+        mockResultEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"consumer-replyto");
         mockReplyEndpoint.expectedBodiesReceived("Bye World");
-        mockReplyEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"myReplyQueue");
+        mockReplyEndpoint.expectedHeaderReceived(NatsConstants.NATS_SUBJECT, 
"consumer-replyto-reply");
 
         waitForNatsConsumers(2);
 
@@ -53,14 +53,14 @@ public class NatsConsumerReplyToIT extends NatsITSupport {
             @Override
             public void configure() {
                 from("direct:send")
-                        
.to("nats:test?replySubject=myReplyQueue&flushConnection=true");
+                        
.to("nats:consumer-replyto?replySubject=consumer-replyto-reply&flushConnection=true");
 
-                from("nats:test?flushConnection=true&exchangePattern=InOut")
+                
from("nats:consumer-replyto?flushConnection=true&exchangePattern=InOut")
                         .to(mockResultEndpoint)
                         .convertBodyTo(String.class)
                         .setBody().simple("Bye ${body}");
 
-                from("nats:myReplyQueue")
+                from("nats:consumer-replyto-reply")
                         .to("mock:reply");
             }
         };
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithConnectionLoadIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithConnectionLoadIT.java
index c2e480d01458..19fe91307ee1 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithConnectionLoadIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithConnectionLoadIT.java
@@ -54,7 +54,7 @@ public class NatsConsumerWithConnectionLoadIT extends 
NatsITSupport {
         waitForNatsConsumers(1);
 
         for (int i = 0; i < 100; i++) {
-            connection.publish("test", ("test" + i).getBytes());
+            connection.publish("consumer-connection-load", ("test" + 
i).getBytes());
         }
 
         mockResultEndpoint.assertIsSatisfied();
@@ -66,8 +66,8 @@ public class NatsConsumerWithConnectionLoadIT extends 
NatsITSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("nats:test?connection=#connection").to(mockResultEndpoint);
-                
from("nats:test1?connection=#connection").to(mockResultEndpoint1);
+                
from("nats:consumer-connection-load?connection=#connection").to(mockResultEndpoint);
+                
from("nats:consumer-connection-load1?connection=#connection").to(mockResultEndpoint1);
             }
         };
     }
diff --git 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithRedeliveryIT.java
 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithRedeliveryIT.java
index ed68bf26b321..7ba281bbde5b 100644
--- 
a/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithRedeliveryIT.java
+++ 
b/components/camel-nats/src/test/java/org/apache/camel/component/nats/integration/NatsConsumerWithRedeliveryIT.java
@@ -57,9 +57,9 @@ public class NatsConsumerWithRedeliveryIT extends 
NatsITSupport {
                         .retriesExhaustedLogLevel(LoggingLevel.ERROR)
                         
.redeliveryDelay(10).to("mock:exception").handled(true);
 
-                from("direct:send").to("nats:test?flushConnection=true");
+                
from("direct:send").to("nats:consumer-redelivery?flushConnection=true");
 
-                from("nats:test?flushConnection=true").choice().when(exchange 
-> {
+                
from("nats:consumer-redelivery?flushConnection=true").choice().when(exchange -> 
{
                     String s = exchange.getMessage().getBody(String.class);
                     if (s.contains("test")) {
                         return true;

Reply via email to