Move Getter/Setter to top level (#2840)
This commit is contained in:
parent
fa8bb33646
commit
4623334c7c
|
|
@ -8,8 +8,9 @@ package io.opentelemetry.api.trace.propagation;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.SpanContext;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -42,8 +43,8 @@ public class W3CTraceContextPropagatorBenchmark {
|
|||
"00-68ec932c33b3f2ee68ec932c33b3f2ee-68ec932c33b3f2ee-00");
|
||||
private final TextMapPropagator w3cTraceContextPropagator =
|
||||
W3CTraceContextPropagator.getInstance();
|
||||
private final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -55,7 +56,7 @@ public class W3CTraceContextPropagatorBenchmark {
|
|||
}
|
||||
};
|
||||
private final Map<String, String> carrier = new HashMap<>();
|
||||
private final TextMapPropagator.Setter<Map<String, String>> setter = Map::put;
|
||||
private final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
|
||||
private static final List<Map<String, String>> carriers =
|
||||
getCarrierForHeader(traceparentsHeaders);
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
package io.opentelemetry.api.trace.propagation;
|
||||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -40,8 +40,8 @@ public class W3CTraceContextPropagatorExtractBenchmark {
|
|||
"00-68ec932c33b3f2ee68ec932c33b3f2ee-68ec932c33b3f2ee-00");
|
||||
private final TextMapPropagator w3cTraceContextPropagator =
|
||||
W3CTraceContextPropagator.getInstance();
|
||||
private final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -43,7 +43,7 @@ public class W3CTraceContextPropagatorInjectBenchmark {
|
|||
private final TextMapPropagator w3cTraceContextPropagator =
|
||||
W3CTraceContextPropagator.getInstance();
|
||||
private final Map<String, String> carrier = new HashMap<>();
|
||||
private final Setter<Map<String, String>> setter = Map::put;
|
||||
private final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private final List<Context> contexts = createContexts(spanContexts);
|
||||
|
||||
/** Benchmark for measuring inject with default trace state and sampled trace options. */
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ import io.opentelemetry.api.baggage.Baggage;
|
|||
import io.opentelemetry.api.baggage.BaggageBuilder;
|
||||
import io.opentelemetry.api.baggage.BaggageEntryMetadata;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
|
|
@ -38,7 +40,7 @@ public final class W3CBaggagePropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
Baggage baggage = Baggage.fromContext(context);
|
||||
if (baggage.isEmpty()) {
|
||||
return;
|
||||
|
|
@ -60,7 +62,7 @@ public final class W3CBaggagePropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
String baggageHeader = getter.get(carrier, FIELD);
|
||||
if (baggageHeader == null) {
|
||||
return context;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ import io.opentelemetry.api.trace.TraceId;
|
|||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.api.trace.TraceStateBuilder;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
|
@ -97,7 +99,7 @@ public final class W3CTraceContextPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(setter, "setter");
|
||||
|
||||
|
|
@ -145,7 +147,7 @@ public final class W3CTraceContextPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(getter, "getter");
|
||||
|
||||
|
|
@ -157,8 +159,7 @@ public final class W3CTraceContextPropagator implements TextMapPropagator {
|
|||
return context.with(Span.wrap(spanContext));
|
||||
}
|
||||
|
||||
private static <C> SpanContext extractImpl(
|
||||
@Nullable C carrier, TextMapPropagator.Getter<C> getter) {
|
||||
private static <C> SpanContext extractImpl(@Nullable C carrier, TextMapGetter<C> getter) {
|
||||
String traceParent = getter.get(carrier, TRACE_PARENT);
|
||||
if (traceParent == null) {
|
||||
return SpanContext.getInvalid();
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import com.google.common.collect.ImmutableMap;
|
|||
import edu.berkeley.cs.jqf.fuzz.Fuzz;
|
||||
import edu.berkeley.cs.jqf.fuzz.JQF;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
import org.junit.runner.RunWith;
|
||||
|
|
@ -27,7 +27,7 @@ public class W3CBaggagePropagatorFuzzTest {
|
|||
baggagePropagator.extract(
|
||||
Context.root(),
|
||||
ImmutableMap.of("baggage", baggage),
|
||||
new Getter<Map<String, String>>() {
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.google.common.collect.ImmutableMap;
|
|||
import io.opentelemetry.api.baggage.Baggage;
|
||||
import io.opentelemetry.api.baggage.BaggageEntryMetadata;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
|
|
@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test;
|
|||
|
||||
class W3CBaggagePropagatorTest {
|
||||
|
||||
private static final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import com.google.common.collect.ImmutableMap;
|
|||
import edu.berkeley.cs.jqf.fuzz.Fuzz;
|
||||
import edu.berkeley.cs.jqf.fuzz.JQF;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
import org.junit.runner.RunWith;
|
||||
|
|
@ -29,7 +29,7 @@ public class W3CTraceContextPropagatorFuzzTest {
|
|||
w3cTraceContextPropagator.extract(
|
||||
Context.root(),
|
||||
ImmutableMap.of("traceparent", traceParentHeader, "tracestate", traceStateHeader),
|
||||
new Getter<Map<String, String>>() {
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
|
@ -36,9 +36,9 @@ class W3CTraceContextPropagatorTest {
|
|||
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-01";
|
||||
private static final String TRACEPARENT_HEADER_NOT_SAMPLED =
|
||||
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-00";
|
||||
private static final Setter<Map<String, String>> setter = Map::put;
|
||||
private static final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private static final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -83,7 +83,7 @@ class W3CTraceContextPropagatorTest {
|
|||
w3cTraceContextPropagator.inject(
|
||||
context,
|
||||
null,
|
||||
(Setter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
(TextMapSetter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
assertThat(carrier)
|
||||
.containsExactly(entry(W3CTraceContextPropagator.TRACE_PARENT, TRACEPARENT_HEADER_SAMPLED));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,14 +44,14 @@ final class MultiTextMapPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {
|
||||
for (TextMapPropagator textPropagator : textPropagators) {
|
||||
textPropagator.inject(context, carrier, setter);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
for (TextMapPropagator textPropagator : textPropagators) {
|
||||
context = textPropagator.extract(context, carrier, getter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ final class NoopTextMapPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {}
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
return context;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.context.propagation;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Interface that allows a {@code TextMapPropagator} to read propagated fields from a carrier.
|
||||
*
|
||||
* <p>{@code Getter} is stateless and allows to be saved as a constant to avoid runtime allocations.
|
||||
*
|
||||
* @param <C> carrier of propagation fields, such as an http request.
|
||||
*/
|
||||
public interface TextMapGetter<C> {
|
||||
|
||||
/**
|
||||
* Returns all the keys in the given carrier.
|
||||
*
|
||||
* @param carrier carrier of propagation fields, such as an http request.
|
||||
* @since 0.10.0
|
||||
*/
|
||||
Iterable<String> keys(C carrier);
|
||||
|
||||
/**
|
||||
* Returns the first value of the given propagation {@code key} or returns {@code null}.
|
||||
*
|
||||
* @param carrier carrier of propagation fields, such as an http request.
|
||||
* @param key the key of the field.
|
||||
* @return the first value of the given propagation {@code key} or returns {@code null}.
|
||||
*/
|
||||
@Nullable
|
||||
String get(@Nullable C carrier, String key);
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ public interface TextMapPropagator {
|
|||
|
||||
/**
|
||||
* The propagation fields defined. If your carrier is reused, you should delete the fields here
|
||||
* before calling {@link #inject(Context, Object, Setter)} )}.
|
||||
* before calling {@link #inject(Context, Object, TextMapSetter)} )}.
|
||||
*
|
||||
* <p>For example, if the carrier is a single-use or immutable request object, you don't need to
|
||||
* clear fields as they couldn't have been set before. If it is a mutable, retryable object,
|
||||
|
|
@ -97,39 +97,15 @@ public interface TextMapPropagator {
|
|||
|
||||
/**
|
||||
* Injects the value downstream, for example as HTTP headers. The carrier may be null to
|
||||
* facilitate calling this method with a lambda for the {@link Setter}, in which case that null
|
||||
* will be passed to the {@link Setter} implementation.
|
||||
* facilitate calling this method with a lambda for the {@link TextMapSetter}, in which case that
|
||||
* null will be passed to the {@link TextMapSetter} implementation.
|
||||
*
|
||||
* @param context the {@code Context} containing the value to be injected.
|
||||
* @param carrier holds propagation fields. For example, an outgoing message or http request.
|
||||
* @param setter invoked for each propagation key to add or remove.
|
||||
* @param <C> carrier of propagation fields, such as an http request
|
||||
*/
|
||||
<C> void inject(Context context, @Nullable C carrier, Setter<C> setter);
|
||||
|
||||
/**
|
||||
* Class that allows a {@code TextMapPropagator} to set propagated fields into a carrier.
|
||||
*
|
||||
* <p>{@code Setter} is stateless and allows to be saved as a constant to avoid runtime
|
||||
* allocations.
|
||||
*
|
||||
* @param <C> carrier of propagation fields, such as an http request
|
||||
*/
|
||||
interface Setter<C> {
|
||||
|
||||
/**
|
||||
* Replaces a propagated field with the given value.
|
||||
*
|
||||
* <p>For example, a setter for an {@link java.net.HttpURLConnection} would be the method
|
||||
* reference {@link java.net.HttpURLConnection#addRequestProperty(String, String)}
|
||||
*
|
||||
* @param carrier holds propagation fields. For example, an outgoing message or http request. To
|
||||
* facilitate implementations as java lambdas, this parameter may be null.
|
||||
* @param key the key of the field.
|
||||
* @param value the value of the field.
|
||||
*/
|
||||
void set(@Nullable C carrier, String key, String value);
|
||||
}
|
||||
<C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter);
|
||||
|
||||
/**
|
||||
* Extracts the value from upstream. For example, as http headers.
|
||||
|
|
@ -144,34 +120,5 @@ public interface TextMapPropagator {
|
|||
* @param <C> carrier of propagation fields, such as an http request.
|
||||
* @return the {@code Context} containing the extracted value.
|
||||
*/
|
||||
<C> Context extract(Context context, @Nullable C carrier, Getter<C> getter);
|
||||
|
||||
/**
|
||||
* Interface that allows a {@code TextMapPropagator} to read propagated fields from a carrier.
|
||||
*
|
||||
* <p>{@code Getter} is stateless and allows to be saved as a constant to avoid runtime
|
||||
* allocations.
|
||||
*
|
||||
* @param <C> carrier of propagation fields, such as an http request.
|
||||
*/
|
||||
interface Getter<C> {
|
||||
|
||||
/**
|
||||
* Returns all the keys in the given carrier.
|
||||
*
|
||||
* @param carrier carrier of propagation fields, such as an http request.
|
||||
* @since 0.10.0
|
||||
*/
|
||||
Iterable<String> keys(C carrier);
|
||||
|
||||
/**
|
||||
* Returns the first value of the given propagation {@code key} or returns {@code null}.
|
||||
*
|
||||
* @param carrier carrier of propagation fields, such as an http request.
|
||||
* @param key the key of the field.
|
||||
* @return the first value of the given propagation {@code key} or returns {@code null}.
|
||||
*/
|
||||
@Nullable
|
||||
String get(@Nullable C carrier, String key);
|
||||
}
|
||||
<C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.context.propagation;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Class that allows a {@code TextMapPropagator} to set propagated fields into a carrier.
|
||||
*
|
||||
* <p>{@code Setter} is stateless and allows to be saved as a constant to avoid runtime allocations.
|
||||
*
|
||||
* @param <C> carrier of propagation fields, such as an http request
|
||||
*/
|
||||
public interface TextMapSetter<C> {
|
||||
|
||||
/**
|
||||
* Replaces a propagated field with the given value.
|
||||
*
|
||||
* <p>For example, a setter for an {@link java.net.HttpURLConnection} would be the method
|
||||
* reference {@link java.net.HttpURLConnection#addRequestProperty(String, String)}
|
||||
*
|
||||
* @param carrier holds propagation fields. For example, an outgoing message or http request. To
|
||||
* facilitate implementations as java lambdas, this parameter may be null.
|
||||
* @param key the key of the field.
|
||||
* @param value the value of the field.
|
||||
*/
|
||||
void set(@Nullable C carrier, String key, String value);
|
||||
}
|
||||
|
|
@ -112,7 +112,7 @@ class DefaultPropagatorsTest {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
Object payload = context.get(key);
|
||||
if (payload != null) {
|
||||
setter.set(carrier, name, payload.toString());
|
||||
|
|
@ -120,7 +120,7 @@ class DefaultPropagatorsTest {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, C carrier, TextMapGetter<C> getter) {
|
||||
String payload = getter.get(carrier, name);
|
||||
if (payload != null) {
|
||||
context = context.with(key, payload);
|
||||
|
|
@ -130,7 +130,7 @@ class DefaultPropagatorsTest {
|
|||
}
|
||||
}
|
||||
|
||||
private static final class MapSetter implements TextMapPropagator.Setter<Map<String, String>> {
|
||||
private static final class MapSetter implements TextMapSetter<Map<String, String>> {
|
||||
private static final MapSetter INSTANCE = new MapSetter();
|
||||
|
||||
@Override
|
||||
|
|
@ -141,7 +141,7 @@ class DefaultPropagatorsTest {
|
|||
private MapSetter() {}
|
||||
}
|
||||
|
||||
private static final class MapGetter implements TextMapPropagator.Getter<Map<String, String>> {
|
||||
private static final class MapGetter implements TextMapGetter<Map<String, String>> {
|
||||
private static final MapGetter INSTANCE = new MapGetter();
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ class MultiTextMapPropagatorTest {
|
|||
@Mock private TextMapPropagator propagator2;
|
||||
@Mock private TextMapPropagator propagator3;
|
||||
|
||||
private static final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -84,7 +84,7 @@ class MultiTextMapPropagatorTest {
|
|||
void inject_allDelegated() {
|
||||
Map<String, String> carrier = new HashMap<>();
|
||||
Context context = mock(Context.class);
|
||||
TextMapPropagator.Setter<Map<String, String>> setter = Map::put;
|
||||
TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
|
||||
TextMapPropagator prop = new MultiTextMapPropagator(propagator1, propagator2, propagator3);
|
||||
prop.inject(context, carrier, setter);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,9 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Objects;
|
||||
|
|
@ -79,7 +81,7 @@ public final class AwsXrayPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(setter, "setter");
|
||||
|
||||
|
|
@ -117,7 +119,7 @@ public final class AwsXrayPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
Objects.requireNonNull(getter, "getter");
|
||||
|
||||
SpanContext spanContext = getSpanContextFromHeader(carrier, getter);
|
||||
|
|
@ -128,7 +130,7 @@ public final class AwsXrayPropagator implements TextMapPropagator {
|
|||
return context.with(Span.wrap(spanContext));
|
||||
}
|
||||
|
||||
private static <C> SpanContext getSpanContextFromHeader(C carrier, Getter<C> getter) {
|
||||
private static <C> SpanContext getSpanContextFromHeader(C carrier, TextMapGetter<C> getter) {
|
||||
String traceHeader = getter.get(carrier, TRACE_HEADER_KEY);
|
||||
if (traceHeader == null || traceHeader.isEmpty()) {
|
||||
return SpanContext.getInvalid();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@ import io.opentelemetry.api.trace.SpanContext;
|
|||
import io.opentelemetry.api.trace.TraceFlags;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
|
@ -25,9 +26,9 @@ class AwsXrayPropagatorTest {
|
|||
private static final String TRACE_ID = "8a3c60f7d188f8fa79d48a391a778fa6";
|
||||
private static final String SPAN_ID = "53995c3f42cd8ad8";
|
||||
|
||||
private static final TextMapPropagator.Setter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private static final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.extension.trace.propagation;
|
|||
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
|
@ -93,8 +93,8 @@ public class PropagatorContextExtractBenchmark {
|
|||
JaegerPropagator.PROPAGATION_HEADER,
|
||||
"68ec932c33b3f2ee68ec932c33b3f2ee:68ec932c33b3f2ee:0:0"));
|
||||
|
||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -141,8 +141,8 @@ public class PropagatorContextExtractBenchmark {
|
|||
JaegerPropagator.PROPAGATION_HEADER,
|
||||
"68ec932c33b3f2ee68ec932c33b3f2ee%3A68ec932c33b3f2ee%3A0%3A0"));
|
||||
|
||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -189,8 +189,8 @@ public class PropagatorContextExtractBenchmark {
|
|||
B3Propagator.COMBINED_HEADER,
|
||||
"68ec932c33b3f2ee68ec932c33b3f2ee-68ec932c33b3f2ee-0"));
|
||||
|
||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -240,8 +240,8 @@ public class PropagatorContextExtractBenchmark {
|
|||
return headers;
|
||||
}
|
||||
|
||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -287,8 +287,8 @@ public class PropagatorContextExtractBenchmark {
|
|||
"X-Amzn-Trace-Id",
|
||||
"Root=1-57ff426a-80c11c39b0c928905eb0828d;Parent=12345c3f42cd8ad8;Sampled=0"));
|
||||
|
||||
private final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import io.opentelemetry.api.trace.SpanContext;
|
|||
import io.opentelemetry.api.trace.TraceFlags;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.extension.aws.AwsXrayPropagator;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -83,8 +83,8 @@ public class PropagatorContextInjectBenchmark {
|
|||
public static class JaegerContextInjectBenchmark extends AbstractContextInjectBenchmark {
|
||||
|
||||
private final JaegerPropagator jaegerPropagator = JaegerPropagator.getInstance();
|
||||
private final TextMapPropagator.Setter<Map<String, String>> setter =
|
||||
new TextMapPropagator.Setter<Map<String, String>>() {
|
||||
private final TextMapSetter<Map<String, String>> setter =
|
||||
new TextMapSetter<Map<String, String>>() {
|
||||
@Override
|
||||
public void set(Map<String, String> carrier, String key, String value) {
|
||||
carrier.put(key, value);
|
||||
|
|
@ -101,8 +101,8 @@ public class PropagatorContextInjectBenchmark {
|
|||
public static class B3SingleHeaderContextInjectBenchmark extends AbstractContextInjectBenchmark {
|
||||
|
||||
private final B3Propagator b3Propagator = B3Propagator.getInstance();
|
||||
private final TextMapPropagator.Setter<Map<String, String>> setter =
|
||||
new TextMapPropagator.Setter<Map<String, String>>() {
|
||||
private final TextMapSetter<Map<String, String>> setter =
|
||||
new TextMapSetter<Map<String, String>>() {
|
||||
@Override
|
||||
public void set(Map<String, String> carrier, String key, String value) {
|
||||
carrier.put(key, value);
|
||||
|
|
@ -121,8 +121,8 @@ public class PropagatorContextInjectBenchmark {
|
|||
|
||||
private final B3Propagator b3Propagator =
|
||||
B3Propagator.builder().injectMultipleHeaders().build();
|
||||
private final TextMapPropagator.Setter<Map<String, String>> setter =
|
||||
new TextMapPropagator.Setter<Map<String, String>>() {
|
||||
private final TextMapSetter<Map<String, String>> setter =
|
||||
new TextMapSetter<Map<String, String>>() {
|
||||
@Override
|
||||
public void set(Map<String, String> carrier, String key, String value) {
|
||||
carrier.put(key, value);
|
||||
|
|
@ -138,8 +138,8 @@ public class PropagatorContextInjectBenchmark {
|
|||
/** Benchmark for injecting trace context into AWS X-Ray headers. */
|
||||
public static class AwsXrayPropagatorInjectBenchmark extends AbstractContextInjectBenchmark {
|
||||
private final AwsXrayPropagator xrayPropagator = AwsXrayPropagator.getInstance();
|
||||
private final TextMapPropagator.Setter<Map<String, String>> setter =
|
||||
new TextMapPropagator.Setter<Map<String, String>>() {
|
||||
private final TextMapSetter<Map<String, String>> setter =
|
||||
new TextMapSetter<Map<String, String>>() {
|
||||
@Override
|
||||
public void set(Map<String, String> carrier, String key, String value) {
|
||||
carrier.put(key, value);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ package io.opentelemetry.extension.trace.propagation;
|
|||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.ContextKey;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
|
@ -122,12 +124,12 @@ public final class B3Propagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {
|
||||
b3PropagatorInjector.inject(context, carrier, setter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
return Stream.<Supplier<Optional<Context>>>of(
|
||||
() -> singleHeaderExtractor.extract(context, carrier, getter),
|
||||
() -> multipleHeadersExtractor.extract(context, carrier, getter),
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
package io.opentelemetry.extension.trace.propagation;
|
||||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.Optional;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
@Immutable
|
||||
interface B3PropagatorExtractor {
|
||||
|
||||
<C> Optional<Context> extract(Context context, C carrier, TextMapPropagator.Getter<C> getter);
|
||||
<C> Optional<Context> extract(Context context, C carrier, TextMapGetter<C> getter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.extension.trace.propagation;
|
|||
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Logger;
|
||||
|
|
@ -19,15 +19,14 @@ final class B3PropagatorExtractorMultipleHeaders implements B3PropagatorExtracto
|
|||
Logger.getLogger(B3PropagatorExtractorMultipleHeaders.class.getName());
|
||||
|
||||
@Override
|
||||
public <C> Optional<Context> extract(
|
||||
Context context, C carrier, TextMapPropagator.Getter<C> getter) {
|
||||
public <C> Optional<Context> extract(Context context, C carrier, TextMapGetter<C> getter) {
|
||||
Objects.requireNonNull(carrier, "carrier");
|
||||
Objects.requireNonNull(getter, "getter");
|
||||
return extractSpanContextFromMultipleHeaders(context, carrier, getter);
|
||||
}
|
||||
|
||||
private static <C> Optional<Context> extractSpanContextFromMultipleHeaders(
|
||||
Context context, C carrier, TextMapPropagator.Getter<C> getter) {
|
||||
Context context, C carrier, TextMapGetter<C> getter) {
|
||||
String traceId = getter.get(carrier, B3Propagator.TRACE_ID_HEADER);
|
||||
if (!Common.isTraceIdValid(traceId)) {
|
||||
logger.fine(
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.extension.trace.propagation;
|
|||
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Logger;
|
||||
|
|
@ -19,15 +19,14 @@ final class B3PropagatorExtractorSingleHeader implements B3PropagatorExtractor {
|
|||
Logger.getLogger(B3PropagatorExtractorSingleHeader.class.getName());
|
||||
|
||||
@Override
|
||||
public <C> Optional<Context> extract(
|
||||
Context context, C carrier, TextMapPropagator.Getter<C> getter) {
|
||||
public <C> Optional<Context> extract(Context context, C carrier, TextMapGetter<C> getter) {
|
||||
Objects.requireNonNull(carrier, "carrier");
|
||||
Objects.requireNonNull(getter, "getter");
|
||||
return extractSpanContextFromSingleHeader(context, carrier, getter);
|
||||
}
|
||||
|
||||
private static <C> Optional<Context> extractSpanContextFromSingleHeader(
|
||||
Context context, C carrier, TextMapPropagator.Getter<C> getter) {
|
||||
Context context, C carrier, TextMapGetter<C> getter) {
|
||||
String value = getter.get(carrier, B3Propagator.COMBINED_HEADER);
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return Optional.empty();
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@
|
|||
package io.opentelemetry.extension.trace.propagation;
|
||||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
@Immutable
|
||||
interface B3PropagatorInjector {
|
||||
<C> void inject(Context context, C carrier, TextMapPropagator.Setter<C> setter);
|
||||
<C> void inject(Context context, C carrier, TextMapSetter<C> setter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ package io.opentelemetry.extension.trace.propagation;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.SpanContext;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Objects;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
@Immutable
|
||||
final class B3PropagatorInjectorMultipleHeaders implements B3PropagatorInjector {
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, TextMapPropagator.Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(setter, "setter");
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import io.opentelemetry.api.trace.SpanContext;
|
|||
import io.opentelemetry.api.trace.SpanId;
|
||||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Objects;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ final class B3PropagatorInjectorSingleHeader implements B3PropagatorInjector {
|
|||
private static final int COMBINED_HEADER_SIZE = SAMPLED_FLAG_OFFSET + SAMPLED_FLAG_SIZE;
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, TextMapPropagator.Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(setter, "setter");
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.Collection;
|
||||
|
|
@ -79,7 +81,7 @@ public final class JaegerPropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
Objects.requireNonNull(context, "context");
|
||||
Objects.requireNonNull(setter, "setter");
|
||||
|
||||
|
|
@ -91,7 +93,7 @@ public final class JaegerPropagator implements TextMapPropagator {
|
|||
injectBaggage(Baggage.fromContext(context), carrier, setter);
|
||||
}
|
||||
|
||||
private static <C> void injectSpan(SpanContext spanContext, C carrier, Setter<C> setter) {
|
||||
private static <C> void injectSpan(SpanContext spanContext, C carrier, TextMapSetter<C> setter) {
|
||||
|
||||
char[] chars = new char[PROPAGATION_HEADER_SIZE];
|
||||
|
||||
|
|
@ -113,13 +115,13 @@ public final class JaegerPropagator implements TextMapPropagator {
|
|||
setter.set(carrier, PROPAGATION_HEADER, new String(chars));
|
||||
}
|
||||
|
||||
private static <C> void injectBaggage(Baggage baggage, C carrier, Setter<C> setter) {
|
||||
private static <C> void injectBaggage(Baggage baggage, C carrier, TextMapSetter<C> setter) {
|
||||
baggage.forEach(
|
||||
(key, baggageEntry) -> setter.set(carrier, BAGGAGE_PREFIX + key, baggageEntry.getValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
Objects.requireNonNull(getter, "getter");
|
||||
|
||||
SpanContext spanContext = getSpanContextFromHeader(carrier, getter);
|
||||
|
|
@ -135,7 +137,7 @@ public final class JaegerPropagator implements TextMapPropagator {
|
|||
return context;
|
||||
}
|
||||
|
||||
private static <C> SpanContext getSpanContextFromHeader(C carrier, Getter<C> getter) {
|
||||
private static <C> SpanContext getSpanContextFromHeader(C carrier, TextMapGetter<C> getter) {
|
||||
String value = getter.get(carrier, PROPAGATION_HEADER);
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return SpanContext.getInvalid();
|
||||
|
|
@ -201,7 +203,7 @@ public final class JaegerPropagator implements TextMapPropagator {
|
|||
return buildSpanContext(traceId, spanId, flags);
|
||||
}
|
||||
|
||||
private static <C> Baggage getBaggageFromHeader(C carrier, Getter<C> getter) {
|
||||
private static <C> Baggage getBaggageFromHeader(C carrier, TextMapGetter<C> getter) {
|
||||
BaggageBuilder builder = null;
|
||||
|
||||
for (String key : getter.keys(carrier)) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.api.trace.SpanContext;
|
||||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
|
@ -54,7 +56,7 @@ public final class OtTracePropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
|
||||
if (context == null || setter == null) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -80,7 +82,7 @@ public final class OtTracePropagator implements TextMapPropagator {
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
if (context == null || getter == null) {
|
||||
// TODO Other propagators throw exceptions here
|
||||
return context;
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
|
@ -36,9 +36,9 @@ class B3PropagatorTest {
|
|||
private static final String SPAN_ID = "ff00000000000041";
|
||||
private static final String EXTRA_SPAN_ID = "ff00000000000045";
|
||||
private static final String SPAN_ID_ALL_ZERO = "0000000000000000";
|
||||
private static final Setter<Map<String, String>> setter = Map::put;
|
||||
private static final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private static final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -99,7 +99,7 @@ class B3PropagatorTest {
|
|||
SpanContext.create(TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()),
|
||||
Context.current()),
|
||||
null,
|
||||
(Setter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
(TextMapSetter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
assertThat(carrier).containsEntry(B3Propagator.TRACE_ID_HEADER, TRACE_ID);
|
||||
assertThat(carrier).containsEntry(B3Propagator.SPAN_ID_HEADER, SPAN_ID);
|
||||
assertThat(carrier).containsEntry(B3Propagator.SAMPLED_HEADER, "1");
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Collections;
|
||||
|
|
@ -47,9 +47,9 @@ class JaegerPropagatorTest {
|
|||
private static final String SPAN_ID = "0000000000017c29";
|
||||
private static final long SPAN_ID_LONG = 97321L;
|
||||
private static final long DEPRECATED_PARENT_SPAN_LONG = 0L;
|
||||
private static final TextMapPropagator.Setter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapPropagator.Getter<Map<String, String>> getter =
|
||||
new TextMapPropagator.Getter<Map<String, String>>() {
|
||||
private static final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -113,7 +113,7 @@ class JaegerPropagatorTest {
|
|||
SpanContext.create(TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()),
|
||||
Context.current()),
|
||||
null,
|
||||
(Setter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
(TextMapSetter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
|
||||
assertThat(carrier)
|
||||
.containsEntry(
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ import io.opentelemetry.api.trace.TraceFlags;
|
|||
import io.opentelemetry.api.trace.TraceId;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
|
@ -31,9 +31,9 @@ class OtTracePropagatorTest {
|
|||
private static final String SHORT_TRACE_ID = "ff00000000000000";
|
||||
private static final String SHORT_TRACE_ID_FULL = "0000000000000000ff00000000000000";
|
||||
private static final String SPAN_ID = "ff00000000000041";
|
||||
private static final Setter<Map<String, String>> setter = Map::put;
|
||||
private static final Getter<Map<String, String>> getter =
|
||||
new Getter<Map<String, String>>() {
|
||||
private static final TextMapSetter<Map<String, String>> setter = Map::put;
|
||||
private static final TextMapGetter<Map<String, String>> getter =
|
||||
new TextMapGetter<Map<String, String>>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Map<String, String> carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
@ -93,7 +93,7 @@ class OtTracePropagatorTest {
|
|||
SpanContext.create(TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()),
|
||||
Context.current()),
|
||||
null,
|
||||
(Setter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
(TextMapSetter<Map<String, String>>) (ignored, key, value) -> carrier.put(key, value));
|
||||
assertThat(carrier).containsEntry(OtTracePropagator.TRACE_ID_HEADER, TRACE_ID_RIGHT_PART);
|
||||
assertThat(carrier).containsEntry(OtTracePropagator.SPAN_ID_HEADER, SPAN_ID);
|
||||
assertThat(carrier).containsEntry(OtTracePropagator.SAMPLED_HEADER, "true");
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import io.opentelemetry.api.trace.Span;
|
|||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Setter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
|
|
@ -60,7 +60,7 @@ public class Application {
|
|||
.extract(
|
||||
Context.current(),
|
||||
request.raw(),
|
||||
new Getter<HttpServletRequest>() {
|
||||
new TextMapGetter<HttpServletRequest>() {
|
||||
@Override
|
||||
public Iterable<String> keys(HttpServletRequest carrier) {
|
||||
return Collections.list(carrier.getHeaderNames());
|
||||
|
|
@ -114,7 +114,7 @@ public class Application {
|
|||
.inject(
|
||||
withSpanContext,
|
||||
reqBuilder,
|
||||
new Setter<okhttp3.Request.Builder>() {
|
||||
new TextMapSetter<okhttp3.Request.Builder>() {
|
||||
@Override
|
||||
public void set(okhttp3.Request.Builder carrier, String key, String value) {
|
||||
carrier.addHeader(key, value);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import io.opencensus.trace.SpanContext;
|
|||
import io.opencensus.trace.propagation.TextFormat;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
|
@ -43,7 +44,7 @@ class OpenTelemetryTextFormatImpl extends TextFormat {
|
|||
propagator.extract(
|
||||
Context.current(),
|
||||
carrier,
|
||||
new TextMapPropagator.Getter<C>() {
|
||||
new TextMapGetter<C>() {
|
||||
// OC Getter cannot return keys for an object, but users should not need it either.
|
||||
@Override
|
||||
public Iterable<String> keys(C carrier) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.opentracingshim;
|
|||
import io.opentelemetry.api.baggage.Baggage;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentracing.propagation.TextMapExtract;
|
||||
import io.opentracing.propagation.TextMapInject;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -47,7 +46,8 @@ final class Propagation extends BaseShimObject {
|
|||
return new SpanContextShim(telemetryInfo, span.getSpanContext(), Baggage.fromContext(context));
|
||||
}
|
||||
|
||||
static final class TextMapSetter implements TextMapPropagator.Setter<TextMapInject> {
|
||||
static final class TextMapSetter
|
||||
implements io.opentelemetry.context.propagation.TextMapSetter<TextMapInject> {
|
||||
private TextMapSetter() {}
|
||||
|
||||
public static final TextMapSetter INSTANCE = new TextMapSetter();
|
||||
|
|
@ -60,7 +60,8 @@ final class Propagation extends BaseShimObject {
|
|||
|
||||
// We use Map<> instead of TextMap as we need to query a specified key, and iterating over
|
||||
// *all* values per key-query *might* be a bad idea.
|
||||
static final class TextMapGetter implements TextMapPropagator.Getter<Map<String, String>> {
|
||||
static final class TextMapGetter
|
||||
implements io.opentelemetry.context.propagation.TextMapGetter<Map<String, String>> {
|
||||
private TextMapGetter() {}
|
||||
|
||||
public static final TextMapGetter INSTANCE = new TextMapGetter();
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
package io.opentelemetry.sdk.autoconfigure;
|
||||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurablePropagatorProvider;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
|
@ -22,12 +24,12 @@ public class NotEnabledConfigurablePropagatorProvider implements ConfigurablePro
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
package io.opentelemetry.sdk.autoconfigure;
|
||||
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator;
|
||||
import io.opentelemetry.context.propagation.TextMapSetter;
|
||||
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurablePropagatorProvider;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
|
@ -22,10 +24,10 @@ public class TestConfigurablePropagatorProvider implements ConfigurablePropagato
|
|||
}
|
||||
|
||||
@Override
|
||||
public <C> void inject(Context context, @Nullable C carrier, Setter<C> setter) {}
|
||||
public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> setter) {}
|
||||
|
||||
@Override
|
||||
public <C> Context extract(Context context, @Nullable C carrier, Getter<C> getter) {
|
||||
public <C> Context extract(Context context, @Nullable C carrier, TextMapGetter<C> getter) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import io.opentelemetry.api.trace.Tracer;
|
|||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import io.opentelemetry.context.propagation.TextMapPropagator.Getter;
|
||||
import io.opentelemetry.context.propagation.TextMapGetter;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ final class Server extends Thread {
|
|||
.extract(
|
||||
Context.current(),
|
||||
message,
|
||||
new Getter<Message>() {
|
||||
new TextMapGetter<Message>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Message carrier) {
|
||||
return carrier.keySet();
|
||||
|
|
|
|||
Loading…
Reference in New Issue