Top Description Fields Constructors Methods
io.opentelemetry.api.baggage.propagation

public final Class W3CBaggagePropagator

extends Object
implements TextMapPropagator
Class Inheritance
All Implemented Interfaces
io.opentelemetry.context.propagation.TextMapPropagator
Static Imports
java.util.Collections.singletonList

TextMapPropagator that implements the W3C specification for baggage header propagation.

Field Summary

Modifier and TypeField and Description
private static final String
private static final List<String>
private static final W3CBaggagePropagator
private static final PercentEscaper

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static boolean
private static String
private static String
public <C> Context
extract(Context
the Context used to store the extracted value.
context
,
C
holds propagation fields. For example, an outgoing message or http request.
carrier
,
TextMapGetter<C>
invoked for each propagation key to get data from the carrier.
getter
)

Implements io.opentelemetry.context.propagation.TextMapPropagator.extract.

Extracts data from upstream.

private static void
extractEntries(String baggageHeader, BaggageBuilder baggageBuilder)

private static <C> Context
extractMulti(Context context, C carrier, ExtendedTextMapGetter<C> getter)

private static <C> Context
extractSingle(Context context, C carrier, TextMapGetter<C> getter)

public Collection<String>
fields()

Implements io.opentelemetry.context.propagation.TextMapPropagator.fields.

The propagation fields defined.

public static W3CBaggagePropagator
getInstance()

Singleton instance of the W3C Baggage Propagator.

public <C> void
inject(Context
the Context containing the value to be injected.
context
,
C
holds propagation fields. For example, an outgoing message or http request.
carrier
,
TextMapSetter<C>
invoked for each propagation key to add or remove.
setter
)

Implements io.opentelemetry.context.propagation.TextMapPropagator.inject.

Injects data for downstream consumers, for example as HTTP headers.

private static boolean

Returns:

whether the name is valid.
isValidBaggageKey
(String
the entry key name to be validated.
name
)

Determines whether the given String is a valid entry key.

private static boolean

Returns:

whether the value is valid.
isValidBaggageValue
(String
the entry value to be validated.
value
)

Determines whether the given String is a valid entry value.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

FIELDback to summary
private static final String FIELD
FIELDSback to summary
private static final List<String> FIELDS
INSTANCEback to summary
private static final W3CBaggagePropagator INSTANCE
URL_ESCAPERback to summary
private static final PercentEscaper URL_ESCAPER

Constructor Detail

W3CBaggagePropagatorback to summary
private W3CBaggagePropagator()

Method Detail

baggageIsInvalidback to summary
private static boolean baggageIsInvalid(String key, BaggageEntry baggageEntry)
baggageToStringback to summary
private static String baggageToString(Baggage baggage)
encodeValueback to summary
private static String encodeValue(String value)
extractback to summary
public <C> Context extract(Context context, C carrier, TextMapGetter<C> getter)

Implements io.opentelemetry.context.propagation.TextMapPropagator.extract.

Doc from io.opentelemetry.context.propagation.TextMapPropagator.extract.

Extracts data from upstream. For example, from incoming http headers. The returned Context should contain the extracted data, if any, merged with the data from the passed-in Context.

If the incoming information could not be parsed, implementations MUST return the original Context, unaltered.

Parameters
<C>
the type of carrier of the propagation fields, such as an http request.
context:Context

the Context used to store the extracted value.

carrier:C

holds propagation fields. For example, an outgoing message or http request.

getter:TextMapGetter<C>

invoked for each propagation key to get data from the carrier.

Returns:Context

the Context containing the extracted data.

Annotations
@Override
extractEntriesback to summary
private static void extractEntries(String baggageHeader, BaggageBuilder baggageBuilder)
extractMultiback to summary
private static <C> Context extractMulti(Context context, C carrier, ExtendedTextMapGetter<C> getter)
extractSingleback to summary
private static <C> Context extractSingle(Context context, C carrier, TextMapGetter<C> getter)
fieldsback to summary
public Collection<String> fields()

Implements io.opentelemetry.context.propagation.TextMapPropagator.fields.

Doc from io.opentelemetry.context.propagation.TextMapPropagator.fields.

The propagation fields defined. If your carrier is reused, you should delete the fields here before calling inject(Context, Object, TextMapSetter) )}.

For example, if the carrier is a single-use or immutable request object, you don't need to clear fields as they couldn't have been set before. If it is a mutable, retryable object, successive calls should clear these fields first.

Some use cases for this are:

  • Allow pre-allocation of fields, especially in systems like gRPC Metadata
  • Allow a single-pass over an iterator
Returns:Collection<String>

the fields that will be used by this formatter.

Annotations
@Override
getInstanceback to summary
public static W3CBaggagePropagator getInstance()

Singleton instance of the W3C Baggage Propagator.

injectback to summary
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter)

Implements io.opentelemetry.context.propagation.TextMapPropagator.inject.

Doc from io.opentelemetry.context.propagation.TextMapPropagator.inject.

Injects data for downstream consumers, for example as HTTP headers. The carrier may be null to facilitate calling this method with a lambda for the TextMapSetter, in which case that null will be passed to the TextMapSetter implementation.

Parameters
<C>
carrier of propagation fields, such as an http request
context:Context

the Context containing the value to be injected.

carrier:C

holds propagation fields. For example, an outgoing message or http request.

setter:TextMapSetter<C>

invoked for each propagation key to add or remove.

Annotations
@Override
isValidBaggageKeyback to summary
private static boolean isValidBaggageKey(String name)

Determines whether the given String is a valid entry key.

Parameters
name:String

the entry key name to be validated.

Returns:boolean

whether the name is valid.

isValidBaggageValueback to summary
private static boolean isValidBaggageValue(String value)

Determines whether the given String is a valid entry value.

Parameters
value:String

the entry value to be validated.

Returns:boolean

whether the value is valid.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override