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

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


The following commit(s) were added to refs/heads/master by this push:
     new a1802ab  Update opentelemetry to 0.11 (#4684)
a1802ab is described below

commit a1802ab9792b41180d21ea85f712dcb2691a31e4
Author: Ruben Vargas Palma <ruben.vp8...@gmail.com>
AuthorDate: Thu Nov 26 23:41:41 2020 -0600

    Update opentelemetry to 0.11 (#4684)
    
    Signed-off-by: Ruben Vargas <ruben.vp8...@gmail.com>
---
 components/camel-opentelemetry/pom.xml             |  8 +--
 .../camel/opentelemetry/AttributeProcessor.java    |  4 +-
 .../opentelemetry/OpenTelemetrySpanAdapter.java    | 73 ++++++++++------------
 .../camel/opentelemetry/OpenTelemetryTracer.java   | 56 ++++++++---------
 .../propagators/OpenTelemetryGetter.java           |  5 ++
 .../CamelOpenTelemetryTestSupport.java             | 56 ++++++++---------
 .../apache/camel/opentelemetry/SpanTestData.java   |  2 +-
 .../org/apache/camel/tracing/ExtractAdapter.java   |  3 +
 .../propagation/CamelHeadersExtractAdapter.java    |  6 ++
 .../CamelMessagingHeadersExtractAdapter.java       |  6 ++
 parent/pom.xml                                     |  2 +-
 11 files changed, 114 insertions(+), 107 deletions(-)

diff --git a/components/camel-opentelemetry/pom.xml 
b/components/camel-opentelemetry/pom.xml
index bbe36d1..1b3a869 100644
--- a/components/camel-opentelemetry/pom.xml
+++ b/components/camel-opentelemetry/pom.xml
@@ -64,11 +64,6 @@
       <version>${opentelemetry-version}</version>
     </dependency>
     <dependency>
-      <groupId>io.opentelemetry</groupId>
-      <artifactId>opentelemetry-exporters-otlp</artifactId>
-      <version>${opentelemetry-version}</version>
-    </dependency>
-    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
       <scope>test</scope>
@@ -80,8 +75,9 @@
     </dependency>
     <dependency>
       <groupId>io.opentelemetry</groupId>
-      <artifactId>opentelemetry-exporters-inmemory</artifactId>
+      <artifactId>opentelemetry-sdk-testing</artifactId>
       <version>${opentelemetry-version}</version>
+      <scope>test</scope>
     </dependency>
 
   </dependencies>
diff --git 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
index 12b0249..104e97a 100644
--- 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
+++ 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/AttributeProcessor.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.opentelemetry;
 
-import io.opentelemetry.trace.Span;
+import io.opentelemetry.api.trace.Span;
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
@@ -30,7 +30,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * A processor which adds a attribute on the active {@link 
io.opentelemetry.trace.Span} with an
+ * A processor which adds a attribute on the active {@link 
io.opentelemetry.api.trace.Span} with an
  * {@link org.apache.camel.Expression}
  */
 public class AttributeProcessor extends AsyncProcessorSupport implements 
Traceable, IdAware, RouteIdAware {
diff --git 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
index 06b47aa..b62f1ed 100644
--- 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
+++ 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/OpenTelemetrySpanAdapter.java
@@ -19,49 +19,44 @@ package org.apache.camel.opentelemetry;
 import java.util.EnumMap;
 import java.util.Map;
 
-import io.opentelemetry.OpenTelemetry;
-import io.opentelemetry.common.AttributeValue;
-import io.opentelemetry.common.Attributes;
-import io.opentelemetry.correlationcontext.CorrelationContext;
-import io.opentelemetry.correlationcontext.CorrelationContextManager;
-import io.opentelemetry.correlationcontext.EntryMetadata;
-import io.opentelemetry.trace.attributes.SemanticAttributes;
+import io.opentelemetry.api.baggage.Baggage;
+import io.opentelemetry.api.baggage.BaggageBuilder;
+import io.opentelemetry.api.baggage.EntryMetadata;
+import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.api.common.AttributesBuilder;
+import io.opentelemetry.api.trace.attributes.SemanticAttributes;
+import io.opentelemetry.context.Context;
 import org.apache.camel.tracing.SpanAdapter;
 import org.apache.camel.tracing.Tag;
 
 public class OpenTelemetrySpanAdapter implements SpanAdapter {
-    static final EntryMetadata DEFAULT_ENTRY_METADATA = 
EntryMetadata.create(EntryMetadata.EntryTtl.UNLIMITED_PROPAGATION);
     private static final String DEFAULT_EVENT_NAME = "log";
     private static EnumMap<Tag, String> tagMap = new EnumMap<>(Tag.class);
 
     static {
         tagMap.put(Tag.COMPONENT, "component");
-        tagMap.put(Tag.DB_TYPE, SemanticAttributes.DB_SYSTEM.key());
-        tagMap.put(Tag.DB_STATEMENT, SemanticAttributes.DB_STATEMENT.key());
-        tagMap.put(Tag.DB_INSTANCE, SemanticAttributes.DB_NAME.key());
-        tagMap.put(Tag.HTTP_METHOD, SemanticAttributes.HTTP_METHOD.key());
-        tagMap.put(Tag.HTTP_STATUS, SemanticAttributes.HTTP_STATUS_CODE.key());
-        tagMap.put(Tag.HTTP_URL, SemanticAttributes.HTTP_URL.key());
+        tagMap.put(Tag.DB_TYPE, SemanticAttributes.DB_SYSTEM.getKey());
+        tagMap.put(Tag.DB_STATEMENT, SemanticAttributes.DB_STATEMENT.getKey());
+        tagMap.put(Tag.DB_INSTANCE, SemanticAttributes.DB_NAME.getKey());
+        tagMap.put(Tag.HTTP_METHOD, SemanticAttributes.HTTP_METHOD.getKey());
+        tagMap.put(Tag.HTTP_STATUS, 
SemanticAttributes.HTTP_STATUS_CODE.getKey());
+        tagMap.put(Tag.HTTP_URL, SemanticAttributes.HTTP_URL.getKey());
         tagMap.put(Tag.MESSAGE_BUS_DESTINATION, "message_bus.destination");
     }
 
-    io.opentelemetry.trace.Span span;
-    private CorrelationContextManager contextManager;
-    private CorrelationContext correlationContext;
-    private OpenTelemetrySpanAdapter parent;
+    private Baggage baggage;
+    private io.opentelemetry.api.trace.Span span;
 
-    OpenTelemetrySpanAdapter(io.opentelemetry.trace.Span span) {
+    OpenTelemetrySpanAdapter(io.opentelemetry.api.trace.Span span) {
         this.span = span;
-        this.contextManager = OpenTelemetry.getCorrelationContextManager();
     }
 
-    OpenTelemetrySpanAdapter(io.opentelemetry.trace.Span span, 
CorrelationContext correlationContext) {
+    OpenTelemetrySpanAdapter(io.opentelemetry.api.trace.Span span, Baggage 
baggage) {
         this.span = span;
-        this.contextManager = OpenTelemetry.getCorrelationContextManager();
-        this.correlationContext = correlationContext;
+        this.baggage = baggage;
     }
 
-    io.opentelemetry.trace.Span getOpenTelemetrySpan() {
+    io.opentelemetry.api.trace.Span getOpenTelemetrySpan() {
         return this.span;
     }
 
@@ -115,7 +110,7 @@ public class OpenTelemetrySpanAdapter implements 
SpanAdapter {
     }
 
     Attributes convertToAttributes(Map<String, ?> fields) {
-        Attributes.Builder attributesBuilder = Attributes.newBuilder();
+        AttributesBuilder attributesBuilder = Attributes.builder();
 
         for (Map.Entry<String, ?> entry : fields.entrySet()) {
             String key = entry.getKey();
@@ -127,37 +122,37 @@ public class OpenTelemetrySpanAdapter implements 
SpanAdapter {
                     || value instanceof Short
                     || value instanceof Integer
                     || value instanceof Long) {
-                attributesBuilder.setAttribute(key, 
AttributeValue.longAttributeValue(((Number) value).longValue()));
+                attributesBuilder.put(key, ((Number) value).longValue());
             } else if (value instanceof Float || value instanceof Double) {
-                attributesBuilder.setAttribute(key, 
AttributeValue.doubleAttributeValue(((Number) value).doubleValue()));
+                attributesBuilder.put(key, ((Number) value).doubleValue());
             } else if (value instanceof Boolean) {
-                attributesBuilder.setAttribute(key, 
AttributeValue.booleanAttributeValue((Boolean) value));
+                attributesBuilder.put(key, (Boolean) value);
             } else {
-                attributesBuilder.setAttribute(key, 
AttributeValue.stringAttributeValue(value.toString()));
+                attributesBuilder.put(key, value.toString());
             }
         }
         return attributesBuilder.build();
     }
 
-    public CorrelationContext getCorrelationContext() {
-        return this.correlationContext;
+    public Baggage getBaggage() {
+        return this.baggage;
     }
 
-    public void setCorrelationContext(CorrelationContext correlationContext) {
-        this.correlationContext = correlationContext;
+    public void setBaggage(Baggage baggage) {
+        this.baggage = baggage;
     }
 
     public void setCorrelationContextItem(String key, String value) {
-        CorrelationContext.Builder builder = contextManager.contextBuilder();
-        if (correlationContext != null) {
-            builder = builder.setParent(correlationContext);
+        BaggageBuilder builder = Baggage.builder();
+        if (baggage != null) {
+            builder = builder.setParent(Context.current().with(baggage));
         }
-        correlationContext = builder.put(key, value, 
DEFAULT_ENTRY_METADATA).build();
+        baggage = builder.put(key, value, EntryMetadata.EMPTY).build();
     }
 
     public String getContextPropagationItem(String key) {
-        if (correlationContext != null) {
-            return correlationContext.getEntryValue(key);
+        if (baggage != null) {
+            return baggage.getEntryValue(key);
         }
         return null;
     }
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 a3c1d90..0d5a3cd 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
@@ -18,15 +18,12 @@ package org.apache.camel.opentelemetry;
 
 import java.util.Set;
 
-import io.grpc.Context;
-import io.opentelemetry.OpenTelemetry;
-import io.opentelemetry.correlationcontext.CorrelationContext;
-import io.opentelemetry.correlationcontext.CorrelationsContextUtils;
-import io.opentelemetry.trace.DefaultTracer;
-import io.opentelemetry.trace.Span;
-import io.opentelemetry.trace.SpanContext;
-import io.opentelemetry.trace.Tracer;
-import io.opentelemetry.trace.TracingContextUtils;
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.api.baggage.Baggage;
+import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.trace.SpanBuilder;
+import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.context.Context;
 import org.apache.camel.Exchange;
 import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.opentelemetry.propagators.OpenTelemetryGetter;
@@ -81,52 +78,51 @@ public class OpenTelemetryTracer extends 
org.apache.camel.tracing.Tracer {
         }
 
         if (tracer == null) {
-            tracer = OpenTelemetry.getTracer(instrumentationName);
+            tracer = OpenTelemetry.get().getTracer(instrumentationName);
         }
 
         if (tracer == null) {
             // No tracer is available, so setup NoopTracer
-            tracer = DefaultTracer.getInstance();
+            tracer = Tracer.getDefault();
         }
     }
 
     @Override
     protected SpanAdapter startSendingEventSpan(String operationName, SpanKind 
kind, SpanAdapter parent) {
-        Span.Builder builder = 
tracer.spanBuilder(operationName).setSpanKind(mapToSpanKind(kind));
-        CorrelationContext correlationContext = null;
+        Baggage baggage = null;
+        SpanBuilder builder = 
tracer.spanBuilder(operationName).setSpanKind(mapToSpanKind(kind));
         if (parent != null) {
             OpenTelemetrySpanAdapter oTelSpanWrapper = 
(OpenTelemetrySpanAdapter) parent;
             Span parentSpan = oTelSpanWrapper.getOpenTelemetrySpan();
-            correlationContext = oTelSpanWrapper.getCorrelationContext();
-            builder = builder.setParent(parentSpan);
+            baggage = oTelSpanWrapper.getBaggage();
+            builder = builder.setParent(Context.current().with(parentSpan));
         }
-        return new OpenTelemetrySpanAdapter(builder.startSpan(), 
correlationContext);
+        return new OpenTelemetrySpanAdapter(builder.startSpan(), baggage);
     }
 
     @Override
     protected SpanAdapter startExchangeBeginSpan(
             Exchange exchange, SpanDecorator sd, String operationName, 
SpanKind kind, SpanAdapter parent) {
-        Span.Builder builder = tracer.spanBuilder(operationName);
-        CorrelationContext correlationContext = null;
+        SpanBuilder builder = tracer.spanBuilder(operationName);
+        Baggage baggage;
         if (parent != null) {
             OpenTelemetrySpanAdapter spanFromExchange = 
(OpenTelemetrySpanAdapter) parent;
-            builder = 
builder.setParent(spanFromExchange.getOpenTelemetrySpan());
-            correlationContext = spanFromExchange.getCorrelationContext();
+            builder = 
builder.setParent(Context.current().with(spanFromExchange.getOpenTelemetrySpan()));
+            baggage = spanFromExchange.getBaggage();
         } else {
             ExtractAdapter adapter = 
sd.getExtractAdapter(exchange.getIn().getHeaders(), encoding);
-            Context ctx = 
OpenTelemetry.getPropagators().getTextMapPropagator().extract(Context.current(),
 adapter,
+            Context ctx = 
OpenTelemetry.get().getPropagators().getTextMapPropagator().extract(Context.current(),
 adapter,
                     new OpenTelemetryGetter(adapter));
-            Span span = TracingContextUtils.getSpan(ctx);
-            SpanContext parentFromHeaders = span.getContext();
-            correlationContext = 
CorrelationsContextUtils.getCorrelationContext(ctx);
-            if (parentFromHeaders != null && parentFromHeaders.isValid()) {
-                
builder.setParent(parentFromHeaders).setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
+            Span span = Span.fromContext(ctx);
+            baggage = Baggage.fromContext(ctx);
+            if (span != null && span.getSpanContext().isValid()) {
+                
builder.setParent(ctx).setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
             } else if (!(sd instanceof AbstractInternalSpanDecorator)) {
                 builder.setSpanKind(mapToSpanKind(sd.getReceiverSpanKind()));
             }
         }
 
-        return new OpenTelemetrySpanAdapter(builder.startSpan(), 
correlationContext);
+        return new OpenTelemetrySpanAdapter(builder.startSpan(), baggage);
     }
 
     @Override
@@ -138,9 +134,9 @@ public class OpenTelemetryTracer extends 
org.apache.camel.tracing.Tracer {
     @Override
     protected void inject(SpanAdapter span, InjectAdapter adapter) {
         OpenTelemetrySpanAdapter spanFromExchange = (OpenTelemetrySpanAdapter) 
span;
-        Context context = 
TracingContextUtils.withSpan(spanFromExchange.getOpenTelemetrySpan(), 
Context.current());
-        context = 
CorrelationsContextUtils.withCorrelationContext(spanFromExchange.getCorrelationContext(),
 context);
-        OpenTelemetry.getPropagators().getTextMapPropagator().inject(context, 
adapter, new OpenTelemetrySetter());
+        Span otelSpan = spanFromExchange.getOpenTelemetrySpan();
+        Context ctx = 
Context.current().with(otelSpan).with(spanFromExchange.getBaggage());
+        
OpenTelemetry.get().getPropagators().getTextMapPropagator().inject(ctx, 
adapter, new OpenTelemetrySetter());
     }
 
 }
diff --git 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
index 2254270..856c721 100644
--- 
a/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
+++ 
b/components/camel-opentelemetry/src/main/java/org/apache/camel/opentelemetry/propagators/OpenTelemetryGetter.java
@@ -28,6 +28,11 @@ public class OpenTelemetryGetter implements 
TextMapPropagator.Getter<ExtractAdap
     }
 
     @Override
+    public Iterable<String> keys(ExtractAdapter extractAdapter) {
+        return adapter.keys();
+    }
+
+    @Override
     public String get(ExtractAdapter adapter, String key) {
         return (String) adapter.get(key);
     }
diff --git 
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
 
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
index 32d5f1c..d7631c0 100644
--- 
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
+++ 
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/CamelOpenTelemetryTestSupport.java
@@ -26,12 +26,12 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import io.opentelemetry.exporters.inmemory.InMemoryTracing;
-import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.api.common.AttributeKey;
+import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
 import io.opentelemetry.sdk.trace.TracerSdkProvider;
 import io.opentelemetry.sdk.trace.data.SpanData;
-import io.opentelemetry.trace.TraceId;
-import io.opentelemetry.trace.Tracer;
+import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
 import org.apache.camel.CamelContext;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.tracing.SpanDecorator;
@@ -41,10 +41,17 @@ import static 
org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class CamelOpenTelemetryTestSupport extends CamelTestSupport {
 
-    InMemoryTracing inMemorytracing;
+    static final AttributeKey<String> CAMEL_URI_KEY = 
AttributeKey.stringKey("camel-uri");
+    static final AttributeKey<String> COMPONENT_KEY = 
AttributeKey.stringKey("component");
+    static final AttributeKey<String> PRE_KEY = AttributeKey.stringKey("pre");
+    static final AttributeKey<String> POST_KEY = 
AttributeKey.stringKey("post");
+    static final AttributeKey<String> MESSAGE_KEY = 
AttributeKey.stringKey("message");
+
+    private InMemorySpanExporter inMemorySpanExporter = 
InMemorySpanExporter.create();
     private SpanTestData[] testdata;
     private Tracer tracer;
     private OpenTelemetryTracer ottracer;
+    private TracerSdkProvider tracerFactory = 
TracerSdkProvider.builder().build();
 
     public CamelOpenTelemetryTestSupport(SpanTestData[] testdata) {
         this.testdata = testdata;
@@ -54,9 +61,8 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
         ottracer = new OpenTelemetryTracer();
-        TracerSdkProvider provider = 
OpenTelemetrySdk.getTracerProvider().builder().build();
-        inMemorytracing = 
InMemoryTracing.builder().setTracerProvider(provider).build();
-        tracer = provider.get("tracerTest");
+        
tracerFactory.addSpanProcessor(SimpleSpanProcessor.builder(inMemorySpanExporter).build());
+        tracer = tracerFactory.get("tracerTest");
         ottracer.setTracer(tracer);
         ottracer.setExcludePatterns(getExcludePatterns());
         ottracer.addDecorator(new TestSEDASpanDecorator());
@@ -73,10 +79,10 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
     }
 
     protected void verify(boolean async) {
-        List<SpanData> spans = 
inMemorytracing.getSpanExporter().getFinishedSpanItems();
+        List<SpanData> spans = inMemorySpanExporter.getFinishedSpanItems();
         spans.forEach(mockSpan -> {
             System.out.println("Span: " + mockSpan);
-            System.out.println("\tComponent: " + 
mockSpan.getAttributes().get("component"));
+            System.out.println("\tComponent: " + 
mockSpan.getAttributes().get(COMPONENT_KEY));
             System.out.println("\tTags: " + mockSpan.getAttributes());
             System.out.println("\tLogs: ");
 
@@ -99,8 +105,8 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
     protected SpanData findSpan(SpanTestData testdata, List<SpanData> spans) {
         return spans.stream().filter(s -> {
             boolean matched = s.getName().equals(testdata.getOperation());
-            if (s.getAttributes().get("camel-uri") != null) {
-                matched = matched && 
s.getAttributes().get("camel.uri").equals(testdata.getUri());
+            if (s.getAttributes().get(CAMEL_URI_KEY) != null) {
+                matched = matched && 
s.getAttributes().get(CAMEL_URI_KEY).equals(testdata.getUri());
             }
             matched = matched && s.getKind().equals(testdata.getKind());
             return matched;
@@ -112,22 +118,18 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
     }
 
     protected void verifyTraceSpanNumbers(int numOfTraces, int 
numSpansPerTrace) {
-        Map<TraceId, List<SpanData>> traces = new HashMap<>();
+        Map<String, List<SpanData>> traces = new HashMap<>();
 
-        List<SpanData> finishedSpans = 
inMemorytracing.getSpanExporter().getFinishedSpanItems();
+        List<SpanData> finishedSpans = 
inMemorySpanExporter.getFinishedSpanItems();
         // Sort spans into separate traces
         for (int i = 0; i < finishedSpans.size(); i++) {
-            List<SpanData> spans = 
traces.get(finishedSpans.get(i).getTraceId());
-            if (spans == null) {
-                spans = new ArrayList<>();
-                traces.put(finishedSpans.get(i).getTraceId(), spans);
-            }
+            List<SpanData> spans = 
traces.computeIfAbsent(finishedSpans.get(i).getTraceId(), k -> new 
ArrayList<>());
             spans.add(finishedSpans.get(i));
         }
 
         assertEquals(numOfTraces, traces.size());
 
-        for (Map.Entry<TraceId, List<SpanData>> spans : traces.entrySet()) {
+        for (Map.Entry<String, List<SpanData>> spans : traces.entrySet()) {
             assertEquals(numSpansPerTrace, spans.getValue().size());
         }
     }
@@ -136,7 +138,7 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
         SpanData span = spans.get(index);
         SpanTestData td = testdata[index];
 
-        String component = 
span.getAttributes().get("component").getStringValue();
+        String component = span.getAttributes().get(COMPONENT_KEY);
         assertNotNull(component);
 
         if (td.getUri() != null) {
@@ -144,8 +146,8 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
         }
 
         if ("camel-seda".equals(component)) {
-            assertNotNull(span.getAttributes().get("pre"));
-            assertNotNull(span.getAttributes().get("post"));
+            assertNotNull(span.getAttributes().get(PRE_KEY));
+            assertNotNull(span.getAttributes().get(POST_KEY));
         }
 
         assertEquals(td.getOperation(), span.getName(), td.getLabel());
@@ -155,8 +157,7 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
         if (!td.getLogMessages().isEmpty()) {
             assertEquals(td.getLogMessages().size(), span.getEvents().size(), 
td.getLabel());
             for (int i = 0; i < td.getLogMessages().size(); i++) {
-                assertEquals(td.getLogMessages().get(i),
-                        
span.getEvents().get(i).getAttributes().get("message").getStringValue());
+                assertEquals(td.getLogMessages().get(i), 
span.getEvents().get(i).getAttributes().get(MESSAGE_KEY));
             }
         }
 
@@ -165,15 +166,14 @@ public class CamelOpenTelemetryTestSupport extends 
CamelTestSupport {
         }
         if (!td.getTags().isEmpty()) {
             for (Map.Entry<String, String> entry : td.getTags().entrySet()) {
-                assertEquals(entry.getValue(), 
span.getAttributes().get(entry.getKey()).getStringValue());
+                assertEquals(entry.getValue(), 
span.getAttributes().get(AttributeKey.stringKey(entry.getKey())));
             }
         }
 
     }
 
     protected void verifySameTrace() {
-        assertEquals(1,
-                
inMemorytracing.getSpanExporter().getFinishedSpanItems().stream().map(s -> 
s.getTraceId()).distinct().count());
+        assertEquals(1, 
inMemorySpanExporter.getFinishedSpanItems().stream().map(s -> 
s.getTraceId()).distinct().count());
     }
 
 }
diff --git 
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
 
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
index 9c9e64d..f7d8ba3 100644
--- 
a/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
+++ 
b/components/camel-opentelemetry/src/test/java/org/apache/camel/opentelemetry/SpanTestData.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import io.opentelemetry.trace.Span;
+import io.opentelemetry.api.trace.Span;
 
 public class SpanTestData {
 
diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
index cc670db..e2ed5bf 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ExtractAdapter.java
@@ -18,9 +18,12 @@ package org.apache.camel.tracing;
 
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 public interface ExtractAdapter {
     Iterator<Map.Entry<String, String>> iterator();
 
     Object get(String key);
+
+    Set<String> keys();
 }
diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
index f849d53..c1be58b 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelHeadersExtractAdapter.java
@@ -19,6 +19,7 @@ package org.apache.camel.tracing.propagation;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.camel.tracing.ExtractAdapter;
 
@@ -40,4 +41,9 @@ public final class CamelHeadersExtractAdapter implements 
ExtractAdapter {
     public Object get(String key) {
         return this.map.get(key);
     }
+
+    @Override
+    public Set<String> keys() {
+        return map.keySet();
+    }
 }
diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
index 4c71cd3..4765a7c 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/propagation/CamelMessagingHeadersExtractAdapter.java
@@ -20,6 +20,7 @@ import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.camel.tracing.ExtractAdapter;
 
@@ -50,6 +51,11 @@ public final class CamelMessagingHeadersExtractAdapter 
implements ExtractAdapter
         return this.map.get(key);
     }
 
+    @Override
+    public Set<String> keys() {
+        return map.keySet();
+    }
+
     /**
      * Decode dashes (encoded in {@link CamelMessagingHeadersInjectAdapter} 
Dash encoding and decoding is required by
      * JMS. This is implemented here rather than specifically to JMS so that 
other Camel messaging endpoints can take
diff --git a/parent/pom.xml b/parent/pom.xml
index dc26ce0..44318a1 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -436,7 +436,7 @@
         <ognl-version>3.1.12</ognl-version>
         <openjpa-version>3.1.2</openjpa-version>
         <openstack4j-version>3.8</openstack4j-version>
-        <opentelemetry-version>0.8.0</opentelemetry-version>
+        <opentelemetry-version>0.11.0</opentelemetry-version>
         <!-- cannot upgrade opentracing until 
https://github.com/eclipse/microprofile-opentracing v2 is released -->
         <opentracing-version>0.31.0</opentracing-version>
         
<opentracing-tracerresolver-version>0.1.8</opentracing-tracerresolver-version>

Reply via email to