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

fmariani 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 55b88e3f2861 CAMEL-22560: camel-telemetry - excludePatterns 
incorrectly prevents execution of excluded steps
55b88e3f2861 is described below

commit 55b88e3f28619a8fa86de8faff63acb88d600459
Author: Croway <[email protected]>
AuthorDate: Thu Oct 16 09:58:16 2025 +0200

    CAMEL-22560: camel-telemetry - excludePatterns incorrectly prevents 
execution of excluded steps
---
 .../observability/DisableEndpointTest.java          | 21 ++++++++++++++++++++-
 .../camel/opentelemetry2/DisableEndpointTest.java   | 21 ++++++++++++++++++++-
 .../camel/telemetrydev/DisableEndpointTest.java     | 21 ++++++++++++++++++++-
 .../telemetry/TraceProcessorsInterceptStrategy.java |  2 ++
 .../apache/camel/telemetry/DisableEndpointTest.java | 21 ++++++++++++++++++++-
 5 files changed, 82 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-micrometer-observability/src/test/java/org/apache/camel/micrometer/observability/DisableEndpointTest.java
 
b/components/camel-micrometer-observability/src/test/java/org/apache/camel/micrometer/observability/DisableEndpointTest.java
index 8d7bd0d40467..7dcc77c4da4f 100644
--- 
a/components/camel-micrometer-observability/src/test/java/org/apache/camel/micrometer/observability/DisableEndpointTest.java
+++ 
b/components/camel-micrometer-observability/src/test/java/org/apache/camel/micrometer/observability/DisableEndpointTest.java
@@ -23,8 +23,11 @@ import java.util.Map;
 
 import io.micrometer.tracing.test.simple.SimpleSpan;
 import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -35,7 +38,7 @@ public class DisableEndpointTest extends 
MicrometerObservabilityTracerTestSuppor
     @Override
     protected CamelContext createCamelContext() throws Exception {
         tst.setTraceProcessors(true);
-        tst.setExcludePatterns("log*,to*");
+        tst.setExcludePatterns("log*,to*,setVariable*");
         return super.createCamelContext();
     }
 
@@ -47,6 +50,18 @@ public class DisableEndpointTest extends 
MicrometerObservabilityTracerTestSuppor
         checkTrace(traces.values().iterator().next());
     }
 
+    @Test
+    void testExcludedVariableIsPresent() throws InterruptedException {
+        MockEndpoint endpoint = context().getEndpoint("mock:variable", 
MockEndpoint.class);
+
+        endpoint.expectedMessageCount(1);
+        template.sendBody("direct:variable", "Test Message");
+        endpoint.assertIsSatisfied();
+        Exchange first = endpoint.getReceivedExchanges().get(0);
+        String myVar = first.getVariable("myVar", String.class);
+        Assertions.assertEquals("testValue", myVar);
+    }
+
     private void checkTrace(MicrometerObservabilityTrace trace) {
         List<SimpleSpan> spans = trace.getSpans();
         assertEquals(2, spans.size());
@@ -74,6 +89,10 @@ public class DisableEndpointTest extends 
MicrometerObservabilityTracerTestSuppor
                         .routeId("start")
                         .log("A message")
                         .to("log:info");
+
+                from("direct:variable")
+                        .setVariable("myVar", constant("testValue"))
+                        .to("mock:variable");
             }
         };
     }
diff --git 
a/components/camel-opentelemetry2/src/test/java/org/apache/camel/opentelemetry2/DisableEndpointTest.java
 
b/components/camel-opentelemetry2/src/test/java/org/apache/camel/opentelemetry2/DisableEndpointTest.java
index a8a805cde43f..9bb68048ba7b 100644
--- 
a/components/camel-opentelemetry2/src/test/java/org/apache/camel/opentelemetry2/DisableEndpointTest.java
+++ 
b/components/camel-opentelemetry2/src/test/java/org/apache/camel/opentelemetry2/DisableEndpointTest.java
@@ -23,9 +23,12 @@ import java.util.Map;
 import io.opentelemetry.sdk.trace.data.SpanData;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.Exchange;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.opentelemetry2.CamelOpenTelemetryExtension.OtelTrace;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -38,7 +41,7 @@ public class DisableEndpointTest extends 
OpenTelemetryTracerTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         OpenTelemetryTracer tst = new OpenTelemetryTracer();
         tst.setTraceProcessors(true);
-        tst.setExcludePatterns("log*,to*");
+        tst.setExcludePatterns("log*,to*,setVariable*");
         tst.setTracer(otelExtension.getOpenTelemetry().getTracer("traceTest"));
         
tst.setContextPropagators(otelExtension.getOpenTelemetry().getPropagators());
         CamelContext context = super.createCamelContext();
@@ -55,6 +58,18 @@ public class DisableEndpointTest extends 
OpenTelemetryTracerTestSupport {
         checkTrace(traces.values().iterator().next());
     }
 
+    @Test
+    void testExcludedVariableIsPresent() throws InterruptedException {
+        MockEndpoint endpoint = context().getEndpoint("mock:variable", 
MockEndpoint.class);
+
+        endpoint.expectedMessageCount(1);
+        template.sendBody("direct:variable", "Test Message");
+        endpoint.assertIsSatisfied();
+        Exchange first = endpoint.getReceivedExchanges().get(0);
+        String myVar = first.getVariable("myVar", String.class);
+        Assertions.assertEquals("testValue", myVar);
+    }
+
     private void checkTrace(OtelTrace trace) {
         List<SpanData> spans = trace.getSpans();
         assertEquals(2, spans.size());
@@ -82,6 +97,10 @@ public class DisableEndpointTest extends 
OpenTelemetryTracerTestSupport {
                         .routeId("start")
                         .log("A message")
                         .to("log:info");
+
+                from("direct:variable")
+                        .setVariable("myVar", constant("testValue"))
+                        .to("mock:variable");
             }
         };
     }
