From 2140f2a05620ed30f00e588a1e571252f558a297 Mon Sep 17 00:00:00 2001 From: Adriano Machado <60320+ammachado@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:10:50 -0400 Subject: [PATCH] Refactoring tracing interfaces to `camel-api` and `camel-support` This allows moving the span decorators closer to the components. --- .../MicrometerObservationTracer.java | 2 +- .../opentelemetry/OpenTelemetryTracer.java | 2 +- .../camel/tracing/ActiveSpanManager.java | 3 +- .../org/apache/camel/tracing/SpanAdapter.java | 69 -------- .../java/org/apache/camel/tracing/Tracer.java | 50 +++--- .../decorators/AbstractHttpSpanDecorator.java | 1 + .../AbstractMessagingSpanDecorator.java | 5 +- .../tracing/decorators/CqlSpanDecorator.java | 1 + .../decorators/DirectSpanDecorator.java | 2 + .../decorators/DisruptorSpanDecorator.java | 2 + .../decorators/DisruptorvmSpanDecorator.java | 2 + .../ElasticsearchSpanDecorator.java | 1 + .../tracing/decorators/FileSpanDecorator.java | 1 + .../tracing/decorators/JdbcSpanDecorator.java | 1 + .../tracing/decorators/LogSpanDecorator.java | 2 + .../decorators/MongoDBSpanDecorator.java | 1 + .../tracing/decorators/SedaSpanDecorator.java | 2 + .../tracing/decorators/SqlSpanDecorator.java | 1 + .../decorators/TimerSpanDecorator.java | 1 + .../camel/tracing/ActiveSpanManagerTest.java | 27 +-- .../AbstractHttpSpanDecoratorTest.java | 6 +- .../AbstractMessagingSpanDecoratorTest.java | 6 +- .../AzureServiceBusSpanDecoratorTest.java | 4 +- .../decorators/CqlSpanDecoratorTest.java | 6 +- .../ElasticsearchSpanDecoratorTest.java | 4 +- .../decorators/JdbcSpanDecoratorTest.java | 4 +- .../decorators/KafkaSpanDecoratorTest.java | 6 +- .../decorators/MongoDBSpanDecoratorTest.java | 5 +- .../decorators/RestSpanDecoratorTest.java | 4 +- .../decorators/SqlSpanDecoratorTest.java | 4 +- components/pom.xml | 2 +- .../camel/ExchangeConstantProvider.java | 3 +- .../main/java/org/apache/camel/Exchange.java | 3 +- .../org/apache/camel/ExchangePropertyKey.java | 3 + .../apache/camel/tracing/ExtractAdapter.java | 15 ++ .../apache/camel/tracing/InjectAdapter.java | 10 ++ .../org/apache/camel/tracing/SpanAdapter.java | 158 ++++++++++++++++++ .../apache/camel/tracing/SpanDecorator.java | 35 ++-- .../org/apache/camel/tracing/SpanKind.java | 3 + .../java/org/apache/camel/tracing/Tag.java | 5 + .../apache/camel/tracing/TagConstants.java | 0 core/camel-support/pom.xml | 6 + .../AbstractInternalSpanDecorator.java | 2 +- .../decorators/AbstractSpanDecorator.java | 22 +-- .../decorators/InMemorySpanAdapter.java | 40 ++--- .../CamelHeadersExtractAdapter.java | 4 +- .../CamelHeadersInjectAdapter.java | 2 +- .../CamelMessagingHeadersExtractAdapter.java | 2 +- .../CamelMessagingHeadersInjectAdapter.java | 2 +- .../decorators/AbstractSpanDecoratorTest.java | 7 +- ...melMessagingHeadersExtractAdapterTest.java | 4 +- ...amelMessagingHeadersInjectAdapterTest.java | 4 +- 52 files changed, 341 insertions(+), 216 deletions(-) delete mode 100644 components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanAdapter.java rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/ExtractAdapter.java (74%) rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/InjectAdapter.java (79%) create mode 100644 core/camel-api/src/main/java/org/apache/camel/tracing/SpanAdapter.java rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/SpanDecorator.java (83%) rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/SpanKind.java (95%) rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/Tag.java (91%) rename {components/camel-tracing => core/camel-api}/src/main/java/org/apache/camel/tracing/TagConstants.java (100%) rename {components/camel-tracing/src/main/java/org/apache/camel => core/camel-support/src/main/java/org/apache/camel/support}/tracing/decorators/AbstractInternalSpanDecorator.java (95%) rename {components/camel-tracing/src/main/java/org/apache/camel => core/camel-support/src/main/java/org/apache/camel/support}/tracing/decorators/AbstractSpanDecorator.java (92%) rename components/camel-tracing/src/test/java/org/apache/camel/tracing/MockSpanAdapter.java => core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/InMemorySpanAdapter.java (77%) rename {components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation => core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators}/CamelHeadersExtractAdapter.java (92%) rename {components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation => core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators}/CamelHeadersInjectAdapter.java (96%) rename {components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation => core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators}/CamelMessagingHeadersExtractAdapter.java (97%) rename {components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation => core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators}/CamelMessagingHeadersInjectAdapter.java (97%) rename {components/camel-tracing/src/test/java/org/apache/camel => core/camel-support/src/test/java/org/apache/camel/support}/tracing/decorators/AbstractSpanDecoratorTest.java (95%) rename {components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation => core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators}/CamelMessagingHeadersExtractAdapterTest.java (95%) rename {components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation => core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators}/CamelMessagingHeadersInjectAdapterTest.java (93%) diff --git a/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java b/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java index 06690fb2f65ff..5d2ee3eab1b37 100644 --- a/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java +++ b/components/camel-observation/src/main/java/org/apache/camel/observation/MicrometerObservationTracer.java @@ -29,12 +29,12 @@ import org.apache.camel.Message; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.support.CamelContextHelper; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; import org.apache.camel.tracing.ExtractAdapter; import org.apache.camel.tracing.InjectAdapter; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.SpanKind; -import org.apache.camel.tracing.decorators.AbstractInternalSpanDecorator; @ManagedResource(description = "MicrometerObservationTracer") public class MicrometerObservationTracer extends org.apache.camel.tracing.Tracer { diff --git a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java index 03910d3c797b7..2b266ae57bf37 100644 --- a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java +++ b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetryTracer.java @@ -32,11 +32,11 @@ import org.apache.camel.spi.Configurer; import org.apache.camel.spi.annotations.JdkService; import org.apache.camel.support.CamelContextHelper; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; import org.apache.camel.tracing.ExtractAdapter; import org.apache.camel.tracing.InjectAdapter; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.SpanDecorator; -import org.apache.camel.tracing.decorators.AbstractInternalSpanDecorator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java index 11fbefb44b97d..0c0436877301c 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java @@ -28,7 +28,6 @@ public final class ActiveSpanManager { public static final String MDC_TRACE_ID = "trace_id"; public static final String MDC_SPAN_ID = "span_id"; - private static final String ACTIVE_SPAN_PROPERTY = "OpenTracing.activeSpan"; private static final Logger LOG = LoggerFactory.getLogger(ActiveSpanManager.class); private ActiveSpanManager() { @@ -41,7 +40,7 @@ private ActiveSpanManager() { * @return The current active span, or null if none exists */ public static SpanAdapter getSpan(Exchange exchange) { - Holder holder = (Holder) exchange.getProperty(ACTIVE_SPAN_PROPERTY); + Holder holder = (Holder) exchange.getProperty(ExchangePropertyKey.ACTIVE_SPAN_PROPERTY); if (holder != null) { return holder.getSpan(); } diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanAdapter.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanAdapter.java deleted file mode 100644 index 6767bbdfd7a45..0000000000000 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.tracing; - -import java.util.Map; - -public interface SpanAdapter { - void setComponent(String component); - - void setError(boolean error); - - @Deprecated - void setTag(Tag key, String value); - - @Deprecated - void setTag(Tag key, Number value); - - void setTag(String key, String value); - - void setTag(String key, Number value); - - void setTag(String key, Boolean value); - - @Deprecated - default void setLowCardinalityTag(Tag key, String value) { - setTag(key, value); - } - - @Deprecated - default void setLowCardinalityTag(Tag key, Number value) { - setTag(key, value); - } - - default void setLowCardinalityTag(String key, String value) { - setTag(key, value); - } - - default void setLowCardinalityTag(String key, Number value) { - setTag(key, value); - } - - default void setLowCardinalityTag(String key, Boolean value) { - setTag(key, value); - } - - void log(Map log); - - String traceId(); - - String spanId(); - - default AutoCloseable makeCurrent() { - return Tracer.NOOP_CLOSEABLE; - } -} diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java index 7d7c6d3e2248e..9af1c98baa091 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tracer.java @@ -42,6 +42,7 @@ import org.apache.camel.support.RoutePolicySupport; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.support.service.ServiceSupport; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.StringHelper; import org.slf4j.Logger; @@ -49,10 +50,22 @@ public abstract class Tracer extends ServiceSupport implements CamelTracingService, RoutePolicyFactory, StaticService { protected static final Map DECORATORS = new HashMap<>(); - static final AutoCloseable NOOP_CLOSEABLE = () -> { - }; private static final Logger LOG = LoggerFactory.getLogger(Tracer.class); + private static final SpanDecorator DEFAULT_SPAN_DECORATOR = new AbstractSpanDecorator() { + + @Override + public String getComponent() { + return null; + } + + @Override + public String getComponentClassName() { + return null; + } + + }; + static { ServiceLoader.load(SpanDecorator.class).forEach(d -> { SpanDecorator existing = DECORATORS.get(d.getComponent()); @@ -194,18 +207,16 @@ protected SpanDecorator getSpanDecorator(Endpoint endpoint) { String scheme = splitURI[0]; sd = DECORATORS.get(scheme); } - if (sd == null) { - // okay there was no decorator found via component name (scheme), then try FQN - if (endpoint instanceof DefaultEndpoint de) { - Component comp = de.getComponent(); - String fqn = comp.getClass().getName(); - // lookup via FQN - sd = DECORATORS.values().stream().filter(d -> fqn.equals(d.getComponentClassName())).findFirst() - .orElse(null); - } + // okay, there was no decorator found via component name (scheme), then try FQN + if (sd == null && endpoint instanceof DefaultEndpoint de) { + Component comp = de.getComponent(); + String fqn = comp.getClass().getName(); + // lookup via FQN + sd = DECORATORS.values().stream().filter(d -> fqn.equals(d.getComponentClassName())).findFirst() + .orElse(null); } if (sd == null) { - sd = SpanDecorator.DEFAULT; + sd = DEFAULT_SPAN_DECORATOR; } return sd; @@ -238,8 +249,7 @@ public TracingEventNotifier() { @Override public void notify(CamelEvent event) throws Exception { try { - if (event instanceof CamelEvent.ExchangeSendingEvent) { - CamelEvent.ExchangeSendingEvent ese = (CamelEvent.ExchangeSendingEvent) event; + if (event instanceof CamelEvent.ExchangeSendingEvent ese) { SpanDecorator sd = getSpanDecorator(ese.getEndpoint()); if (shouldExclude(sd, ese.getExchange(), ese.getEndpoint())) { return; @@ -255,8 +265,7 @@ public void notify(CamelEvent event) throws Exception { if (LOG.isTraceEnabled()) { LOG.trace("Tracing: start client span: {}", span); } - } else if (event instanceof CamelEvent.ExchangeSentEvent) { - CamelEvent.ExchangeSentEvent ese = (CamelEvent.ExchangeSentEvent) event; + } else if (event instanceof CamelEvent.ExchangeSentEvent ese) { SpanDecorator sd = getSpanDecorator(ese.getEndpoint()); if (shouldExclude(sd, ese.getExchange(), ese.getEndpoint())) { return; @@ -273,11 +282,9 @@ public void notify(CamelEvent event) throws Exception { } else { LOG.warn("Tracing: could not find managed span for exchange: {}", ese.getExchange()); } - } else if (event instanceof CamelEvent.ExchangeAsyncProcessingStartedEvent) { - CamelEvent.ExchangeAsyncProcessingStartedEvent eap = (CamelEvent.ExchangeAsyncProcessingStartedEvent) event; - + } else if (event instanceof CamelEvent.ExchangeAsyncProcessingStartedEvent eap) { // no need to filter scopes here. It's ok to close a scope multiple times and - // implementations check if scope being disposed is current + // implementations check if the scope being disposed is current // and should not do anything if scopes don't match. ActiveSpanManager.endScope(eap.getExchange()); } @@ -288,8 +295,7 @@ public void notify(CamelEvent event) throws Exception { } private boolean shouldExclude(SpanDecorator sd, Exchange exchange, Endpoint endpoint) { - return !sd.newSpan() - || isExcluded(exchange, endpoint); + return !sd.newSpan() || isExcluded(exchange, endpoint); } } diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecorator.java index 9de3987a4b809..abcdf4e654f27 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecorator.java @@ -19,6 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecorator.java index 9477ccc5e79d4..8d82ad2b212e0 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecorator.java @@ -20,13 +20,14 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; +import org.apache.camel.support.tracing.propagators.CamelMessagingHeadersExtractAdapter; +import org.apache.camel.support.tracing.propagators.CamelMessagingHeadersInjectAdapter; import org.apache.camel.tracing.ExtractAdapter; import org.apache.camel.tracing.InjectAdapter; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.SpanKind; import org.apache.camel.tracing.TagConstants; -import org.apache.camel.tracing.propagation.CamelMessagingHeadersExtractAdapter; -import org.apache.camel.tracing.propagation.CamelMessagingHeadersInjectAdapter; public abstract class AbstractMessagingSpanDecorator extends AbstractSpanDecorator { diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/CqlSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/CqlSpanDecorator.java index 18e27aa8a6981..f434af08dffd6 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/CqlSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/CqlSpanDecorator.java @@ -21,6 +21,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DirectSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DirectSpanDecorator.java index 67ae5858896dd..a226c44b37db7 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DirectSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DirectSpanDecorator.java @@ -16,6 +16,8 @@ */ package org.apache.camel.tracing.decorators; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; + public class DirectSpanDecorator extends AbstractInternalSpanDecorator { @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorSpanDecorator.java index d254ec9eae751..92cd603e478a6 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorSpanDecorator.java @@ -16,6 +16,8 @@ */ package org.apache.camel.tracing.decorators; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; + public class DisruptorSpanDecorator extends AbstractInternalSpanDecorator { @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorvmSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorvmSpanDecorator.java index 967a38fc78483..adc2dfe7dbfa4 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorvmSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/DisruptorvmSpanDecorator.java @@ -16,6 +16,8 @@ */ package org.apache.camel.tracing.decorators; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; + public class DisruptorvmSpanDecorator extends AbstractInternalSpanDecorator { @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java index b0f7332591918..7163a2fb05ea8 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java @@ -20,6 +20,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/FileSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/FileSpanDecorator.java index ec8dadb98486c..fdd5b3196afef 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/FileSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/FileSpanDecorator.java @@ -18,6 +18,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/JdbcSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/JdbcSpanDecorator.java index 0c90fc0089e6a..953ea562981f6 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/JdbcSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/JdbcSpanDecorator.java @@ -18,6 +18,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/LogSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/LogSpanDecorator.java index 8117c26460717..9464d6f49ccc9 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/LogSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/LogSpanDecorator.java @@ -16,6 +16,8 @@ */ package org.apache.camel.tracing.decorators; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; + public class LogSpanDecorator extends AbstractSpanDecorator { @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/MongoDBSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/MongoDBSpanDecorator.java index 5e3b5fa5e526a..7a361a435fcc2 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/MongoDBSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/MongoDBSpanDecorator.java @@ -20,6 +20,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SedaSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SedaSpanDecorator.java index b8c0924e69433..6011730f6857e 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SedaSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SedaSpanDecorator.java @@ -16,6 +16,8 @@ */ package org.apache.camel.tracing.decorators; +import org.apache.camel.support.tracing.decorators.AbstractInternalSpanDecorator; + public class SedaSpanDecorator extends AbstractInternalSpanDecorator { @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SqlSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SqlSpanDecorator.java index 9935c959e8c11..d9bdd1fbc3c5d 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SqlSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/SqlSpanDecorator.java @@ -18,6 +18,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.TagConstants; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/TimerSpanDecorator.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/TimerSpanDecorator.java index 9c3c8fc137210..d37f0978ac6c9 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/TimerSpanDecorator.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/TimerSpanDecorator.java @@ -18,6 +18,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; public class TimerSpanDecorator extends AbstractSpanDecorator { diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/ActiveSpanManagerTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/ActiveSpanManagerTest.java index b6669d4a3bbb8..f60bc9b1bbd36 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/ActiveSpanManagerTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/ActiveSpanManagerTest.java @@ -17,6 +17,7 @@ package org.apache.camel.tracing; import org.apache.camel.Exchange; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.test.junit5.ExchangeTestSupport; import org.junit.jupiter.api.Test; import org.slf4j.MDC; @@ -40,7 +41,7 @@ public void testNoSpan() { @Test public void testCurrentSpan() { Exchange exchange = createExchange(); - MockSpanAdapter span = MockSpanAdapter.buildSpan("test"); + InMemorySpanAdapter span = InMemorySpanAdapter.buildSpan("test"); ActiveSpanManager.activate(exchange, span); assertTrue(span.isCurrent()); assertEquals(span, ActiveSpanManager.getSpan(exchange)); @@ -53,7 +54,7 @@ public void testCurrentSpan() { @Test public void testSEndScope() { Exchange exchange = createExchange(); - MockSpanAdapter span = MockSpanAdapter.buildSpan("test"); + InMemorySpanAdapter span = InMemorySpanAdapter.buildSpan("test"); ActiveSpanManager.activate(exchange, span); assertTrue(span.isCurrent()); @@ -67,9 +68,9 @@ public void testSEndScope() { @Test public void testCreateChild() { Exchange exchange = createExchange(); - SpanAdapter parent = MockSpanAdapter.buildSpan("parent"); + SpanAdapter parent = InMemorySpanAdapter.buildSpan("parent"); ActiveSpanManager.activate(exchange, parent); - SpanAdapter child = MockSpanAdapter.buildSpan("child"); + SpanAdapter child = InMemorySpanAdapter.buildSpan("child"); ActiveSpanManager.activate(exchange, child); assertEquals(child, ActiveSpanManager.getSpan(exchange)); @@ -80,7 +81,7 @@ public void testCreateChild() { @Test public void testIsolatedConcurrentExchanges() { Exchange exchange = createExchange(); - SpanAdapter parent = MockSpanAdapter.buildSpan("parent"); + SpanAdapter parent = InMemorySpanAdapter.buildSpan("parent"); ActiveSpanManager.activate(exchange, parent); Exchange path1 = exchange.copy(); @@ -90,10 +91,10 @@ public void testIsolatedConcurrentExchanges() { assertEquals(parent, ActiveSpanManager.getSpan(path1)); assertEquals(parent, ActiveSpanManager.getSpan(path2)); - SpanAdapter child1 = MockSpanAdapter.buildSpan("child1"); + SpanAdapter child1 = InMemorySpanAdapter.buildSpan("child1"); ActiveSpanManager.activate(path1, child1); - SpanAdapter child2 = MockSpanAdapter.buildSpan("child2"); + SpanAdapter child2 = InMemorySpanAdapter.buildSpan("child2"); ActiveSpanManager.activate(path2, child2); ActiveSpanManager.deactivate(path2); @@ -108,9 +109,9 @@ public void testMDCSupport() { Exchange exchange = createExchange(); exchange.getContext().setUseMDCLogging(true); - SpanAdapter parent = MockSpanAdapter.buildSpan("parent"); - ((MockSpanAdapter) parent).setTraceId("0"); - ((MockSpanAdapter) parent).setSpanId("1"); + InMemorySpanAdapter parent = InMemorySpanAdapter.buildSpan("parent"); + parent.setTraceId("0"); + parent.setSpanId("1"); // no MDC entries before // 0 and 1 after activating parent @@ -121,9 +122,9 @@ public void testMDCSupport() { assertEquals("1", MDC.get(ActiveSpanManager.MDC_SPAN_ID)); // 1 and 2 after activating child1 - SpanAdapter child1 = MockSpanAdapter.buildSpan("child1"); - ((MockSpanAdapter) child1).setTraceId("1"); - ((MockSpanAdapter) child1).setSpanId("2"); + InMemorySpanAdapter child1 = InMemorySpanAdapter.buildSpan("child1"); + child1.setTraceId("1"); + child1.setSpanId("2"); ActiveSpanManager.activate(exchange, child1); assertEquals("1", MDC.get(ActiveSpanManager.MDC_TRACE_ID)); assertEquals("2", MDC.get(ActiveSpanManager.MDC_SPAN_ID)); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecoratorTest.java index fc04663312fa7..f78748522294f 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -155,7 +155,7 @@ public String getComponentClassName() { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); @@ -282,7 +282,7 @@ public String getComponentClassName() { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.post(span, exchange, null); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecoratorTest.java index b5a3a9374edac..22c1dc1326e32 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractMessagingSpanDecoratorTest.java @@ -18,7 +18,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -67,7 +67,7 @@ public String getComponentClassName() { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, null, endpoint); @@ -99,7 +99,7 @@ public String getMessageId(Exchange exchange) { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AzureServiceBusSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AzureServiceBusSpanDecoratorTest.java index 9594bd2cb4793..c4be2a983b16a 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AzureServiceBusSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AzureServiceBusSpanDecoratorTest.java @@ -22,7 +22,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -79,7 +79,7 @@ public void testPre() { AbstractMessagingSpanDecorator decorator = new AzureServiceBusSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/CqlSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/CqlSpanDecoratorTest.java index 0dcf9ad3c832a..d7031056b153b 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/CqlSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/CqlSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -45,7 +45,7 @@ public void testPreCqlFromUri() { SpanDecorator decorator = new CqlSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); @@ -68,7 +68,7 @@ public void testPreCqlFromHeader() { SpanDecorator decorator = new CqlSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java index acd81b46bbbdc..9513db74226e2 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -58,7 +58,7 @@ public void testPre() { SpanDecorator decorator = new ElasticsearchSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/JdbcSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/JdbcSpanDecoratorTest.java index ac24d49ac9899..69bc9c70e404b 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/JdbcSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/JdbcSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -43,7 +43,7 @@ public void testPre() { SpanDecorator decorator = new JdbcSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/KafkaSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/KafkaSpanDecoratorTest.java index e3091143dd54a..53ce8f77886ec 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/KafkaSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/KafkaSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -76,7 +76,7 @@ public void testPreOffsetAndPartitionAsStringHeader() { SpanDecorator decorator = new KafkaSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); @@ -102,7 +102,7 @@ public void testPrePartitionAsIntegerHeaderAndOffsetAsLongHeader() { SpanDecorator decorator = new KafkaSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/MongoDBSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/MongoDBSpanDecoratorTest.java index a6982d6e33545..a9dc2b5f6de51 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/MongoDBSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/MongoDBSpanDecoratorTest.java @@ -19,7 +19,8 @@ import java.util.Map; import org.apache.camel.Endpoint; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.AbstractSpanDecorator; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -60,7 +61,7 @@ public void testPre() { SpanDecorator decorator = new MongoDBSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, null, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/RestSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/RestSpanDecoratorTest.java index 54ba0f2961eab..cbfdf6a6d02da 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/RestSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/RestSpanDecoratorTest.java @@ -21,7 +21,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -84,7 +84,7 @@ protected void testParameter(String paramName, Object paramValue) { SpanDecorator decorator = new RestSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/SqlSpanDecoratorTest.java b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/SqlSpanDecoratorTest.java index b9f0bf5252c16..4230ebd6e81ac 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/SqlSpanDecoratorTest.java +++ b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/SqlSpanDecoratorTest.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.tracing.MockSpanAdapter; +import org.apache.camel.support.tracing.decorators.InMemorySpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -43,7 +43,7 @@ public void testPre() { SpanDecorator decorator = new SqlSpanDecorator(); - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, exchange, endpoint); diff --git a/components/pom.xml b/components/pom.xml index 4e3f0a949a63c..ab7896bd0bfd7 100644 --- a/components/pom.xml +++ b/components/pom.xml @@ -275,7 +275,7 @@ camel-snakeyaml camel-snmp camel-soap - camel-solr + camel-solr camel-splunk camel-splunk-hec camel-spring-batch diff --git a/core/camel-api/src/generated/java/org/apache/camel/ExchangeConstantProvider.java b/core/camel-api/src/generated/java/org/apache/camel/ExchangeConstantProvider.java index 1887de9340337..5708ac56f958d 100644 --- a/core/camel-api/src/generated/java/org/apache/camel/ExchangeConstantProvider.java +++ b/core/camel-api/src/generated/java/org/apache/camel/ExchangeConstantProvider.java @@ -13,8 +13,9 @@ public class ExchangeConstantProvider { private static final Map MAP; static { - Map map = new HashMap<>(156); + Map map = new HashMap<>(157); map.put("ACCEPT_CONTENT_TYPE", "CamelAcceptContentType"); + map.put("ACTIVE_SPAN", "CamelActiveTracingSpan"); map.put("AGGREGATED_COLLECTION_GUARD", "CamelAggregatedCollectionGuard"); map.put("AGGREGATED_COMPLETED_BY", "CamelAggregatedCompletedBy"); map.put("AGGREGATED_CORRELATION_KEY", "CamelAggregatedCorrelationKey"); diff --git a/core/camel-api/src/main/java/org/apache/camel/Exchange.java b/core/camel-api/src/main/java/org/apache/camel/Exchange.java index 41cd9b83b82e1..1d0acdee36c35 100644 --- a/core/camel-api/src/main/java/org/apache/camel/Exchange.java +++ b/core/camel-api/src/main/java/org/apache/camel/Exchange.java @@ -57,7 +57,7 @@ * you could also instantiate your specialized {@link Message} and set it on the exchange using the * {@link #setOut(org.apache.camel.Message)} method. Please note that a {@link Message} contains not only the body but * also headers and attachments. If you are creating a new {@link Message} the headers and attachments of the in - * {@link Message} are not automatically copied to the out by Camel and you'll have to set the headers and attachments + * {@link Message} are not automatically copied to the out by Camel, and you'll have to set the headers and attachments * you need yourself. If your {@link Processor} is not producing a different {@link Message} but only needs to slightly * modify the in, you can simply update the in {@link Message} returned by {@link #getIn()}. *

@@ -67,6 +67,7 @@ @ConstantProvider("org.apache.camel.ExchangeConstantProvider") public interface Exchange extends VariableAware { + String ACTIVE_SPAN = "CamelActiveTracingSpan"; String AUTHENTICATION = "CamelAuthentication"; String AUTHENTICATION_FAILURE_POLICY_ID = "CamelAuthenticationFailurePolicyId"; @Deprecated(since = "2.20.0") diff --git a/core/camel-api/src/main/java/org/apache/camel/ExchangePropertyKey.java b/core/camel-api/src/main/java/org/apache/camel/ExchangePropertyKey.java index a22ec5490744b..a70dd526f6594 100644 --- a/core/camel-api/src/main/java/org/apache/camel/ExchangePropertyKey.java +++ b/core/camel-api/src/main/java/org/apache/camel/ExchangePropertyKey.java @@ -23,6 +23,7 @@ */ public enum ExchangePropertyKey { + ACTIVE_SPAN(Exchange.ACTIVE_SPAN), AGGREGATED_COMPLETED_BY(Exchange.AGGREGATED_COMPLETED_BY), AGGREGATED_CORRELATION_KEY(Exchange.AGGREGATED_CORRELATION_KEY), AGGREGATED_SIZE(Exchange.AGGREGATED_SIZE), @@ -87,6 +88,8 @@ public String getName() { public static ExchangePropertyKey asExchangePropertyKey(String name) { switch (name) { + case Exchange.ACTIVE_SPAN: + return ACTIVE_SPAN; case Exchange.AGGREGATED_COMPLETED_BY: return AGGREGATED_COMPLETED_BY; case Exchange.AGGREGATED_CORRELATION_KEY: diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java b/core/camel-api/src/main/java/org/apache/camel/tracing/ExtractAdapter.java similarity index 74% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/ExtractAdapter.java index 680a816062fdd..cd916680ee6b0 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/ExtractAdapter.java @@ -20,10 +20,25 @@ import java.util.Map; import java.util.Set; +/** + * An adapter to extract tracing attributes from a tracing span. + */ public interface ExtractAdapter { + + /** + * Extract an iterator of attributes from the current tracing span. + */ Iterator> iterator(); + /** + * Extract an attribute from the current tracing span. + * + * @param key the attribute key + */ Object get(String key); + /** + * Get the attribute keys for the current tracing span. + */ Set keys(); } diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/InjectAdapter.java b/core/camel-api/src/main/java/org/apache/camel/tracing/InjectAdapter.java similarity index 79% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/InjectAdapter.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/InjectAdapter.java index 72f27dad39ee8..70779a49f9ff3 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/InjectAdapter.java +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/InjectAdapter.java @@ -16,6 +16,16 @@ */ package org.apache.camel.tracing; +/** + * An adapter to inject tracing attributes into a tracing span. + */ public interface InjectAdapter { + + /** + * Inject a tag into the current tracing span, for context propagation. + * + * @param key the tag key + * @param value the tag value + */ void put(String key, String value); } diff --git a/core/camel-api/src/main/java/org/apache/camel/tracing/SpanAdapter.java b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanAdapter.java new file mode 100644 index 0000000000000..9aebf74eaa038 --- /dev/null +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanAdapter.java @@ -0,0 +1,158 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.tracing; + +import java.util.Map; + +/** + * An adapter to allow Camel to interact with different tracing technologies. + */ +public interface SpanAdapter { + + /** + * Sets the operation name of the span. + * + * @param component the component name. + */ + void setComponent(String component); + + /** + * Sets this span as an error span. + * + * @param error true if this span is an error span. + */ + void setError(boolean error); + + /** + * @deprecated use {@link #setTag(String, String)} instead. + */ + @Deprecated + default void setTag(Tag key, String value) { + setTag(key.getAttribute(), value); + } + + /** + * @deprecated use {@link #setTag(String, Number)} instead. + */ + @Deprecated + default void setTag(Tag key, Number value) { + setTag(key.getAttribute(), value); + } + + /** + * Sets a tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + void setTag(String key, String value); + + /** + * Sets a tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + void setTag(String key, Number value); + + /** + * Sets a tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + void setTag(String key, Boolean value); + + /** + * @deprecated use {@link #setLowCardinalityTag(String, String)} instead. + */ + @Deprecated + default void setLowCardinalityTag(Tag key, String value) { + setLowCardinalityTag(key.getAttribute(), value); + } + + /** + * @deprecated use {@link #setLowCardinalityTag(String, Number)} instead. + */ + @Deprecated + default void setLowCardinalityTag(Tag key, Number value) { + setLowCardinalityTag(key.getAttribute(), value); + } + + /** + * @deprecated use {@link #setLowCardinalityTag(String, Boolean)} instead. + */ + @Deprecated + default void setLowCardinalityTag(Tag key, Boolean value) { + setLowCardinalityTag(key.getAttribute(), value); + } + + /** + * Sets a low cardinality tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + default void setLowCardinalityTag(String key, String value) { + setTag(key, value); + } + + /** + * Sets a low cardinality tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + default void setLowCardinalityTag(String key, Number value) { + setTag(key, value); + } + + /** + * Sets a low cardinality tag on the span. + * + * @param key the tag key + * @param value the tag value + */ + default void setLowCardinalityTag(String key, Boolean value) { + setTag(key, value); + } + + /** + * Add log messages to a span. + * + * @param log the log messages + */ + void log(Map log); + + /** + * Get the current trace id. + */ + String traceId(); + + /** + * Get the current span id. + */ + String spanId(); + + /** + * Makes the current span the active span. + */ + default AutoCloseable makeCurrent() { + return () -> { + }; + } +} diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanDecorator.java b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanDecorator.java similarity index 83% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanDecorator.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/SpanDecorator.java index 37314d17f5e5f..08dad06f65cdc 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanDecorator.java +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanDecorator.java @@ -20,7 +20,6 @@ import org.apache.camel.Endpoint; import org.apache.camel.Exchange; -import org.apache.camel.tracing.decorators.AbstractSpanDecorator; /** * This interface represents a decorator specific to the component/endpoint being instrumented. @@ -30,27 +29,15 @@ public interface SpanDecorator { /* Prefix for camel component tag */ String CAMEL_COMPONENT = "camel-"; - SpanDecorator DEFAULT = new AbstractSpanDecorator() { - - @Override - public String getComponent() { - return null; - } - - @Override - public String getComponentClassName() { - return null; - } - - }; - /** * This method indicates whether the component associated with the SpanDecorator should result in a new span being * created. * * @return Whether a new span should be created */ - boolean newSpan(); + default boolean newSpan() { + return true; + } /** * The camel component name associated with the decorator. @@ -76,7 +63,7 @@ public String getComponentClassName() { String getOperationName(Exchange exchange, Endpoint endpoint); /** - * This method adds appropriate details (tags/logs) to the supplied span based on the pre processing of the + * This method adds appropriate details (tags/logs) to the supplied span based on the pre-processing of the * exchange. * * @param span The span @@ -86,7 +73,7 @@ public String getComponentClassName() { void pre(SpanAdapter span, Exchange exchange, Endpoint endpoint); /** - * This method adds appropriate details (tags/logs) to the supplied span based on the post processing of the + * This method adds appropriate details (tags/logs) to the supplied span based on the post-processing of the * exchange. * * @param span The span @@ -100,17 +87,21 @@ public String getComponentClassName() { * * @return The kind */ - SpanKind getInitiatorSpanKind(); + default SpanKind getInitiatorSpanKind() { + return SpanKind.SPAN_KIND_CLIENT; + } /** * This method returns the 'span.kind' value for use when the component is receiving a communication. * * @return The kind */ - SpanKind getReceiverSpanKind(); + default SpanKind getReceiverSpanKind() { + return SpanKind.SPAN_KIND_SERVER; + } /** - * This method returns the map to be used for headers extraction when the component is receiving a communication. + * This method returns the map to be used for header extraction when the component is receiving a communication. * * @param map a map containing the objects * @param encoding whether the headers are encoded @@ -119,7 +110,7 @@ public String getComponentClassName() { ExtractAdapter getExtractAdapter(Map map, boolean encoding); /** - * This method returns the map to be used for headers injection when the component is receiving a communication. + * This method returns the map to be used for header injection when the component is receiving a communication. * * @param map a map containing the objects * @param encoding whether the headers are encoded diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanKind.java b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanKind.java similarity index 95% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanKind.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/SpanKind.java index f2afa79518815..0b5bd8fc03287 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/SpanKind.java +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/SpanKind.java @@ -16,6 +16,9 @@ */ package org.apache.camel.tracing; +/** + * Represents the kind of tracing span. + */ public enum SpanKind { SPAN_KIND_CLIENT, SPAN_KIND_SERVER, diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tag.java b/core/camel-api/src/main/java/org/apache/camel/tracing/Tag.java similarity index 91% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/Tag.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/Tag.java index c8adf6f87d0bb..fe2d4922f5ad5 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/Tag.java +++ b/core/camel-api/src/main/java/org/apache/camel/tracing/Tag.java @@ -16,6 +16,11 @@ */ package org.apache.camel.tracing; +/** + * This enum represents the tags that can be used to decorate spans. + * + * @deprecated Use one of the constants available in {@link TagConstants} instead. + */ @Deprecated public enum Tag { COMPONENT(TagConstants.COMPONENT), diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java b/core/camel-api/src/main/java/org/apache/camel/tracing/TagConstants.java similarity index 100% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java rename to core/camel-api/src/main/java/org/apache/camel/tracing/TagConstants.java diff --git a/core/camel-support/pom.xml b/core/camel-support/pom.xml index 69c348a78aea0..62201d9b96d5b 100644 --- a/core/camel-support/pom.xml +++ b/core/camel-support/pom.xml @@ -71,6 +71,12 @@ junit-jupiter test + + org.mockito + mockito-core + ${mockito-version} + test + diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractInternalSpanDecorator.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractInternalSpanDecorator.java similarity index 95% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractInternalSpanDecorator.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractInternalSpanDecorator.java index a0c08a91b523a..e0f92a1860631 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractInternalSpanDecorator.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractInternalSpanDecorator.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.decorators; +package org.apache.camel.support.tracing.decorators; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecorator.java similarity index 92% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecorator.java index 08e301f43214e..cbd1331a9a561 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecorator.java @@ -14,21 +14,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.decorators; +package org.apache.camel.support.tracing.decorators; import java.util.*; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; import org.apache.camel.spi.EndpointServiceLocation; +import org.apache.camel.support.tracing.propagators.CamelHeadersExtractAdapter; +import org.apache.camel.support.tracing.propagators.CamelHeadersInjectAdapter; import org.apache.camel.tracing.ExtractAdapter; import org.apache.camel.tracing.InjectAdapter; import org.apache.camel.tracing.SpanAdapter; import org.apache.camel.tracing.SpanDecorator; -import org.apache.camel.tracing.SpanKind; import org.apache.camel.tracing.TagConstants; -import org.apache.camel.tracing.propagation.CamelHeadersExtractAdapter; -import org.apache.camel.tracing.propagation.CamelHeadersInjectAdapter; import org.apache.camel.util.StringHelper; import org.apache.camel.util.URISupport; @@ -83,11 +82,6 @@ private static String getSchemeName(Endpoint endpoint) { return StringHelper.before(endpoint.getEndpointUri(), ":"); } - @Override - public boolean newSpan() { - return true; - } - @Override public String getOperationName(Exchange exchange, Endpoint endpoint) { // OpenTracing aims to use low cardinality operation names. Ideally a @@ -155,16 +149,6 @@ public void post(SpanAdapter span, Exchange exchange, Endpoint endpoint) { } } - @Override - public SpanKind getInitiatorSpanKind() { - return SpanKind.SPAN_KIND_CLIENT; - } - - @Override - public SpanKind getReceiverSpanKind() { - return SpanKind.SPAN_KIND_SERVER; - } - @Override public ExtractAdapter getExtractAdapter(final Map map, boolean encoding) { // no encoding supported per default diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/MockSpanAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/InMemorySpanAdapter.java similarity index 77% rename from components/camel-tracing/src/test/java/org/apache/camel/tracing/MockSpanAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/InMemorySpanAdapter.java index df5019304de4b..6c3064f63047e 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/MockSpanAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/decorators/InMemorySpanAdapter.java @@ -14,27 +14,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing; +package org.apache.camel.support.tracing.decorators; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -public class MockSpanAdapter implements SpanAdapter { +import org.apache.camel.tracing.SpanAdapter; +import org.apache.camel.tracing.Tag; +import org.apache.camel.tracing.TagConstants; - private List logEntries = new ArrayList<>(); - private Map tags = new HashMap<>(); +/** + * In memory implementation of {@link SpanAdapter} used for testing and mocking. + */ +public class InMemorySpanAdapter implements SpanAdapter { + + private final List logEntries = new ArrayList<>(); + private final Map tags = new HashMap<>(); private String traceId; private String spanId; private boolean isCurrent; - static long nowMicros() { + public static long nowMicros() { return System.currentTimeMillis() * 1000; } - static MockSpanAdapter buildSpan(String operation) { - return new MockSpanAdapter().setOperation(operation); + public static InMemorySpanAdapter buildSpan(String operation) { + return new InMemorySpanAdapter().setOperation(operation); } public Map tags() { @@ -116,25 +123,10 @@ public boolean isCurrent() { return this.isCurrent; } - public static final class LogEntry { - private final long timestampMicros; - private final Map fields; - - public LogEntry(long timestampMicros, Map fields) { - this.timestampMicros = timestampMicros; - this.fields = fields; - } - - public long timestampMicros() { - return timestampMicros; - } - - public Map fields() { - return fields; - } + public record LogEntry(long timestampMicros, Map fields) { } - public MockSpanAdapter setOperation(String operation) { + public InMemorySpanAdapter setOperation(String operation) { return this; } diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersExtractAdapter.java similarity index 92% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersExtractAdapter.java index aa824bdb030ae..c375b94d56860 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersExtractAdapter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.util.Iterator; import java.util.Map; @@ -29,7 +29,7 @@ public final class CamelHeadersExtractAdapter implements ExtractAdapter { public CamelHeadersExtractAdapter(final Map map) { // Extract string valued map entries map.entrySet().stream().filter(e -> e.getValue() instanceof String) - .forEach(e -> this.map.put(e.getKey(), (String) e.getValue())); + .forEach(e -> this.map.put(e.getKey(), e.getValue())); } @Override diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersInjectAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersInjectAdapter.java similarity index 96% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersInjectAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersInjectAdapter.java index 25ef941780d74..3be84c3eb8d1e 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersInjectAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelHeadersInjectAdapter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.util.Map; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapter.java similarity index 97% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapter.java index a415cd44ba0d5..302cc6bb66d79 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.nio.charset.StandardCharsets; import java.util.Iterator; diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapter.java b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapter.java similarity index 97% rename from components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapter.java rename to core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapter.java index 8f07f4311d18b..06e97e5a05cdf 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapter.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapter.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.util.Map; diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractSpanDecoratorTest.java b/core/camel-support/src/test/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecoratorTest.java similarity index 95% rename from components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractSpanDecoratorTest.java rename to core/camel-support/src/test/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecoratorTest.java index d017a210cb62c..200bc4f23fffc 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/AbstractSpanDecoratorTest.java +++ b/core/camel-support/src/test/java/org/apache/camel/support/tracing/decorators/AbstractSpanDecoratorTest.java @@ -14,11 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.decorators; +package org.apache.camel.support.tracing.decorators; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; -import org.apache.camel.tracing.MockSpanAdapter; import org.apache.camel.tracing.SpanDecorator; import org.apache.camel.tracing.TagConstants; import org.junit.jupiter.api.Test; @@ -72,7 +71,7 @@ public String getComponentClassName() { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.pre(span, null, endpoint); @@ -103,7 +102,7 @@ public String getComponentClassName() { } }; - MockSpanAdapter span = new MockSpanAdapter(); + InMemorySpanAdapter span = new InMemorySpanAdapter(); decorator.post(span, exchange, null); diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapterTest.java b/core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapterTest.java similarity index 95% rename from components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapterTest.java rename to core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapterTest.java index 8cc6ba92ac6ab..c307d6f1f1b15 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapterTest.java +++ b/core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersExtractAdapterTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.util.HashMap; import java.util.Iterator; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import static org.apache.camel.tracing.propagation.CamelMessagingHeadersInjectAdapter.JMS_DASH; +import static org.apache.camel.support.tracing.propagators.CamelMessagingHeadersInjectAdapter.JMS_DASH; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapterTest.java b/core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapterTest.java similarity index 93% rename from components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapterTest.java rename to core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapterTest.java index 48d02a667328c..67cfff7622236 100644 --- a/components/camel-tracing/src/test/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersInjectAdapterTest.java +++ b/core/camel-support/src/test/java/org/apache/camel/support/tracing/propagators/CamelMessagingHeadersInjectAdapterTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.tracing.propagation; +package org.apache.camel.support.tracing.propagators; import java.util.HashMap; import java.util.Map; @@ -22,7 +22,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import static org.apache.camel.tracing.propagation.CamelMessagingHeadersInjectAdapter.JMS_DASH; +import static org.apache.camel.support.tracing.propagators.CamelMessagingHeadersInjectAdapter.JMS_DASH; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull;