You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2025/10/16 09:39:23 UTC
(camel) branch camel-4.14.x updated: CAMEL-22560: camel-telemetry - excludePatterns incorrectly prevents execution of excluded steps
This is an automated email from the ASF dual-hosted git repository.
fmariani pushed a commit to branch camel-4.14.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.14.x by this push:
new 37a086ffcfcc CAMEL-22560: camel-telemetry - excludePatterns incorrectly prevents execution of excluded steps
37a086ffcfcc is described below
commit 37a086ffcfcc308882aa025c75841c1aa0cc058a
Author: Croway <fe...@gmail.com>
AuthorDate: Thu Oct 16 09:58:16 2025 +0200
CAMEL-22560: camel-telemetry - excludePatterns incorrectly prevents execution of excluded steps
---
.../camel/opentelemetry2/DisableEndpointTest.java | 21 ++++++++++++++++++++-
.../camel/telemetrydev/DisableEndpointTest.java | 21 ++++++++++++++++++++-
.../telemetry/TraceProcessorsInterceptStrategy.java | 2 ++
.../apache/camel/telemetry/DisableEndpointTest.java | 21 ++++++++++++++++++++-
4 files changed, 62 insertions(+), 3 deletions(-)
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");
}
};
}