diff --git 
a/components/camel-telemetry-dev/src/test/java/org/apache/camel/telemetrydev/DisableEndpointTest.java
 
b/components/camel-telemetry-dev/src/test/java/org/apache/camel/telemetrydev/DisableEndpointTest.java
index b6cdf3f00e6f..869e49f3f666 100644
--- 
a/components/camel-telemetry-dev/src/test/java/org/apache/camel/telemetrydev/DisableEndpointTest.java
+++ 
b/components/camel-telemetry-dev/src/test/java/org/apache/camel/telemetrydev/DisableEndpointTest.java
@@ -22,8 +22,11 @@ import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.Exchange;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,7 +39,7 @@ public class DisableEndpointTest extends 
TelemetryDevTracerTestSupport {
         TelemetryDevTracer tst = new TelemetryDevTracer();
         tst.setTraceFormat("json");
         tst.setTraceProcessors(true);
-        tst.setExcludePatterns("log*,to*");
+        tst.setExcludePatterns("log*,to*,setVariable*");
         CamelContext context = super.createCamelContext();
         CamelContextAware.trySetCamelContext(tst, context);
         tst.init(context);
@@ -51,6 +54,18 @@ public class DisableEndpointTest extends 
TelemetryDevTracerTestSupport {
         checkTrace(traces.values().iterator().next());
     }
 
+    @Test
+    void testExcludedVariableIsPresent() throws InterruptedException {
+        MockEndpoint endpoint = context().getEndpoint("mock:variable", 
MockEndpoint.class);
+
+        endpoint.expectedMessageCount(1);
+        template.sendBody("direct:variable", "Test Message");
+        endpoint.assertIsSatisfied();
+        Exchange first = endpoint.getReceivedExchanges().get(0);
+        String myVar = first.getVariable("myVar", String.class);
+        Assertions.assertEquals("testValue", myVar);
+    }
+
     private void checkTrace(DevTrace trace) {
         List<DevSpanAdapter> spans = trace.getSpans();
         assertEquals(2, spans.size());
@@ -78,6 +93,10 @@ public class DisableEndpointTest extends 
TelemetryDevTracerTestSupport {
                         .routeId("start")
                         .log("A message")
                         .to("log:info");
+
+                from("direct:variable")
+                        .setVariable("myVar", constant("testValue"))
+                        .to("mock:variable");
             }
         };
     }
diff --git 
a/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/TraceProcessorsInterceptStrategy.java
 
b/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/TraceProcessorsInterceptStrategy.java
index 6d560de3aad5..900c815ffb04 100644
--- 
a/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/TraceProcessorsInterceptStrategy.java
+++ 
b/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/TraceProcessorsInterceptStrategy.java
@@ -61,6 +61,8 @@ public class TraceProcessorsInterceptStrategy implements 
InterceptStrategy {
                 } finally {
                     tracer.endProcessorSpan(exchange, processor);
                 }
+            } else {
+                target.process(exchange);
             }
         }
     }
diff --git 
a/components/camel-telemetry/src/test/java/org/apache/camel/telemetry/DisableEndpointTest.java
 
b/components/camel-telemetry/src/test/java/org/apache/camel/telemetry/DisableEndpointTest.java
index 53874bc0e013..4c3cdf4a79e6 100644
--- 
a/components/camel-telemetry/src/test/java/org/apache/camel/telemetry/DisableEndpointTest.java
+++ 
b/components/camel-telemetry/src/test/java/org/apache/camel/telemetry/DisableEndpointTest.java
@@ -21,12 +21,15 @@ import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.Exchange;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.telemetry.mock.MockSpanAdapter;
 import org.apache.camel.telemetry.mock.MockTrace;
 import org.apache.camel.telemetry.mock.MockTracer;
 import org.apache.camel.test.junit5.ExchangeTestSupport;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -41,7 +44,7 @@ public class DisableEndpointTest extends ExchangeTestSupport {
         CamelContext context = super.createCamelContext();
         this.mockTracer = new MockTracer();
         mockTracer.setTraceProcessors(true);
-        mockTracer.setExcludePatterns("log*,to*");
+        mockTracer.setExcludePatterns("log*,to*,setVariable*");
         CamelContextAware.trySetCamelContext(mockTracer, context);
         mockTracer.init(context);
         return context;
@@ -55,6 +58,18 @@ public class DisableEndpointTest extends ExchangeTestSupport 
{
         checkTrace(traces.values().iterator().next());
     }
 
+    @Test
+    void testExcludedVariableIsPresent() throws InterruptedException {
+        MockEndpoint endpoint = context().getEndpoint("mock:variable", 
MockEndpoint.class);
+
+        endpoint.expectedMessageCount(1);
+        template.sendBody("direct:variable", "Test Message");
+        endpoint.assertIsSatisfied();
+        Exchange first = endpoint.getReceivedExchanges().get(0);
+        String myVar = first.getVariable("myVar", String.class);
+        Assertions.assertEquals("testValue", myVar);
+    }
+
     private void checkTrace(MockTrace trace) {
         List<Span> spans = trace.spans();
         assertEquals(2, spans.size());
@@ -84,6 +99,10 @@ public class DisableEndpointTest extends ExchangeTestSupport 
{
                         .routeId("start")
                         .log("A message")
                         .to("log:info");
+
+                from("direct:variable")
+                        .setVariable("myVar", constant("testValue"))
+                        .to("mock:variable");
             }
         };
     }

Reply via email to