
io.opentelemetry.javaagent.instrumentation.rabbitmq.ReceiveRequestTextMapGetter Maven / Gradle / Ivy
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.javaagent.instrumentation.rabbitmq;
import static java.util.Collections.emptySet;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.GetResponse;
import io.opentelemetry.context.propagation.TextMapGetter;
import java.util.Map;
import javax.annotation.Nullable;
enum ReceiveRequestTextMapGetter implements TextMapGetter {
INSTANCE;
@Override
public Iterable keys(ReceiveRequest carrier) {
Map headers = getHeaders(carrier);
return headers == null ? emptySet() : headers.keySet();
}
@Nullable
@Override
public String get(@Nullable ReceiveRequest carrier, String key) {
Map headers = getHeaders(carrier);
if (headers == null) {
return null;
}
Object value = headers.get(key);
return value == null ? null : value.toString();
}
@Nullable
private static Map getHeaders(@Nullable ReceiveRequest carrier) {
if (carrier == null) {
return null;
}
GetResponse response = carrier.getResponse();
if (response == null) {
return null;
}
AMQP.BasicProperties props = response.getProps();
if (props == null) {
return null;
}
return props.getHeaders();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy