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 d919887de7da CAMEL-23189: Fix flaky XSLT tests by replacing file 
consumer with direct (#22060)
d919887de7da is described below

commit d919887de7da2300cfbe24f126ee195927634fe8
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed Mar 18 13:00:02 2026 +0100

    CAMEL-23189: Fix flaky XSLT tests by replacing file consumer with direct 
(#22060)
    
    Replace file: consumer with direct:start in 9 XSLT tests that were
    flaky due to race conditions between file polling and mock assertions.
    These tests validate XSLT include/transform functionality, not file
    consumption, so using template.sendBody() makes them deterministic.
    
    Also increase XsltUriResolverFactoryTest Awaitility timeout from 1s to 10s.
    
    Co-authored-by: Claude Opus 4.6 <[email protected]>
---
 .../camel/component/xslt/XsltCustomizeEntityResolverTest.java    | 7 ++++++-
 .../camel/component/xslt/XsltCustomizeURIResolverTest.java       | 7 ++++++-
 .../apache/camel/component/xslt/XsltIncludeClasspathTest.java    | 8 +++++++-
 .../camel/component/xslt/XsltIncludeRelativeFileSchemeTest.java  | 8 +++++++-
 .../camel/component/xslt/XsltIncludeRelativeNestedTest.java      | 9 ++++++++-
 .../camel/component/xslt/XsltIncludeRelativeOtherTest.java       | 8 +++++++-
 .../org/apache/camel/component/xslt/XsltIncludeRelativeTest.java | 8 +++++++-
 .../java/org/apache/camel/component/xslt/XsltIncludeTest.java    | 8 +++++++-
 .../apache/camel/component/xslt/XsltMessageTerminateTest.java    | 8 +++++++-
 .../apache/camel/component/xslt/XsltUriResolverFactoryTest.java  | 2 +-
 10 files changed, 63 insertions(+), 10 deletions(-)

diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeEntityResolverTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeEntityResolverTest.java
index 76fb88cef9ad..4609cb016bc9 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeEntityResolverTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeEntityResolverTest.java
@@ -17,6 +17,8 @@
 package org.apache.camel.component.xslt;
 
 import java.io.StringReader;
+import java.nio.file.Files;
+import java.nio.file.Path;
 
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
@@ -42,6 +44,9 @@ public class XsltCustomizeEntityResolverTest extends 
ContextTestSupport {
 
         mock.message(0).body().contains(EXPECTED_XML_CONSTANT);
 
+        String body = 
Files.readString(Path.of("src/test/data/xml_with_entity.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -50,7 +55,7 @@ public class XsltCustomizeEntityResolverTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=xml_with_entity.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:xslt/common/copy.xsl?output=string&entityResolver=#customEntityResolver")
                         .to("mock:resultURIResolverDirect");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeURIResolverTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeURIResolverTest.java
index 0d70989244fa..505d55c44d6b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeURIResolverTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltCustomizeURIResolverTest.java
@@ -18,6 +18,8 @@ package org.apache.camel.component.xslt;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
 
 import javax.xml.transform.Source;
 import javax.xml.transform.TransformerException;
@@ -45,6 +47,9 @@ public class XsltCustomizeURIResolverTest extends 
ContextTestSupport {
 
         mock.message(0).body().contains(EXPECTED_XML_CONSTANT);
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -53,7 +58,7 @@ public class XsltCustomizeURIResolverTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/include_not_existing_resource.xsl?uriResolver=#customURIResolver")
                         .to("mock:resultURIResolverDirect");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java
index e9fa9205fe10..167385cf00cd 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -33,6 +36,9 @@ public class XsltIncludeClasspathTest extends 
ContextTestSupport {
         // the include file has the span style so check that its there
         mock.message(0).body().contains("<span 
style=\"font-size=22px;\">Minnie Mouse</span>");
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -41,7 +47,7 @@ public class XsltIncludeClasspathTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/staff_include_classpath.xsl")
                         .to("log:foo").to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeFileSchemeTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeFileSchemeTest.java
index b7cfe56fe1d3..103619c3910f 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeFileSchemeTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeFileSchemeTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -33,6 +36,9 @@ public class XsltIncludeRelativeFileSchemeTest extends 
ContextTestSupport {
         // the include file has the span style so check that its there
         mock.message(0).body().contains("<span 
style=\"font-size=22px;\">Minnie Mouse</span>");
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -41,7 +47,7 @@ public class XsltIncludeRelativeFileSchemeTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:file:src/test/resources/xslt/staff/staff.xsl").to("log:foo")
                         .to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeNestedTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeNestedTest.java
index ae99523fe6d9..7215f7578ee0 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeNestedTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeNestedTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -30,6 +33,10 @@ public class XsltIncludeRelativeNestedTest extends 
ContextTestSupport {
     public void testXsltIncludeRelativeNested() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
+
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -38,7 +45,7 @@ public class XsltIncludeRelativeNestedTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/staff_include_relative_nested.xsl")
                         .to("log:foo").to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeOtherTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeOtherTest.java
index 106d33ab9a6e..4aa4191a930e 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeOtherTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeOtherTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -33,6 +36,9 @@ public class XsltIncludeRelativeOtherTest extends 
ContextTestSupport {
         // the include file has the span style so check that its there
         mock.message(0).body().contains("<span 
style=\"color:yellow;\">48</span>");
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -41,7 +47,7 @@ public class XsltIncludeRelativeOtherTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/staff_include_relative_other.xsl")
                         .to("log:foo").to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeTest.java
index 92f460688bcb..ec866ea9b955 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeRelativeTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -33,6 +36,9 @@ public class XsltIncludeRelativeTest extends 
ContextTestSupport {
         // the include file has the span style so check that its there
         mock.message(0).body().contains("<span 
style=\"font-size=22px;\">Minnie Mouse</span>");
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -41,7 +47,7 @@ public class XsltIncludeRelativeTest extends 
ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/staff_include_relative.xsl").to("log:foo")
                         .to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeTest.java
index aa55ca20aeb9..eeb0f2e45d6b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -33,6 +36,9 @@ public class XsltIncludeTest extends ContextTestSupport {
         // the include file has the span style so check that its there
         mock.message(0).body().contains("<span 
style=\"font-size=22px;\">Minnie Mouse</span>");
 
+        String body = Files.readString(Path.of("src/test/data/staff.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
     }
 
@@ -41,7 +47,7 @@ public class XsltIncludeTest extends ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                
from("file:src/test/data/?fileName=staff.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/staff_include.xsl").to("log:foo")
                         .to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltMessageTerminateTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltMessageTerminateTest.java
index ee746eaf1f3f..64180fc1c458 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltMessageTerminateTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltMessageTerminateTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.xslt;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
@@ -31,6 +34,9 @@ public class XsltMessageTerminateTest extends 
ContextTestSupport {
         getMockEndpoint("mock:result").expectedMessageCount(0);
         getMockEndpoint("mock:dead").expectedMessageCount(1);
 
+        String body = Files.readString(Path.of("src/test/data/terminate.xml"));
+        template.sendBody("direct:start", body);
+
         assertMockEndpointsSatisfied();
 
         Exchange out = 
getMockEndpoint("mock:dead").getReceivedExchanges().get(0);
@@ -53,7 +59,7 @@ public class XsltMessageTerminateTest extends 
ContextTestSupport {
             public void configure() {
                 errorHandler(deadLetterChannel("mock:dead"));
 
-                
from("file:src/test/data/?fileName=terminate.xml&noop=true&initialDelay=0&delay=10")
+                from("direct:start")
                         
.to("xslt:org/apache/camel/component/xslt/terminate.xsl").to("log:foo")
                         .to("mock:result");
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltUriResolverFactoryTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltUriResolverFactoryTest.java
index c00795c41557..1ee4b98a97aa 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltUriResolverFactoryTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltUriResolverFactoryTest.java
@@ -80,7 +80,7 @@ public class XsltUriResolverFactoryTest extends 
ContextTestSupport {
         sendBody(directStart, payloud);
 
         // wait until endpoint is resolved
-        await().atMost(1, TimeUnit.SECONDS).until(() -> 
resolveMandatoryEndpoint(endpointUri, XsltEndpoint.class) != null);
+        await().atMost(10, TimeUnit.SECONDS).until(() -> 
resolveMandatoryEndpoint(endpointUri, XsltEndpoint.class) != null);
 
         assertMockEndpointsSatisfied();
 

Reply via email to