Make the baggage API fully functional in the API (#1822)
* Make the baggage API fully functional in the API and get rid of the BaggageManager that was needed previously. * javadoc cleanup * more javadoc cleanup * make the ImmutableBaggage package access
This commit is contained in:
parent
9efb503544
commit
e13e631847
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry;
|
package io.opentelemetry;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
import io.opentelemetry.baggage.BaggageManager;
|
||||||
import io.opentelemetry.baggage.DefaultBaggageManager;
|
|
||||||
import io.opentelemetry.baggage.spi.BaggageManagerFactory;
|
import io.opentelemetry.baggage.spi.BaggageManagerFactory;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
||||||
|
|
@ -37,13 +36,13 @@ import javax.annotation.concurrent.ThreadSafe;
|
||||||
*/
|
*/
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
public final class OpenTelemetry {
|
public final class OpenTelemetry {
|
||||||
|
|
||||||
private static final Object mutex = new Object();
|
private static final Object mutex = new Object();
|
||||||
|
|
||||||
@Nullable private static volatile OpenTelemetry instance;
|
@Nullable private static volatile OpenTelemetry instance;
|
||||||
|
|
||||||
private final TracerProvider tracerProvider;
|
private final TracerProvider tracerProvider;
|
||||||
private final MeterProvider meterProvider;
|
private final MeterProvider meterProvider;
|
||||||
private final BaggageManager contextManager;
|
|
||||||
|
|
||||||
private volatile ContextPropagators propagators = DefaultContextPropagators.builder().build();
|
private volatile ContextPropagators propagators = DefaultContextPropagators.builder().build();
|
||||||
|
|
||||||
|
|
@ -126,17 +125,6 @@ public final class OpenTelemetry {
|
||||||
return getMeterProvider().get(instrumentationName, instrumentationVersion);
|
return getMeterProvider().get(instrumentationName, instrumentationVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a singleton {@link BaggageManager}.
|
|
||||||
*
|
|
||||||
* @return registered manager or default via {@link DefaultBaggageManager#getInstance()}.
|
|
||||||
* @throws IllegalStateException if a specified manager (via system properties) could not be
|
|
||||||
* found.
|
|
||||||
*/
|
|
||||||
public static BaggageManager getBaggageManager() {
|
|
||||||
return getInstance().contextManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link ContextPropagators} object, which can be used to access the set of registered
|
* Returns a {@link ContextPropagators} object, which can be used to access the set of registered
|
||||||
* propagators for each supported format.
|
* propagators for each supported format.
|
||||||
|
|
@ -188,11 +176,6 @@ public final class OpenTelemetry {
|
||||||
meterProviderFactory != null
|
meterProviderFactory != null
|
||||||
? meterProviderFactory.create()
|
? meterProviderFactory.create()
|
||||||
: DefaultMeterProvider.getInstance();
|
: DefaultMeterProvider.getInstance();
|
||||||
BaggageManagerFactory contextManagerProvider = loadSpi(BaggageManagerFactory.class);
|
|
||||||
contextManager =
|
|
||||||
contextManagerProvider != null
|
|
||||||
? contextManagerProvider.create()
|
|
||||||
: DefaultBaggageManager.getInstance();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,17 @@ import javax.annotation.concurrent.Immutable;
|
||||||
*/
|
*/
|
||||||
@Immutable
|
@Immutable
|
||||||
public interface Baggage {
|
public interface Baggage {
|
||||||
|
|
||||||
|
/** Baggage with no entries. */
|
||||||
|
static Baggage empty() {
|
||||||
|
return ImmutableBaggage.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Creates a new {@link Builder} for creating Baggage. */
|
||||||
|
static Builder builder() {
|
||||||
|
return ImmutableBaggage.builder();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an immutable collection of the entries in this {@code Baggage}. Order of entries is not
|
* Returns an immutable collection of the entries in this {@code Baggage}. Order of entries is not
|
||||||
* guaranteed.
|
* guaranteed.
|
||||||
|
|
@ -39,10 +50,11 @@ public interface Baggage {
|
||||||
|
|
||||||
/** Builder for the {@link Baggage} class. */
|
/** Builder for the {@link Baggage} class. */
|
||||||
interface Builder {
|
interface Builder {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the parent {@link Baggage} to use from the specified {@code Context}. If no parent
|
* Sets the parent {@link Baggage} to use from the specified {@code Context}. If no parent
|
||||||
* {@link Baggage} is provided, the value of {@link BaggageManager#getCurrentBaggage()} at
|
* {@link Baggage} is provided, the value of {@link BaggageUtils#getCurrentBaggage()} at {@link
|
||||||
* {@link #build()} time will be used as parent, unless {@link #setNoParent()} was called.
|
* #build()} time will be used as parent, unless {@link #setNoParent()} was called.
|
||||||
*
|
*
|
||||||
* <p>If no parent {@link Baggage} is available in the specified {@code Context}, the resulting
|
* <p>If no parent {@link Baggage} is available in the specified {@code Context}, the resulting
|
||||||
* {@link Baggage} will become a root instance, as if {@link #setNoParent()} had been called.
|
* {@link Baggage} will become a root instance, as if {@link #setNoParent()} had been called.
|
||||||
|
|
@ -62,7 +74,7 @@ public interface Baggage {
|
||||||
/**
|
/**
|
||||||
* Sets the option to become a root {@link Baggage} with no parent. If <b>not</b> called, the
|
* Sets the option to become a root {@link Baggage} with no parent. If <b>not</b> called, the
|
||||||
* value provided using {@link #setParent(Context)} or otherwise {@link
|
* value provided using {@link #setParent(Context)} or otherwise {@link
|
||||||
* BaggageManager#getCurrentBaggage()} at {@link #build()} time will be used as parent.
|
* BaggageUtils#getCurrentBaggage()} at {@link #build()} time will be used as parent.
|
||||||
*
|
*
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
|
|
@ -78,6 +90,15 @@ public interface Baggage {
|
||||||
*/
|
*/
|
||||||
Builder put(String key, String value, EntryMetadata entryMetadata);
|
Builder put(String key, String value, EntryMetadata entryMetadata);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the key/value pair with empty metadata regardless of whether the key is present.
|
||||||
|
*
|
||||||
|
* @param key the {@code String} key which will be set.
|
||||||
|
* @param value the {@code String} value to set for the given key.
|
||||||
|
* @return this
|
||||||
|
*/
|
||||||
|
Builder put(String key, String value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the key if it exists.
|
* Removes the key if it exists.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ public final class BaggageUtils {
|
||||||
*/
|
*/
|
||||||
public static Baggage getBaggage(Context context) {
|
public static Baggage getBaggage(Context context) {
|
||||||
Baggage baggage = context.getValue(CORR_CONTEXT_KEY);
|
Baggage baggage = context.getValue(CORR_CONTEXT_KEY);
|
||||||
return baggage == null ? EmptyBaggage.getInstance() : baggage;
|
return baggage == null ? Baggage.empty() : baggage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.baggage;
|
|
||||||
|
|
||||||
import io.opentelemetry.context.Context;
|
|
||||||
import io.opentelemetry.context.Scope;
|
|
||||||
import java.util.Objects;
|
|
||||||
import javax.annotation.concurrent.Immutable;
|
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
|
||||||
|
|
||||||
/** No-op implementations of {@link BaggageManager}. */
|
|
||||||
@ThreadSafe
|
|
||||||
public final class DefaultBaggageManager implements BaggageManager {
|
|
||||||
private static final DefaultBaggageManager INSTANCE = new DefaultBaggageManager();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a {@code BaggageManager} singleton that is the default implementation for {@link
|
|
||||||
* BaggageManager}.
|
|
||||||
*
|
|
||||||
* @return a {@code BaggageManager} singleton that is the default implementation for {@link
|
|
||||||
* BaggageManager}.
|
|
||||||
*/
|
|
||||||
public static BaggageManager getInstance() {
|
|
||||||
return INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage getCurrentBaggage() {
|
|
||||||
return BaggageUtils.getCurrentBaggage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder baggageBuilder() {
|
|
||||||
return new NoopBaggageBuilder();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Scope withBaggage(Baggage baggage) {
|
|
||||||
return BaggageUtils.currentContextWith(baggage);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Immutable
|
|
||||||
private static final class NoopBaggageBuilder implements Baggage.Builder {
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder setParent(Context context) {
|
|
||||||
Objects.requireNonNull(context, "context");
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder setNoParent() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder put(String key, String value, EntryMetadata entryMetadata) {
|
|
||||||
Objects.requireNonNull(key, "key");
|
|
||||||
Objects.requireNonNull(value, "value");
|
|
||||||
Objects.requireNonNull(entryMetadata, "entryMetadata");
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder remove(String key) {
|
|
||||||
Objects.requireNonNull(key, "key");
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage build() {
|
|
||||||
return EmptyBaggage.getInstance();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.baggage;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import javax.annotation.concurrent.Immutable;
|
|
||||||
|
|
||||||
/** An immutable implementation of the {@link Baggage} that does not contain any entries. */
|
|
||||||
@Immutable
|
|
||||||
public class EmptyBaggage implements Baggage {
|
|
||||||
/**
|
|
||||||
* Returns the single instance of the {@link EmptyBaggage} class.
|
|
||||||
*
|
|
||||||
* @return the single instance of the {@code EmptyBaggage} class.
|
|
||||||
*/
|
|
||||||
public static Baggage getInstance() {
|
|
||||||
return INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Baggage INSTANCE = new EmptyBaggage();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<Entry> getEntries() {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public String getEntryValue(String entryKey) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private EmptyBaggage() {}
|
|
||||||
}
|
|
||||||
|
|
@ -3,13 +3,8 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.opentelemetry.sdk.baggage;
|
package io.opentelemetry.baggage;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
|
||||||
import io.opentelemetry.baggage.Entry;
|
|
||||||
import io.opentelemetry.baggage.EntryMetadata;
|
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
@ -22,24 +17,29 @@ import javax.annotation.concurrent.Immutable;
|
||||||
@Immutable
|
@Immutable
|
||||||
// TODO: Migrate to AutoValue
|
// TODO: Migrate to AutoValue
|
||||||
// @AutoValue
|
// @AutoValue
|
||||||
class BaggageSdk implements Baggage {
|
class ImmutableBaggage implements Baggage {
|
||||||
|
static final Baggage EMPTY = new ImmutableBaggage.Builder().build();
|
||||||
|
|
||||||
// The types of the EntryKey and Entry must match for each entry.
|
// The types of the EntryKey and Entry must match for each entry.
|
||||||
private final Map<String, Entry> entries;
|
private final Map<String, Entry> entries;
|
||||||
@Nullable private final Baggage parent;
|
@Nullable private final Baggage parent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new {@link BaggageSdk} with the given entries.
|
* Creates a new {@link ImmutableBaggage} with the given entries.
|
||||||
*
|
*
|
||||||
* @param entries the initial entries for this {@code BaggageSdk}.
|
* @param entries the initial entries for this {@code BaggageSdk}.
|
||||||
* @param parent providing a default set of entries
|
* @param parent providing a default set of entries
|
||||||
*/
|
*/
|
||||||
private BaggageSdk(Map<String, ? extends Entry> entries, Baggage parent) {
|
private ImmutableBaggage(Map<String, ? extends Entry> entries, Baggage parent) {
|
||||||
this.entries =
|
this.entries =
|
||||||
Collections.unmodifiableMap(new HashMap<>(Objects.requireNonNull(entries, "entries")));
|
Collections.unmodifiableMap(new HashMap<>(Objects.requireNonNull(entries, "entries")));
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Baggage.Builder builder() {
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Entry> getEntries() {
|
public Collection<Entry> getEntries() {
|
||||||
Map<String, Entry> combined = new HashMap<>(entries);
|
Map<String, Entry> combined = new HashMap<>(entries);
|
||||||
|
|
@ -72,16 +72,16 @@ class BaggageSdk implements Baggage {
|
||||||
if (this == o) {
|
if (this == o) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (!(o instanceof BaggageSdk)) {
|
if (!(o instanceof ImmutableBaggage)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
BaggageSdk baggageSdk = (BaggageSdk) o;
|
ImmutableBaggage baggage = (ImmutableBaggage) o;
|
||||||
|
|
||||||
if (!entries.equals(baggageSdk.entries)) {
|
if (!entries.equals(baggage.entries)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return Objects.equals(parent, baggageSdk.parent);
|
return Objects.equals(parent, baggage.parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -91,6 +91,11 @@ class BaggageSdk implements Baggage {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ImmutableBaggage{" + "entries=" + entries + ", parent=" + parent + '}';
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Migrate to AutoValue.Builder
|
// TODO: Migrate to AutoValue.Builder
|
||||||
// @AutoValue.Builder
|
// @AutoValue.Builder
|
||||||
static class Builder implements Baggage.Builder {
|
static class Builder implements Baggage.Builder {
|
||||||
|
|
@ -128,6 +133,14 @@ class BaggageSdk implements Baggage {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Baggage.Builder put(String key, String value) {
|
||||||
|
entries.put(
|
||||||
|
Objects.requireNonNull(key, "key"),
|
||||||
|
Entry.create(key, Objects.requireNonNull(value, "value"), EntryMetadata.EMPTY));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Baggage.Builder remove(String key) {
|
public Baggage.Builder remove(String key) {
|
||||||
entries.remove(Objects.requireNonNull(key, "key"));
|
entries.remove(Objects.requireNonNull(key, "key"));
|
||||||
|
|
@ -138,11 +151,11 @@ class BaggageSdk implements Baggage {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaggageSdk build() {
|
public ImmutableBaggage build() {
|
||||||
if (parent == null && !noImplicitParent) {
|
if (parent == null && !noImplicitParent) {
|
||||||
parent = OpenTelemetry.getBaggageManager().getCurrentBaggage();
|
parent = BaggageUtils.getCurrentBaggage();
|
||||||
}
|
}
|
||||||
return new BaggageSdk(entries, parent);
|
return new ImmutableBaggage(entries, parent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,7 +11,6 @@ import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
import io.opentelemetry.baggage.BaggageManager;
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
import io.opentelemetry.baggage.BaggageUtils;
|
||||||
import io.opentelemetry.baggage.EmptyBaggage;
|
|
||||||
import io.opentelemetry.baggage.Entry;
|
import io.opentelemetry.baggage.Entry;
|
||||||
import io.opentelemetry.baggage.EntryMetadata;
|
import io.opentelemetry.baggage.EntryMetadata;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
|
@ -26,15 +25,7 @@ public class W3CBaggagePropagator implements TextMapPropagator {
|
||||||
|
|
||||||
private static final String FIELD = "baggage";
|
private static final String FIELD = "baggage";
|
||||||
private static final List<String> FIELDS = singletonList(FIELD);
|
private static final List<String> FIELDS = singletonList(FIELD);
|
||||||
private static final W3CBaggagePropagator INSTANCE =
|
private static final W3CBaggagePropagator INSTANCE = new W3CBaggagePropagator();
|
||||||
new W3CBaggagePropagator(OpenTelemetry.getBaggageManager());
|
|
||||||
|
|
||||||
private final BaggageManager baggageManager;
|
|
||||||
|
|
||||||
// visible for testing
|
|
||||||
W3CBaggagePropagator(BaggageManager baggageManager) {
|
|
||||||
this.baggageManager = baggageManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton instance of the W3C Baggage Propagator. Uses the {@link BaggageManager} from the
|
* Singleton instance of the W3C Baggage Propagator. Uses the {@link BaggageManager} from the
|
||||||
|
|
@ -77,14 +68,14 @@ public class W3CBaggagePropagator implements TextMapPropagator {
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
if (baggageHeader.isEmpty()) {
|
if (baggageHeader.isEmpty()) {
|
||||||
return BaggageUtils.withBaggage(EmptyBaggage.getInstance(), context);
|
return BaggageUtils.withBaggage(Baggage.empty(), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
Baggage.Builder baggageBuilder = baggageManager.baggageBuilder();
|
Baggage.Builder baggageBuilder = Baggage.builder();
|
||||||
try {
|
try {
|
||||||
extractEntries(baggageHeader, baggageBuilder);
|
extractEntries(baggageHeader, baggageBuilder);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return BaggageUtils.withBaggage(EmptyBaggage.getInstance(), context);
|
return BaggageUtils.withBaggage(Baggage.empty(), context);
|
||||||
}
|
}
|
||||||
return BaggageUtils.withBaggage(baggageBuilder.build(), context);
|
return BaggageUtils.withBaggage(baggageBuilder.build(), context);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.baggage.DefaultBaggageManager;
|
|
||||||
import io.opentelemetry.baggage.spi.BaggageManagerFactory;
|
|
||||||
import io.opentelemetry.context.Scope;
|
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
import io.opentelemetry.context.propagation.DefaultContextPropagators;
|
||||||
import io.opentelemetry.metrics.BatchRecorder;
|
import io.opentelemetry.metrics.BatchRecorder;
|
||||||
|
|
@ -60,7 +55,6 @@ class OpenTelemetryTest {
|
||||||
OpenTelemetry.reset();
|
OpenTelemetry.reset();
|
||||||
System.clearProperty(TracerProviderFactory.class.getName());
|
System.clearProperty(TracerProviderFactory.class.getName());
|
||||||
System.clearProperty(MeterProviderFactory.class.getName());
|
System.clearProperty(MeterProviderFactory.class.getName());
|
||||||
System.clearProperty(BaggageManagerFactory.class.getName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -69,8 +63,6 @@ class OpenTelemetryTest {
|
||||||
assertThat(OpenTelemetry.getTracerProvider()).isSameAs(OpenTelemetry.getTracerProvider());
|
assertThat(OpenTelemetry.getTracerProvider()).isSameAs(OpenTelemetry.getTracerProvider());
|
||||||
assertThat(OpenTelemetry.getMeterProvider()).isInstanceOf(DefaultMeterProvider.class);
|
assertThat(OpenTelemetry.getMeterProvider()).isInstanceOf(DefaultMeterProvider.class);
|
||||||
assertThat(OpenTelemetry.getMeterProvider()).isSameAs(OpenTelemetry.getMeterProvider());
|
assertThat(OpenTelemetry.getMeterProvider()).isSameAs(OpenTelemetry.getMeterProvider());
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isInstanceOf(DefaultBaggageManager.class);
|
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isSameAs(OpenTelemetry.getBaggageManager());
|
|
||||||
assertThat(OpenTelemetry.getPropagators()).isInstanceOf(DefaultContextPropagators.class);
|
assertThat(OpenTelemetry.getPropagators()).isInstanceOf(DefaultContextPropagators.class);
|
||||||
assertThat(OpenTelemetry.getPropagators()).isSameAs(OpenTelemetry.getPropagators());
|
assertThat(OpenTelemetry.getPropagators()).isSameAs(OpenTelemetry.getPropagators());
|
||||||
}
|
}
|
||||||
|
|
@ -155,41 +147,6 @@ class OpenTelemetryTest {
|
||||||
assertThrows(IllegalStateException.class, () -> OpenTelemetry.getMeterProvider());
|
assertThrows(IllegalStateException.class, () -> OpenTelemetry.getMeterProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
void testBaggageManagerLoadArbitrary() throws IOException {
|
|
||||||
File serviceFile =
|
|
||||||
createService(
|
|
||||||
BaggageManagerFactory.class, FirstBaggageManager.class, SecondBaggageManager.class);
|
|
||||||
try {
|
|
||||||
assertTrue(
|
|
||||||
(OpenTelemetry.getBaggageManager() instanceof FirstBaggageManager)
|
|
||||||
|| (OpenTelemetry.getBaggageManager() instanceof SecondBaggageManager));
|
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isEqualTo(OpenTelemetry.getBaggageManager());
|
|
||||||
} finally {
|
|
||||||
serviceFile.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testBaggageManagerSystemProperty() throws IOException {
|
|
||||||
File serviceFile =
|
|
||||||
createService(
|
|
||||||
BaggageManagerFactory.class, FirstBaggageManager.class, SecondBaggageManager.class);
|
|
||||||
System.setProperty(BaggageManagerFactory.class.getName(), SecondBaggageManager.class.getName());
|
|
||||||
try {
|
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isInstanceOf(SecondBaggageManager.class);
|
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isEqualTo(OpenTelemetry.getBaggageManager());
|
|
||||||
} finally {
|
|
||||||
serviceFile.delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testBaggageManagerNotFound() {
|
|
||||||
System.setProperty(BaggageManagerFactory.class.getName(), "io.does.not.exists");
|
|
||||||
assertThrows(IllegalStateException.class, () -> OpenTelemetry.getBaggageManager());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPropagatorsSet() {
|
void testPropagatorsSet() {
|
||||||
ContextPropagators propagators = DefaultContextPropagators.builder().build();
|
ContextPropagators propagators = DefaultContextPropagators.builder().build();
|
||||||
|
|
@ -218,6 +175,7 @@ class OpenTelemetryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SecondTracerProviderFactory extends FirstTracerProviderFactory {
|
public static class SecondTracerProviderFactory extends FirstTracerProviderFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tracer get(String instrumentationName) {
|
public Tracer get(String instrumentationName) {
|
||||||
return new SecondTracerProviderFactory();
|
return new SecondTracerProviderFactory();
|
||||||
|
|
@ -236,6 +194,7 @@ class OpenTelemetryTest {
|
||||||
|
|
||||||
public static class FirstTracerProviderFactory
|
public static class FirstTracerProviderFactory
|
||||||
implements Tracer, TracerProvider, TracerProviderFactory {
|
implements Tracer, TracerProvider, TracerProviderFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Tracer get(String instrumentationName) {
|
public Tracer get(String instrumentationName) {
|
||||||
return new FirstTracerProviderFactory();
|
return new FirstTracerProviderFactory();
|
||||||
|
|
@ -259,6 +218,7 @@ class OpenTelemetryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SecondMeterProviderFactory extends FirstMeterProviderFactory {
|
public static class SecondMeterProviderFactory extends FirstMeterProviderFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Meter get(String instrumentationName) {
|
public Meter get(String instrumentationName) {
|
||||||
return new SecondMeterProviderFactory();
|
return new SecondMeterProviderFactory();
|
||||||
|
|
@ -277,6 +237,7 @@ class OpenTelemetryTest {
|
||||||
|
|
||||||
public static class FirstMeterProviderFactory
|
public static class FirstMeterProviderFactory
|
||||||
implements Meter, MeterProviderFactory, MeterProvider {
|
implements Meter, MeterProviderFactory, MeterProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MeterProvider create() {
|
public MeterProvider create() {
|
||||||
return new FirstMeterProviderFactory();
|
return new FirstMeterProviderFactory();
|
||||||
|
|
@ -370,36 +331,4 @@ class OpenTelemetryTest {
|
||||||
return get(instrumentationName);
|
return get(instrumentationName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SecondBaggageManager extends FirstBaggageManager {
|
|
||||||
@Override
|
|
||||||
public BaggageManager create() {
|
|
||||||
return new SecondBaggageManager();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class FirstBaggageManager implements BaggageManager, BaggageManagerFactory {
|
|
||||||
@Override
|
|
||||||
public BaggageManager create() {
|
|
||||||
return new FirstBaggageManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public Baggage getCurrentBaggage() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder baggageBuilder() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public Scope withBaggage(Baggage baggage) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,12 +16,12 @@ class BaggageUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testGetCurrentBaggage_Default() {
|
void testGetCurrentBaggage_Default() {
|
||||||
Baggage baggage = BaggageUtils.getCurrentBaggage();
|
Baggage baggage = BaggageUtils.getCurrentBaggage();
|
||||||
assertThat(baggage).isSameAs(EmptyBaggage.getInstance());
|
assertThat(baggage).isSameAs(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCurrentBaggage_SetCorrContext() {
|
void testGetCurrentBaggage_SetCorrContext() {
|
||||||
Baggage baggage = DefaultBaggageManager.getInstance().baggageBuilder().build();
|
Baggage baggage = Baggage.empty();
|
||||||
try (Scope ignored = BaggageUtils.withBaggage(baggage, Context.current()).makeCurrent()) {
|
try (Scope ignored = BaggageUtils.withBaggage(baggage, Context.current()).makeCurrent()) {
|
||||||
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(baggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(baggage);
|
||||||
}
|
}
|
||||||
|
|
@ -30,12 +30,12 @@ class BaggageUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
void testGetBaggage_DefaultContext() {
|
void testGetBaggage_DefaultContext() {
|
||||||
Baggage baggage = BaggageUtils.getBaggage(Context.current());
|
Baggage baggage = BaggageUtils.getBaggage(Context.current());
|
||||||
assertThat(baggage).isSameAs(EmptyBaggage.getInstance());
|
assertThat(baggage).isSameAs(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetBaggage_ExplicitContext() {
|
void testGetBaggage_ExplicitContext() {
|
||||||
Baggage baggage = DefaultBaggageManager.getInstance().baggageBuilder().build();
|
Baggage baggage = Baggage.empty();
|
||||||
Context context = BaggageUtils.withBaggage(baggage, Context.current());
|
Context context = BaggageUtils.withBaggage(baggage, Context.current());
|
||||||
assertThat(BaggageUtils.getBaggage(context)).isSameAs(baggage);
|
assertThat(BaggageUtils.getBaggage(context)).isSameAs(baggage);
|
||||||
}
|
}
|
||||||
|
|
@ -48,7 +48,7 @@ class BaggageUtilsTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetBaggageWithoutDefault_ExplicitContext() {
|
void testGetBaggageWithoutDefault_ExplicitContext() {
|
||||||
Baggage baggage = DefaultBaggageManager.getInstance().baggageBuilder().build();
|
Baggage baggage = Baggage.empty();
|
||||||
Context context = BaggageUtils.withBaggage(baggage, Context.current());
|
Context context = BaggageUtils.withBaggage(baggage, Context.current());
|
||||||
assertThat(BaggageUtils.getBaggage(context)).isSameAs(baggage);
|
assertThat(BaggageUtils.getBaggage(context)).isSameAs(baggage);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.baggage;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
||||||
|
|
||||||
import io.opentelemetry.context.Context;
|
|
||||||
import io.opentelemetry.context.Scope;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
class DefaultBaggageManagerTest {
|
|
||||||
private static final BaggageManager DEFAULT_BAGGAGE_MANAGER = DefaultBaggageManager.getInstance();
|
|
||||||
private static final String KEY = "key";
|
|
||||||
private static final String VALUE = "value";
|
|
||||||
private static final EntryMetadata SAMPLE_METADATA = EntryMetadata.create("sample");
|
|
||||||
|
|
||||||
private static final Baggage DIST_CONTEXT =
|
|
||||||
new Baggage() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<Entry> getEntries() {
|
|
||||||
return Collections.singletonList(Entry.create(KEY, VALUE, SAMPLE_METADATA));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getEntryValue(String entryKey) {
|
|
||||||
return VALUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void builderMethod() {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.baggageBuilder().build().getEntries()).isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void getCurrentContext_DefaultContext() {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void getCurrentContext_ContextSetToNull() {
|
|
||||||
try (Scope ignored = BaggageUtils.withBaggage(null, Context.current()).makeCurrent()) {
|
|
||||||
Baggage baggage = DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage();
|
|
||||||
assertThat(baggage).isNotNull();
|
|
||||||
assertThat(baggage.getEntries()).isEmpty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void withContext() {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
try (Scope wtm = DEFAULT_BAGGAGE_MANAGER.withBaggage(DIST_CONTEXT)) {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(DIST_CONTEXT);
|
|
||||||
}
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void withContext_nullContext() {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
try (Scope wtm = DEFAULT_BAGGAGE_MANAGER.withBaggage(null)) {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
}
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void withContextUsingWrap() {
|
|
||||||
Runnable runnable;
|
|
||||||
try (Scope wtm = DEFAULT_BAGGAGE_MANAGER.withBaggage(DIST_CONTEXT)) {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(DIST_CONTEXT);
|
|
||||||
runnable =
|
|
||||||
Context.current()
|
|
||||||
.wrap(
|
|
||||||
() -> {
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(DIST_CONTEXT);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
assertThat(DEFAULT_BAGGAGE_MANAGER.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
|
||||||
// When we run the runnable we will have the Baggage in the current Context.
|
|
||||||
runnable.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_SetParent_DisallowsNullContext() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
assertThrows(NullPointerException.class, () -> noopBuilder.setParent((Context) null));
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_SetParent_fromContext() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
noopBuilder.setParent(Context.current()); // No error.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_Put_DisallowsNullKey() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
assertThrows(NullPointerException.class, () -> noopBuilder.put(null, VALUE, SAMPLE_METADATA));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_Put_DisallowsNullValue() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
assertThrows(NullPointerException.class, () -> noopBuilder.put(KEY, null, SAMPLE_METADATA));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_Put_DisallowsNullEntryMetadata() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
assertThrows(NullPointerException.class, () -> noopBuilder.put(KEY, VALUE, null));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void noopContextBuilder_Remove_DisallowsNullKey() {
|
|
||||||
Baggage.Builder noopBuilder = DEFAULT_BAGGAGE_MANAGER.baggageBuilder();
|
|
||||||
assertThrows(NullPointerException.class, () -> noopBuilder.remove(null));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -5,34 +5,20 @@
|
||||||
|
|
||||||
package io.opentelemetry.baggage.propagation;
|
package io.opentelemetry.baggage.propagation;
|
||||||
|
|
||||||
import static java.util.Collections.emptyMap;
|
|
||||||
import static java.util.Collections.singletonMap;
|
import static java.util.Collections.singletonMap;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
import io.opentelemetry.baggage.BaggageUtils;
|
||||||
import io.opentelemetry.baggage.EmptyBaggage;
|
|
||||||
import io.opentelemetry.baggage.Entry;
|
|
||||||
import io.opentelemetry.baggage.EntryMetadata;
|
import io.opentelemetry.baggage.EntryMetadata;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
|
||||||
class W3CBaggagePropagatorTest {
|
class W3CBaggagePropagatorTest {
|
||||||
|
|
||||||
@Mock private BaggageManager baggageManager;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void fields() {
|
void fields() {
|
||||||
assertThat(W3CBaggagePropagator.getInstance().fields()).containsExactly("baggage");
|
assertThat(W3CBaggagePropagator.getInstance().fields()).containsExactly("baggage");
|
||||||
|
|
@ -40,7 +26,7 @@ class W3CBaggagePropagatorTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_noBaggageHeader() {
|
void extract_noBaggageHeader() {
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(Context.root(), ImmutableMap.<String, String>of(), Map::get);
|
propagator.extract(Context.root(), ImmutableMap.<String, String>of(), Map::get);
|
||||||
|
|
@ -50,33 +36,29 @@ class W3CBaggagePropagatorTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_emptyBaggageHeader() {
|
void extract_emptyBaggageHeader() {
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(Context.root(), ImmutableMap.of("baggage", ""), ImmutableMap::get);
|
propagator.extract(Context.root(), ImmutableMap.of("baggage", ""), ImmutableMap::get);
|
||||||
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_singleEntry() {
|
void extract_singleEntry() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
Context.root(), ImmutableMap.of("baggage", "key=value"), ImmutableMap::get);
|
Context.root(), ImmutableMap.of("baggage", "key=value"), ImmutableMap::get);
|
||||||
|
|
||||||
Baggage expectedBaggage = new TestBaggage(ImmutableMap.of("key", Entry.create("key", "value")));
|
Baggage expectedBaggage = Baggage.builder().put("key", "value").build();
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_multiEntry() {
|
void extract_multiEntry() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
|
|
@ -84,33 +66,25 @@ class W3CBaggagePropagatorTest {
|
||||||
ImmutableMap.of("baggage", "key1=value1,key2=value2"),
|
ImmutableMap.of("baggage", "key1=value1,key2=value2"),
|
||||||
ImmutableMap::get);
|
ImmutableMap::get);
|
||||||
|
|
||||||
Baggage expectedBaggage =
|
Baggage expectedBaggage = Baggage.builder().put("key1", "value1").put("key2", "value2").build();
|
||||||
new TestBaggage(
|
|
||||||
ImmutableMap.of(
|
|
||||||
"key1", Entry.create("key1", "value1"), "key2", Entry.create("key2", "value2")));
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_duplicateKeys() {
|
void extract_duplicateKeys() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
Context.root(), ImmutableMap.of("baggage", "key=value1,key=value2"), ImmutableMap::get);
|
Context.root(), ImmutableMap.of("baggage", "key=value1,key=value2"), ImmutableMap::get);
|
||||||
|
|
||||||
Baggage expectedBaggage =
|
Baggage expectedBaggage = Baggage.builder().put("key", "value2").build();
|
||||||
new TestBaggage(ImmutableMap.of("key", Entry.create("key", "value2")));
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_withMetadata() {
|
void extract_withMetadata() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
|
|
@ -119,19 +93,15 @@ class W3CBaggagePropagatorTest {
|
||||||
ImmutableMap::get);
|
ImmutableMap::get);
|
||||||
|
|
||||||
Baggage expectedBaggage =
|
Baggage expectedBaggage =
|
||||||
new TestBaggage(
|
Baggage.builder()
|
||||||
ImmutableMap.of(
|
.put("key", "value", EntryMetadata.create("metadata-key=value;othermetadata"))
|
||||||
"key",
|
.build();
|
||||||
Entry.create(
|
|
||||||
"key", "value", EntryMetadata.create("metadata-key=value;othermetadata"))));
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void extract_fullComplexities() {
|
void extract_fullComplexities() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
|
|
@ -143,15 +113,11 @@ class W3CBaggagePropagatorTest {
|
||||||
ImmutableMap::get);
|
ImmutableMap::get);
|
||||||
|
|
||||||
Baggage expectedBaggage =
|
Baggage expectedBaggage =
|
||||||
new TestBaggage(
|
Baggage.builder()
|
||||||
ImmutableMap.of(
|
.put("key1", "value1", EntryMetadata.create("metadata-key = value; othermetadata"))
|
||||||
"key1",
|
.put("key2", "value2", EntryMetadata.EMPTY)
|
||||||
Entry.create(
|
.put("key3", "value3")
|
||||||
"key1", "value1", EntryMetadata.create("metadata-key = value; othermetadata")),
|
.build();
|
||||||
"key2",
|
|
||||||
Entry.create("key2", "value2", EntryMetadata.EMPTY),
|
|
||||||
"key3",
|
|
||||||
Entry.create("key3", "value3")));
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(expectedBaggage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,9 +127,7 @@ class W3CBaggagePropagatorTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void extract_invalidHeader() {
|
void extract_invalidHeader() {
|
||||||
when(baggageManager.baggageBuilder()).thenReturn(new TestBaggageBuilder());
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
|
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
|
|
||||||
Context result =
|
Context result =
|
||||||
propagator.extract(
|
propagator.extract(
|
||||||
|
|
@ -174,12 +138,12 @@ class W3CBaggagePropagatorTest {
|
||||||
+ "value; othermetadata, key2 =value2 , key3 =\tvalue3 ; "),
|
+ "value; othermetadata, key2 =value2 , key3 =\tvalue3 ; "),
|
||||||
ImmutableMap::get);
|
ImmutableMap::get);
|
||||||
|
|
||||||
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getBaggage(result)).isEqualTo(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void inject_noBaggage() {
|
void inject_noBaggage() {
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
Map<String, String> carrier = new HashMap<>();
|
Map<String, String> carrier = new HashMap<>();
|
||||||
propagator.inject(Context.root(), carrier, Map::put);
|
propagator.inject(Context.root(), carrier, Map::put);
|
||||||
assertThat(carrier).isEmpty();
|
assertThat(carrier).isEmpty();
|
||||||
|
|
@ -187,8 +151,8 @@ class W3CBaggagePropagatorTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void inject_emptyBaggage() {
|
void inject_emptyBaggage() {
|
||||||
Baggage baggage = new TestBaggage(emptyMap());
|
Baggage baggage = Baggage.empty();
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
Map<String, String> carrier = new HashMap<>();
|
Map<String, String> carrier = new HashMap<>();
|
||||||
propagator.inject(BaggageUtils.withBaggage(baggage, Context.root()), carrier, Map::put);
|
propagator.inject(BaggageUtils.withBaggage(baggage, Context.root()), carrier, Map::put);
|
||||||
assertThat(carrier).isEmpty();
|
assertThat(carrier).isEmpty();
|
||||||
|
|
@ -196,13 +160,12 @@ class W3CBaggagePropagatorTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void inject() {
|
void inject() {
|
||||||
LinkedHashMap<String, Entry> data = new LinkedHashMap<>();
|
Baggage baggage =
|
||||||
data.put("nometa", Entry.create("nometa", "nometa-value"));
|
Baggage.builder()
|
||||||
data.put(
|
.put("nometa", "nometa-value")
|
||||||
"meta",
|
.put("meta", "meta-value", EntryMetadata.create("somemetadata; someother=foo"))
|
||||||
Entry.create("meta", "meta-value", EntryMetadata.create("somemetadata; someother=foo")));
|
.build();
|
||||||
Baggage baggage = new TestBaggage(data);
|
W3CBaggagePropagator propagator = new W3CBaggagePropagator();
|
||||||
W3CBaggagePropagator propagator = new W3CBaggagePropagator(baggageManager);
|
|
||||||
Map<String, String> carrier = new HashMap<>();
|
Map<String, String> carrier = new HashMap<>();
|
||||||
propagator.inject(BaggageUtils.withBaggage(baggage, Context.root()), carrier, Map::put);
|
propagator.inject(BaggageUtils.withBaggage(baggage, Context.root()), carrier, Map::put);
|
||||||
assertThat(carrier)
|
assertThat(carrier)
|
||||||
|
|
@ -210,80 +173,4 @@ class W3CBaggagePropagatorTest {
|
||||||
singletonMap(
|
singletonMap(
|
||||||
"baggage", "nometa=nometa-value,meta=meta-value;somemetadata; someother=foo"));
|
"baggage", "nometa=nometa-value,meta=meta-value;somemetadata; someother=foo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class TestBaggageBuilder implements Baggage.Builder {
|
|
||||||
|
|
||||||
private final Map<String, Entry> values = new HashMap<>();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder setParent(Context context) {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder setNoParent() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder put(String key, String value, EntryMetadata entryMetadata) {
|
|
||||||
values.put(key, Entry.create(key, value, entryMetadata));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder remove(String key) {
|
|
||||||
values.remove(key);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage build() {
|
|
||||||
return new TestBaggage(values);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TestBaggage implements Baggage {
|
|
||||||
|
|
||||||
private final Map<String, Entry> values;
|
|
||||||
|
|
||||||
public TestBaggage(Map<String, Entry> values) {
|
|
||||||
this.values = values;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<Entry> getEntries() {
|
|
||||||
return values.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getEntryValue(String entryKey) {
|
|
||||||
Entry entry = values.get(entryKey);
|
|
||||||
return entry == null ? null : entry.getValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (!(o instanceof TestBaggage)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
TestBaggage that = (TestBaggage) o;
|
|
||||||
|
|
||||||
return Objects.equals(values, that.values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return values != null ? values.hashCode() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "TestBaggage{" + "values=" + values + '}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
|
|
||||||
package io.opentelemetry.opentracingshim;
|
package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.trace.Tracer;
|
||||||
|
|
||||||
abstract class BaseShimObject {
|
abstract class BaseShimObject {
|
||||||
|
|
||||||
final TelemetryInfo telemetryInfo;
|
final TelemetryInfo telemetryInfo;
|
||||||
|
|
||||||
BaseShimObject(TelemetryInfo telemetryInfo) {
|
BaseShimObject(TelemetryInfo telemetryInfo) {
|
||||||
|
|
@ -24,10 +24,6 @@ abstract class BaseShimObject {
|
||||||
return telemetryInfo.tracer();
|
return telemetryInfo.tracer();
|
||||||
}
|
}
|
||||||
|
|
||||||
BaggageManager contextManager() {
|
|
||||||
return telemetryInfo.contextManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
SpanContextShimTable spanContextTable() {
|
SpanContextShimTable spanContextTable() {
|
||||||
return telemetryInfo.spanContextTable();
|
return telemetryInfo.spanContextTable();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ final class SpanContextShim extends BaseShimObject implements SpanContext {
|
||||||
SpanContextShim newWithKeyValue(String key, String value) {
|
SpanContextShim newWithKeyValue(String key, String value) {
|
||||||
Context parentContext = BaggageUtils.withBaggage(baggage, Context.current());
|
Context parentContext = BaggageUtils.withBaggage(baggage, Context.current());
|
||||||
|
|
||||||
Baggage.Builder builder = contextManager().baggageBuilder().setParent(parentContext);
|
Baggage.Builder builder = Baggage.builder().setParent(parentContext);
|
||||||
builder.put(key, value, EntryMetadata.EMPTY);
|
builder.put(key, value, EntryMetadata.EMPTY);
|
||||||
|
|
||||||
return new SpanContextShim(telemetryInfo(), context, builder.build());
|
return new SpanContextShim(telemetryInfo(), context, builder.build());
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.opentracingshim;
|
package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.trace.Tracer;
|
||||||
|
|
||||||
|
|
@ -15,17 +14,16 @@ import io.opentelemetry.trace.Tracer;
|
||||||
* the OT Shim layer.
|
* the OT Shim layer.
|
||||||
*/
|
*/
|
||||||
final class TelemetryInfo {
|
final class TelemetryInfo {
|
||||||
|
|
||||||
private final Tracer tracer;
|
private final Tracer tracer;
|
||||||
private final BaggageManager contextManager;
|
|
||||||
private final Baggage emptyBaggage;
|
private final Baggage emptyBaggage;
|
||||||
private final ContextPropagators propagators;
|
private final ContextPropagators propagators;
|
||||||
private final SpanContextShimTable spanContextTable;
|
private final SpanContextShimTable spanContextTable;
|
||||||
|
|
||||||
TelemetryInfo(Tracer tracer, BaggageManager contextManager, ContextPropagators propagators) {
|
TelemetryInfo(Tracer tracer, ContextPropagators propagators) {
|
||||||
this.tracer = tracer;
|
this.tracer = tracer;
|
||||||
this.contextManager = contextManager;
|
|
||||||
this.propagators = propagators;
|
this.propagators = propagators;
|
||||||
this.emptyBaggage = contextManager.baggageBuilder().build();
|
this.emptyBaggage = Baggage.empty();
|
||||||
this.spanContextTable = new SpanContextShimTable();
|
this.spanContextTable = new SpanContextShimTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -33,10 +31,6 @@ final class TelemetryInfo {
|
||||||
return tracer;
|
return tracer;
|
||||||
}
|
}
|
||||||
|
|
||||||
BaggageManager contextManager() {
|
|
||||||
return contextManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
SpanContextShimTable spanContextTable() {
|
SpanContextShimTable spanContextTable() {
|
||||||
return spanContextTable;
|
return spanContextTable;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
package io.opentelemetry.opentracingshim;
|
package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.trace.Tracer;
|
||||||
import io.opentelemetry.trace.TracerProvider;
|
import io.opentelemetry.trace.TracerProvider;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -23,9 +22,7 @@ public final class TraceShim {
|
||||||
public static io.opentracing.Tracer createTracerShim() {
|
public static io.opentracing.Tracer createTracerShim() {
|
||||||
return new TracerShim(
|
return new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
getTracer(OpenTelemetry.getTracerProvider()),
|
getTracer(OpenTelemetry.getTracerProvider()), OpenTelemetry.getPropagators()));
|
||||||
OpenTelemetry.getBaggageManager(),
|
|
||||||
OpenTelemetry.getPropagators()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -33,15 +30,12 @@ public final class TraceShim {
|
||||||
* BaggageManager}.
|
* BaggageManager}.
|
||||||
*
|
*
|
||||||
* @param tracerProvider the {@code TracerProvider} used by this shim.
|
* @param tracerProvider the {@code TracerProvider} used by this shim.
|
||||||
* @param contextManager the {@code BaggageManager} used by this shim.
|
|
||||||
* @return a {@code io.opentracing.Tracer}.
|
* @return a {@code io.opentracing.Tracer}.
|
||||||
*/
|
*/
|
||||||
public static io.opentracing.Tracer createTracerShim(
|
public static io.opentracing.Tracer createTracerShim(TracerProvider tracerProvider) {
|
||||||
TracerProvider tracerProvider, BaggageManager contextManager) {
|
|
||||||
return new TracerShim(
|
return new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
getTracer(Objects.requireNonNull(tracerProvider, "tracerProvider")),
|
getTracer(Objects.requireNonNull(tracerProvider, "tracerProvider")),
|
||||||
Objects.requireNonNull(contextManager, "contextManager"),
|
|
||||||
OpenTelemetry.getPropagators()));
|
OpenTelemetry.getPropagators()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,16 +10,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.trace.Tracer;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
class SpanBuilderShimTest {
|
class SpanBuilderShimTest {
|
||||||
|
|
||||||
private final TracerSdkProvider tracerSdkFactory = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider tracerSdkFactory = TracerSdkProvider.builder().build();
|
||||||
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
||||||
private final TelemetryInfo telemetryInfo =
|
private final TelemetryInfo telemetryInfo =
|
||||||
new TelemetryInfo(tracer, new BaggageManagerSdk(), OpenTelemetry.getPropagators());
|
new TelemetryInfo(tracer, OpenTelemetry.getPropagators());
|
||||||
|
|
||||||
private static final String SPAN_NAME = "Span";
|
private static final String SPAN_NAME = "Span";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.trace.Span;
|
import io.opentelemetry.trace.Span;
|
||||||
import io.opentelemetry.trace.Tracer;
|
import io.opentelemetry.trace.Tracer;
|
||||||
|
|
@ -23,10 +22,11 @@ import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
class SpanShimTest {
|
class SpanShimTest {
|
||||||
|
|
||||||
private final TracerSdkProvider tracerSdkFactory = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider tracerSdkFactory = TracerSdkProvider.builder().build();
|
||||||
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
||||||
private final TelemetryInfo telemetryInfo =
|
private final TelemetryInfo telemetryInfo =
|
||||||
new TelemetryInfo(tracer, new BaggageManagerSdk(), OpenTelemetry.getPropagators());
|
new TelemetryInfo(tracer, OpenTelemetry.getPropagators());
|
||||||
private Span span;
|
private Span span;
|
||||||
|
|
||||||
private static final String SPAN_NAME = "Span";
|
private static final String SPAN_NAME = "Span";
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,10 @@
|
||||||
|
|
||||||
package io.opentelemetry.opentracingshim;
|
package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
import static io.opentelemetry.OpenTelemetry.getBaggageManager;
|
|
||||||
import static io.opentelemetry.OpenTelemetry.getTracerProvider;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
@ -21,31 +18,18 @@ class TraceShimTest {
|
||||||
void createTracerShim_default() {
|
void createTracerShim_default() {
|
||||||
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim();
|
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim();
|
||||||
assertEquals(OpenTelemetry.getTracer("opentracingshim"), tracerShim.tracer());
|
assertEquals(OpenTelemetry.getTracer("opentracingshim"), tracerShim.tracer());
|
||||||
assertEquals(OpenTelemetry.getBaggageManager(), tracerShim.contextManager());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createTracerShim_nullTracer() {
|
void createTracerShim_nullTracer() {
|
||||||
assertThrows(
|
assertThrows(
|
||||||
NullPointerException.class,
|
NullPointerException.class, () -> TraceShim.createTracerShim(null), "tracerProvider");
|
||||||
() -> TraceShim.createTracerShim(null, getBaggageManager()),
|
|
||||||
"tracerProvider");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void createTracerShim_nullContextManager() {
|
|
||||||
assertThrows(
|
|
||||||
NullPointerException.class,
|
|
||||||
() -> TraceShim.createTracerShim(getTracerProvider(), null),
|
|
||||||
"contextManager");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createTracerShim() {
|
void createTracerShim() {
|
||||||
TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
BaggageManagerSdk contextManager = new BaggageManagerSdk();
|
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim(sdk);
|
||||||
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim(sdk, contextManager);
|
|
||||||
assertEquals(sdk.get("opentracingshim"), tracerShim.tracer());
|
assertEquals(sdk.get("opentracingshim"), tracerShim.tracer());
|
||||||
assertEquals(contextManager, tracerShim.contextManager());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
class TracerShimTest {
|
class TracerShimTest {
|
||||||
|
|
||||||
TracerShim tracerShim;
|
TracerShim tracerShim;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
@ -30,9 +31,7 @@ class TracerShimTest {
|
||||||
tracerShim =
|
tracerShim =
|
||||||
new TracerShim(
|
new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
OpenTelemetry.getTracer("opentracingshim"),
|
OpenTelemetry.getTracer("opentracingshim"), OpenTelemetry.getPropagators()));
|
||||||
OpenTelemetry.getBaggageManager(),
|
|
||||||
OpenTelemetry.getPropagators()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.baggage.DefaultBaggageManager;
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
|
|
@ -29,9 +28,7 @@ class OpenTelemetryInteroperabilityTest {
|
||||||
InMemoryTracing.builder()
|
InMemoryTracing.builder()
|
||||||
.setTracerSdkManagement(OpenTelemetrySdk.getTracerManagement())
|
.setTracerSdkManagement(OpenTelemetrySdk.getTracerManagement())
|
||||||
.build();
|
.build();
|
||||||
private final Tracer otTracer =
|
private final Tracer otTracer = TraceShim.createTracerShim(OpenTelemetry.getTracerProvider());
|
||||||
TraceShim.createTracerShim(
|
|
||||||
OpenTelemetry.getTracerProvider(), DefaultBaggageManager.getInstance());
|
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void before() {
|
void before() {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.SpanId;
|
import io.opentelemetry.trace.SpanId;
|
||||||
|
|
@ -35,7 +34,7 @@ class ActiveSpanReplacementTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.Span.Kind;
|
import io.opentelemetry.trace.Span.Kind;
|
||||||
|
|
@ -40,7 +39,7 @@ class ActorPropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private Phaser phaser;
|
private Phaser phaser;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentracing.Span;
|
import io.opentracing.Span;
|
||||||
import io.opentracing.Tracer;
|
import io.opentracing.Tracer;
|
||||||
|
|
@ -23,7 +22,7 @@ public final class BaggageHandlingTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.Span.Kind;
|
import io.opentelemetry.trace.Span.Kind;
|
||||||
|
|
@ -31,7 +30,7 @@ class TestClientServerTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
|
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
|
||||||
private Server server;
|
private Server server;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.Span.Kind;
|
import io.opentelemetry.trace.Span.Kind;
|
||||||
|
|
@ -39,7 +38,7 @@ class HandlerTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final Client client = new Client(new RequestHandler(tracer));
|
private final Client client = new Client(new RequestHandler(tracer));
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData.Event;
|
import io.opentelemetry.sdk.trace.data.SpanData.Event;
|
||||||
|
|
@ -37,7 +36,7 @@ public final class ErrorReportingTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
/* Very simple error handling **/
|
/* Very simple error handling **/
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentracing.Scope;
|
import io.opentracing.Scope;
|
||||||
|
|
@ -30,7 +29,7 @@ public final class LateSpanFinishTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.Span;
|
import io.opentelemetry.trace.Span;
|
||||||
|
|
@ -23,7 +22,7 @@ class ListenerTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() throws Exception {
|
void test() throws Exception {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentracing.Scope;
|
import io.opentracing.Scope;
|
||||||
|
|
@ -35,7 +34,7 @@ class MultipleCallbacksTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() {
|
void test() {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
import io.opentelemetry.common.ReadableAttributes;
|
import io.opentelemetry.common.ReadableAttributes;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentracing.Scope;
|
import io.opentracing.Scope;
|
||||||
|
|
@ -33,7 +32,7 @@ public final class NestedCallbacksTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import io.opentelemetry.common.AttributeKey;
|
import io.opentelemetry.common.AttributeKey;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.SpanId;
|
import io.opentelemetry.trace.SpanId;
|
||||||
|
|
@ -39,7 +38,7 @@ class PromisePropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private Phaser phaser;
|
private Phaser phaser;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentracing.Tracer;
|
import io.opentracing.Tracer;
|
||||||
|
|
@ -28,7 +27,7 @@ public final class HandlerTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
private final Client client = new Client(new RequestHandler(tracer));
|
private final Client client = new Client(new RequestHandler(tracer));
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
||||||
import io.opentelemetry.opentracingshim.TraceShim;
|
import io.opentelemetry.opentracingshim.TraceShim;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.trace.SpanId;
|
import io.opentelemetry.trace.SpanId;
|
||||||
|
|
@ -28,7 +27,7 @@ class SuspendResumePropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
||||||
private final InMemoryTracing inMemoryTracing =
|
private final InMemoryTracing inMemoryTracing =
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
||||||
private final Tracer tracer = TraceShim.createTracerShim(sdk, new BaggageManagerSdk());
|
private final Tracer tracer = TraceShim.createTracerShim(sdk);
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void before() {}
|
void before() {}
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,13 @@ package io.opentelemetry.sdk;
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
import io.opentelemetry.OpenTelemetry;
|
||||||
import io.opentelemetry.internal.Obfuscated;
|
import io.opentelemetry.internal.Obfuscated;
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import io.opentelemetry.sdk.metrics.MeterSdkProvider;
|
import io.opentelemetry.sdk.metrics.MeterSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkManagement;
|
import io.opentelemetry.sdk.trace.TracerSdkManagement;
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
import javax.annotation.concurrent.ThreadSafe;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class provides a static global accessor for SDK telemetry objects {@link
|
* This class provides a static global accessor for SDK telemetry objects {@link
|
||||||
* TracerSdkManagement}, {@link MeterSdkProvider} and {@link BaggageManagerSdk}.
|
* TracerSdkManagement}, {@link MeterSdkProvider}.
|
||||||
*
|
*
|
||||||
* <p>This is a convenience class getting and casting the telemetry objects from {@link
|
* <p>This is a convenience class getting and casting the telemetry objects from {@link
|
||||||
* OpenTelemetry}.
|
* OpenTelemetry}.
|
||||||
|
|
@ -23,6 +22,7 @@ import javax.annotation.concurrent.ThreadSafe;
|
||||||
*/
|
*/
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
public final class OpenTelemetrySdk {
|
public final class OpenTelemetrySdk {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link TracerSdkManagement}.
|
* Returns a {@link TracerSdkManagement}.
|
||||||
*
|
*
|
||||||
|
|
@ -41,14 +41,5 @@ public final class OpenTelemetrySdk {
|
||||||
return (MeterSdkProvider) OpenTelemetry.getMeterProvider();
|
return (MeterSdkProvider) OpenTelemetry.getMeterProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a {@link BaggageManagerSdk}.
|
|
||||||
*
|
|
||||||
* @return context manager returned by {@link OpenTelemetry#getBaggageManager()}.
|
|
||||||
*/
|
|
||||||
public static BaggageManagerSdk getBaggageManager() {
|
|
||||||
return (BaggageManagerSdk) OpenTelemetry.getBaggageManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
private OpenTelemetrySdk() {}
|
private OpenTelemetrySdk() {}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ class OpenTelemetrySdkTest {
|
||||||
void testDefault() {
|
void testDefault() {
|
||||||
assertThat(((TracerSdkProvider) OpenTelemetrySdk.getTracerManagement()).get(""))
|
assertThat(((TracerSdkProvider) OpenTelemetrySdk.getTracerManagement()).get(""))
|
||||||
.isSameAs(OpenTelemetry.getTracerProvider().get(""));
|
.isSameAs(OpenTelemetry.getTracerProvider().get(""));
|
||||||
assertThat(OpenTelemetrySdk.getBaggageManager()).isSameAs(OpenTelemetry.getBaggageManager());
|
|
||||||
assertThat(OpenTelemetrySdk.getMeterProvider()).isSameAs(OpenTelemetry.getMeterProvider());
|
assertThat(OpenTelemetrySdk.getMeterProvider()).isSameAs(OpenTelemetry.getMeterProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.sdk.baggage;
|
|
||||||
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
|
||||||
import io.opentelemetry.context.Scope;
|
|
||||||
|
|
||||||
/** {@link BaggageManagerSdk} is SDK implementation of {@link BaggageManager}. */
|
|
||||||
public class BaggageManagerSdk implements BaggageManager {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage getCurrentBaggage() {
|
|
||||||
return BaggageUtils.getCurrentBaggage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Baggage.Builder baggageBuilder() {
|
|
||||||
return new BaggageSdk.Builder();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Scope withBaggage(Baggage baggage) {
|
|
||||||
return BaggageUtils.currentContextWith(baggage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The SDK implementation of baggage.
|
|
||||||
*
|
|
||||||
* @see io.opentelemetry.sdk.baggage.BaggageManagerSdk
|
|
||||||
*/
|
|
||||||
@ParametersAreNonnullByDefault
|
|
||||||
package io.opentelemetry.sdk.baggage;
|
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.sdk.baggage.spi;
|
|
||||||
|
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.baggage.spi.BaggageManagerFactory;
|
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@code BaggageManager} provider implementation for {@link BaggageManagerFactory}.
|
|
||||||
*
|
|
||||||
* <p>This class is not intended to be used in application code and it is used only by {@link
|
|
||||||
* io.opentelemetry.OpenTelemetry}.
|
|
||||||
*/
|
|
||||||
public final class BaggageManagerFactorySdk implements BaggageManagerFactory {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaggageManager create() {
|
|
||||||
return new BaggageManagerSdk();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** The SPI implementation which provides the SDK implementation of baggage. */
|
|
||||||
@ParametersAreNonnullByDefault
|
|
||||||
package io.opentelemetry.sdk.baggage.spi;
|
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
|
||||||
|
|
@ -9,7 +9,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
import io.opentelemetry.baggage.BaggageUtils;
|
||||||
import io.opentelemetry.baggage.EmptyBaggage;
|
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
|
@ -17,13 +16,10 @@ import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
/** Unit tests for {@link BaggageManagerSdk}. */
|
/** Unit tests for {@link Baggage} and {@link BaggageUtils}. TODO: move these where appropriate */
|
||||||
// Need to suppress warnings for MustBeClosed because Android 14 does not support
|
|
||||||
// try-with-resources.
|
|
||||||
@SuppressWarnings("MustBeClosedChecker")
|
|
||||||
class BaggageManagerSdkTest {
|
class BaggageManagerSdkTest {
|
||||||
|
|
||||||
@Mock private Baggage baggage;
|
@Mock private Baggage baggage;
|
||||||
private final BaggageManagerSdk contextManager = new BaggageManagerSdk();
|
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() {
|
void setUp() {
|
||||||
|
|
@ -32,13 +28,13 @@ class BaggageManagerSdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCurrentContext_DefaultContext() {
|
void testGetCurrentContext_DefaultContext() {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetCurrentContext_ContextSetToNull() {
|
void testGetCurrentContext_ContextSetToNull() {
|
||||||
try (Scope ignored = BaggageUtils.withBaggage(null, Context.current()).makeCurrent()) {
|
try (Scope ignored = BaggageUtils.withBaggage(null, Context.current()).makeCurrent()) {
|
||||||
Baggage baggage = contextManager.getCurrentBaggage();
|
Baggage baggage = BaggageUtils.getCurrentBaggage();
|
||||||
assertThat(baggage).isNotNull();
|
assertThat(baggage).isNotNull();
|
||||||
assertThat(baggage.getEntries()).isEmpty();
|
assertThat(baggage.getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
@ -46,26 +42,26 @@ class BaggageManagerSdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testWithBaggage() {
|
void testWithBaggage() {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(Baggage.empty());
|
||||||
try (Scope wtm = contextManager.withBaggage(baggage)) {
|
try (Scope wtm = BaggageUtils.currentContextWith(baggage)) {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(baggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(baggage);
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(Baggage.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testWithBaggageUsingWrap() {
|
void testWithBaggageUsingWrap() {
|
||||||
Runnable runnable;
|
Runnable runnable;
|
||||||
try (Scope wtm = contextManager.withBaggage(baggage)) {
|
try (Scope wtm = BaggageUtils.currentContextWith(baggage)) {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(baggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(baggage);
|
||||||
runnable =
|
runnable =
|
||||||
Context.current()
|
Context.current()
|
||||||
.wrap(
|
.wrap(
|
||||||
() -> {
|
() -> {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(baggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(baggage);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(EmptyBaggage.getInstance());
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(Baggage.empty());
|
||||||
// When we run the runnable we will have the Baggage in the current Context.
|
// When we run the runnable we will have the Baggage in the current Context.
|
||||||
runnable.run();
|
runnable.run();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,19 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.baggage;
|
package io.opentelemetry.sdk.baggage;
|
||||||
|
|
||||||
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.Entry;
|
import io.opentelemetry.baggage.Entry;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class BaggageTestUtil {
|
class BaggageTestUtil {
|
||||||
|
|
||||||
static BaggageSdk listToBaggage(Entry... entries) {
|
static Baggage listToBaggage(Entry... entries) {
|
||||||
return listToBaggage(Arrays.asList(entries));
|
return listToBaggage(Arrays.asList(entries));
|
||||||
}
|
}
|
||||||
|
|
||||||
static BaggageSdk listToBaggage(List<Entry> entries) {
|
static Baggage listToBaggage(List<Entry> entries) {
|
||||||
BaggageSdk.Builder builder = new BaggageSdk.Builder();
|
Baggage.Builder builder = Baggage.builder();
|
||||||
for (Entry entry : entries) {
|
for (Entry entry : entries) {
|
||||||
builder.put(entry.getKey(), entry.getValue(), entry.getEntryMetadata());
|
builder.put(entry.getKey(), entry.getValue(), entry.getEntryMetadata());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
import com.google.common.testing.EqualsTester;
|
import com.google.common.testing.EqualsTester;
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
|
||||||
import io.opentelemetry.baggage.BaggageUtils;
|
import io.opentelemetry.baggage.BaggageUtils;
|
||||||
import io.opentelemetry.baggage.Entry;
|
import io.opentelemetry.baggage.Entry;
|
||||||
import io.opentelemetry.baggage.EntryMetadata;
|
import io.opentelemetry.baggage.EntryMetadata;
|
||||||
|
|
@ -20,13 +19,11 @@ import io.opentelemetry.context.Scope;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link BaggageSdk} and {@link BaggageSdk.Builder}.
|
* Tests for {@link Baggage} and {@link Baggage.Builder}.
|
||||||
*
|
*
|
||||||
* <p>Tests for scope management with {@link BaggageManagerSdk} are in {@link ScopedBaggageTest}.
|
* <p>Tests for scope management with {@link Baggage} are in {@link ScopedBaggageTest}.
|
||||||
*/
|
*/
|
||||||
class BaggageSdkTest {
|
class ImmutableBaggageTest {
|
||||||
|
|
||||||
private final BaggageManager contextManager = new BaggageManagerSdk();
|
|
||||||
|
|
||||||
private static final EntryMetadata TMD = EntryMetadata.create("tmd");
|
private static final EntryMetadata TMD = EntryMetadata.create("tmd");
|
||||||
|
|
||||||
|
|
@ -41,13 +38,13 @@ class BaggageSdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void getEntries_empty() {
|
void getEntries_empty() {
|
||||||
BaggageSdk baggage = new BaggageSdk.Builder().build();
|
Baggage baggage = Baggage.empty();
|
||||||
assertThat(baggage.getEntries()).isEmpty();
|
assertThat(baggage.getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void getEntries_nonEmpty() {
|
void getEntries_nonEmpty() {
|
||||||
BaggageSdk baggage = listToBaggage(T1, T2);
|
Baggage baggage = listToBaggage(T1, T2);
|
||||||
assertThat(baggage.getEntries()).containsExactly(T1, T2);
|
assertThat(baggage.getEntries()).containsExactly(T1, T2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,8 +54,7 @@ class BaggageSdkTest {
|
||||||
Baggage parent = listToBaggage(T1, T2);
|
Baggage parent = listToBaggage(T1, T2);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
Baggage baggage =
|
Baggage baggage =
|
||||||
contextManager
|
Baggage.builder()
|
||||||
.baggageBuilder()
|
|
||||||
.setParent(parentContext)
|
.setParent(parentContext)
|
||||||
.put(t1alt.getKey(), t1alt.getValue(), t1alt.getEntryMetadata())
|
.put(t1alt.getKey(), t1alt.getValue(), t1alt.getEntryMetadata())
|
||||||
.build();
|
.build();
|
||||||
|
|
@ -69,27 +65,15 @@ class BaggageSdkTest {
|
||||||
void put_newKey() {
|
void put_newKey() {
|
||||||
Baggage parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
assertThat(
|
assertThat(Baggage.builder().setParent(parentContext).put(K2, V2, TMD).build().getEntries())
|
||||||
contextManager
|
|
||||||
.baggageBuilder()
|
|
||||||
.setParent(parentContext)
|
|
||||||
.put(K2, V2, TMD)
|
|
||||||
.build()
|
|
||||||
.getEntries())
|
|
||||||
.containsExactly(T1, T2);
|
.containsExactly(T1, T2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void put_existingKey() {
|
void put_existingKey() {
|
||||||
BaggageSdk parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
assertThat(
|
assertThat(Baggage.builder().setParent(parentContext).put(K1, V2, TMD).build().getEntries())
|
||||||
contextManager
|
|
||||||
.baggageBuilder()
|
|
||||||
.setParent(parentContext)
|
|
||||||
.put(K1, V2, TMD)
|
|
||||||
.build()
|
|
||||||
.getEntries())
|
|
||||||
.containsExactly(Entry.create(K1, V2, TMD));
|
.containsExactly(Entry.create(K1, V2, TMD));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -97,54 +81,51 @@ class BaggageSdkTest {
|
||||||
void put_nullKey() {
|
void put_nullKey() {
|
||||||
Baggage parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
Baggage.Builder builder = contextManager.baggageBuilder().setParent(parentContext);
|
Baggage.Builder builder = Baggage.builder().setParent(parentContext);
|
||||||
assertThrows(NullPointerException.class, () -> builder.put(null, V2, TMD), "key");
|
assertThrows(NullPointerException.class, () -> builder.put(null, V2, TMD), "key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void put_nullValue() {
|
void put_nullValue() {
|
||||||
BaggageSdk parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
Baggage.Builder builder = contextManager.baggageBuilder().setParent(parentContext);
|
Baggage.Builder builder = Baggage.builder().setParent(parentContext);
|
||||||
assertThrows(NullPointerException.class, () -> builder.put(K2, null, TMD), "value");
|
assertThrows(NullPointerException.class, () -> builder.put(K2, null, TMD), "value");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setParent_nullContext() {
|
void setParent_nullContext() {
|
||||||
assertThrows(
|
assertThrows(NullPointerException.class, () -> Baggage.builder().setParent((Context) null));
|
||||||
NullPointerException.class,
|
|
||||||
() -> contextManager.baggageBuilder().setParent((Context) null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setParent_fromContext() {
|
void setParent_fromContext() {
|
||||||
Context context = BaggageUtils.withBaggage(listToBaggage(T2), Context.current());
|
Context context = BaggageUtils.withBaggage(listToBaggage(T2), Context.current());
|
||||||
Baggage baggage = contextManager.baggageBuilder().setParent(context).build();
|
Baggage baggage = Baggage.builder().setParent(context).build();
|
||||||
assertThat(baggage.getEntries()).containsExactly(T2);
|
assertThat(baggage.getEntries()).containsExactly(T2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setParent_fromEmptyContext() {
|
void setParent_fromEmptyContext() {
|
||||||
Context emptyContext = Context.current();
|
Context emptyContext = Context.current();
|
||||||
BaggageSdk parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
try (Scope scope = BaggageUtils.currentContextWith(parent)) {
|
try (Scope scope = BaggageUtils.currentContextWith(parent)) {
|
||||||
Baggage baggage = contextManager.baggageBuilder().setParent(emptyContext).build();
|
Baggage baggage = Baggage.builder().setParent(emptyContext).build();
|
||||||
assertThat(baggage.getEntries()).isEmpty();
|
assertThat(baggage.getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setParent_setNoParent() {
|
void setParent_setNoParent() {
|
||||||
BaggageSdk parent = listToBaggage(T1);
|
Baggage parent = listToBaggage(T1);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
Baggage baggage =
|
Baggage baggage = Baggage.builder().setParent(parentContext).setNoParent().build();
|
||||||
contextManager.baggageBuilder().setParent(parentContext).setNoParent().build();
|
|
||||||
assertThat(baggage.getEntries()).isEmpty();
|
assertThat(baggage.getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void remove_existingKey() {
|
void remove_existingKey() {
|
||||||
BaggageSdk.Builder builder = new BaggageSdk.Builder();
|
Baggage.Builder builder = Baggage.builder();
|
||||||
builder.put(T1.getKey(), T1.getValue(), T1.getEntryMetadata());
|
builder.put(T1.getKey(), T1.getValue(), T1.getEntryMetadata());
|
||||||
builder.put(T2.getKey(), T2.getValue(), T2.getEntryMetadata());
|
builder.put(T2.getKey(), T2.getValue(), T2.getEntryMetadata());
|
||||||
|
|
||||||
|
|
@ -153,7 +134,7 @@ class BaggageSdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void remove_differentKey() {
|
void remove_differentKey() {
|
||||||
BaggageSdk.Builder builder = new BaggageSdk.Builder();
|
Baggage.Builder builder = Baggage.builder();
|
||||||
builder.put(T1.getKey(), T1.getValue(), T1.getEntryMetadata());
|
builder.put(T1.getKey(), T1.getValue(), T1.getEntryMetadata());
|
||||||
builder.put(T2.getKey(), T2.getValue(), T2.getEntryMetadata());
|
builder.put(T2.getKey(), T2.getValue(), T2.getEntryMetadata());
|
||||||
|
|
||||||
|
|
@ -162,21 +143,15 @@ class BaggageSdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void remove_keyFromParent() {
|
void remove_keyFromParent() {
|
||||||
BaggageSdk parent = listToBaggage(T1, T2);
|
Baggage parent = listToBaggage(T1, T2);
|
||||||
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
Context parentContext = BaggageUtils.withBaggage(parent, Context.root());
|
||||||
assertThat(
|
assertThat(Baggage.builder().setParent(parentContext).remove(K1).build().getEntries())
|
||||||
contextManager
|
|
||||||
.baggageBuilder()
|
|
||||||
.setParent(parentContext)
|
|
||||||
.remove(K1)
|
|
||||||
.build()
|
|
||||||
.getEntries())
|
|
||||||
.containsExactly(T2);
|
.containsExactly(T2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void remove_nullKey() {
|
void remove_nullKey() {
|
||||||
Baggage.Builder builder = contextManager.baggageBuilder();
|
Baggage.Builder builder = Baggage.builder();
|
||||||
assertThrows(NullPointerException.class, () -> builder.remove(null), "key");
|
assertThrows(NullPointerException.class, () -> builder.remove(null), "key");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -184,11 +159,11 @@ class BaggageSdkTest {
|
||||||
void testEquals() {
|
void testEquals() {
|
||||||
new EqualsTester()
|
new EqualsTester()
|
||||||
.addEqualityGroup(
|
.addEqualityGroup(
|
||||||
contextManager.baggageBuilder().put(K1, V1, TMD).put(K2, V2, TMD).build(),
|
Baggage.builder().put(K1, V1, TMD).put(K2, V2, TMD).build(),
|
||||||
contextManager.baggageBuilder().put(K1, V1, TMD).put(K2, V2, TMD).build(),
|
Baggage.builder().put(K1, V1, TMD).put(K2, V2, TMD).build(),
|
||||||
contextManager.baggageBuilder().put(K2, V2, TMD).put(K1, V1, TMD).build())
|
Baggage.builder().put(K2, V2, TMD).put(K1, V1, TMD).build())
|
||||||
.addEqualityGroup(contextManager.baggageBuilder().put(K1, V1, TMD).put(K2, V1, TMD).build())
|
.addEqualityGroup(Baggage.builder().put(K1, V1, TMD).put(K2, V1, TMD).build())
|
||||||
.addEqualityGroup(contextManager.baggageBuilder().put(K1, V2, TMD).put(K2, V1, TMD).build())
|
.addEqualityGroup(Baggage.builder().put(K1, V2, TMD).put(K2, V1, TMD).build())
|
||||||
.testEquals();
|
.testEquals();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,16 +8,15 @@ package io.opentelemetry.sdk.baggage;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.baggage.Baggage;
|
import io.opentelemetry.baggage.Baggage;
|
||||||
import io.opentelemetry.baggage.BaggageManager;
|
import io.opentelemetry.baggage.BaggageUtils;
|
||||||
import io.opentelemetry.baggage.EmptyBaggage;
|
|
||||||
import io.opentelemetry.baggage.Entry;
|
import io.opentelemetry.baggage.Entry;
|
||||||
import io.opentelemetry.baggage.EntryMetadata;
|
import io.opentelemetry.baggage.EntryMetadata;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit tests for the methods in {@link BaggageManagerSdk} and {@link BaggageSdk.Builder} that
|
* Unit tests for the methods in {@link BaggageUtils} and {@link Baggage} that interact with the
|
||||||
* interact with the current {@link BaggageSdk}.
|
* current {@link Baggage}.
|
||||||
*/
|
*/
|
||||||
class ScopedBaggageTest {
|
class ScopedBaggageTest {
|
||||||
|
|
||||||
|
|
@ -34,120 +33,108 @@ class ScopedBaggageTest {
|
||||||
EntryMetadata.create("unlimited");
|
EntryMetadata.create("unlimited");
|
||||||
private static final EntryMetadata METADATA_NO_PROPAGATION = EntryMetadata.create("noprop");
|
private static final EntryMetadata METADATA_NO_PROPAGATION = EntryMetadata.create("noprop");
|
||||||
|
|
||||||
private final BaggageManager contextManager = new BaggageManagerSdk();
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void emptyBaggage() {
|
void emptyBaggage() {
|
||||||
Baggage defaultBaggage = contextManager.getCurrentBaggage();
|
Baggage defaultBaggage = BaggageUtils.getCurrentBaggage();
|
||||||
assertThat(defaultBaggage.getEntries()).isEmpty();
|
assertThat(defaultBaggage.getEntries()).isEmpty();
|
||||||
assertThat(defaultBaggage).isInstanceOf(EmptyBaggage.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void withContext() {
|
void withContext() {
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
Baggage scopedEntries =
|
Baggage scopedEntries =
|
||||||
contextManager.baggageBuilder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
Baggage.builder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
try (Scope scope = contextManager.withBaggage(scopedEntries)) {
|
try (Scope scope = BaggageUtils.currentContextWith(scopedEntries)) {
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(scopedEntries);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(scopedEntries);
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createBuilderFromCurrentEntries() {
|
void createBuilderFromCurrentEntries() {
|
||||||
Baggage scopedBaggage =
|
Baggage scopedBaggage =
|
||||||
contextManager.baggageBuilder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
Baggage.builder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
try (Scope scope = contextManager.withBaggage(scopedBaggage)) {
|
try (Scope scope = BaggageUtils.currentContextWith(scopedBaggage)) {
|
||||||
Baggage newEntries =
|
Baggage newEntries =
|
||||||
contextManager
|
Baggage.builder().put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
.baggageBuilder()
|
|
||||||
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
|
||||||
.build();
|
|
||||||
assertThat(newEntries.getEntries())
|
assertThat(newEntries.getEntries())
|
||||||
.containsExactlyInAnyOrder(
|
.containsExactlyInAnyOrder(
|
||||||
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
||||||
Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(scopedBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(scopedBaggage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setCurrentEntriesWithBuilder() {
|
void setCurrentEntriesWithBuilder() {
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
Baggage scopedBaggage =
|
Baggage scopedBaggage =
|
||||||
contextManager.baggageBuilder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
Baggage.builder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
try (Scope scope = contextManager.withBaggage(scopedBaggage)) {
|
try (Scope scope = BaggageUtils.currentContextWith(scopedBaggage)) {
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries())
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries())
|
||||||
.containsExactly(Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION));
|
.containsExactly(Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION));
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(scopedBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(scopedBaggage);
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void addToCurrentEntriesWithBuilder() {
|
void addToCurrentEntriesWithBuilder() {
|
||||||
Baggage scopedBaggage =
|
Baggage scopedBaggage =
|
||||||
contextManager.baggageBuilder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
Baggage.builder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
try (Scope scope1 = contextManager.withBaggage(scopedBaggage)) {
|
try (Scope scope1 = BaggageUtils.currentContextWith(scopedBaggage)) {
|
||||||
Baggage innerBaggage =
|
Baggage innerBaggage =
|
||||||
contextManager
|
Baggage.builder().put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
.baggageBuilder()
|
try (Scope scope2 = BaggageUtils.currentContextWith(innerBaggage)) {
|
||||||
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries())
|
||||||
.build();
|
|
||||||
try (Scope scope2 = contextManager.withBaggage(innerBaggage)) {
|
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries())
|
|
||||||
.containsExactlyInAnyOrder(
|
.containsExactlyInAnyOrder(
|
||||||
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
||||||
Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(innerBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(innerBaggage);
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(scopedBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(scopedBaggage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void multiScopeBaggageWithMetadata() {
|
void multiScopeBaggageWithMetadata() {
|
||||||
Baggage scopedBaggage =
|
Baggage scopedBaggage =
|
||||||
contextManager
|
Baggage.builder()
|
||||||
.baggageBuilder()
|
|
||||||
.put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION)
|
.put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION)
|
||||||
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
||||||
.build();
|
.build();
|
||||||
try (Scope scope1 = contextManager.withBaggage(scopedBaggage)) {
|
try (Scope scope1 = BaggageUtils.currentContextWith(scopedBaggage)) {
|
||||||
Baggage innerBaggage =
|
Baggage innerBaggage =
|
||||||
contextManager
|
Baggage.builder()
|
||||||
.baggageBuilder()
|
|
||||||
.put(KEY_3, VALUE_3, METADATA_NO_PROPAGATION)
|
.put(KEY_3, VALUE_3, METADATA_NO_PROPAGATION)
|
||||||
.put(KEY_2, VALUE_4, METADATA_NO_PROPAGATION)
|
.put(KEY_2, VALUE_4, METADATA_NO_PROPAGATION)
|
||||||
.build();
|
.build();
|
||||||
try (Scope scope2 = contextManager.withBaggage(innerBaggage)) {
|
try (Scope scope2 = BaggageUtils.currentContextWith(innerBaggage)) {
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries())
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries())
|
||||||
.containsExactlyInAnyOrder(
|
.containsExactlyInAnyOrder(
|
||||||
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
Entry.create(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION),
|
||||||
Entry.create(KEY_2, VALUE_4, METADATA_NO_PROPAGATION),
|
Entry.create(KEY_2, VALUE_4, METADATA_NO_PROPAGATION),
|
||||||
Entry.create(KEY_3, VALUE_3, METADATA_NO_PROPAGATION));
|
Entry.create(KEY_3, VALUE_3, METADATA_NO_PROPAGATION));
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(innerBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(innerBaggage);
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage()).isSameAs(scopedBaggage);
|
assertThat(BaggageUtils.getCurrentBaggage()).isSameAs(scopedBaggage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void setNoParent_doesNotInheritContext() {
|
void setNoParent_doesNotInheritContext() {
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
Baggage scopedBaggage =
|
Baggage scopedBaggage =
|
||||||
contextManager.baggageBuilder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
Baggage.builder().put(KEY_1, VALUE_1, METADATA_UNLIMITED_PROPAGATION).build();
|
||||||
try (Scope scope = contextManager.withBaggage(scopedBaggage)) {
|
try (Scope scope = BaggageUtils.currentContextWith(scopedBaggage)) {
|
||||||
Baggage innerBaggage =
|
Baggage innerBaggage =
|
||||||
contextManager
|
Baggage.builder()
|
||||||
.baggageBuilder()
|
|
||||||
.setNoParent()
|
.setNoParent()
|
||||||
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
.put(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION)
|
||||||
.build();
|
.build();
|
||||||
assertThat(innerBaggage.getEntries())
|
assertThat(innerBaggage.getEntries())
|
||||||
.containsExactly(Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
.containsExactly(Entry.create(KEY_2, VALUE_2, METADATA_UNLIMITED_PROPAGATION));
|
||||||
}
|
}
|
||||||
assertThat(contextManager.getCurrentBaggage().getEntries()).isEmpty();
|
assertThat(BaggageUtils.getCurrentBaggage().getEntries()).isEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.sdk.baggage.spi;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
|
|
||||||
import io.opentelemetry.OpenTelemetry;
|
|
||||||
import io.opentelemetry.sdk.baggage.BaggageManagerSdk;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
class BaggageManagerFactorySdkTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testDefault() {
|
|
||||||
assertThat(OpenTelemetry.getBaggageManager()).isInstanceOf(BaggageManagerSdk.class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue