in awspropagator/src/main/java/software/amazon/opentelemetry/awspropagator/AwsCompositePropagator.java [90:108]
public <C> void inject(Context context, C carrier, TextMapSetter<C> setter) {
if (injectExtractedFormat) {
TextMapPropagator extractedPropagator = context.get(EXTRACTED_PROPAGATOR);
if (extractedPropagator != null) {
extractedPropagator.inject(context, carrier, setter);
Baggage baggage = Baggage.fromContextOrNull(context);
if (baggage != null && extractedPropagator != AwsXrayPropagator.getInstance()) {
// We extracted a span from a format not supporting baggage within the trace context
// itself, for example b3. if we have baggage we just propagate using w3c
// baggage.
W3CBaggagePropagator.getInstance().inject(context, carrier, setter);
}
return;
}
}
// Unless injecting in the same format as extracted, always inject X-Amzn-Trace-Id, the only
// format recognized by all AWS services as of now.
AwsXrayPropagator.getInstance().inject(context, carrier, setter);
}