package rocks.inspectit.agent.java.tracing.core.adapter.http; import io.opentracing.References; import io.opentracing.propagation.Format; import io.opentracing.propagation.TextMap; import rocks.inspectit.agent.java.tracing.core.adapter.ClientRequestAdapter; import rocks.inspectit.agent.java.tracing.core.adapter.http.data.HttpRequest; /** * The {@link ClientRequestAdapter} for all synchronous HTTP client requests. * * @author Ivan Senic */ public class HttpClientRequestAdapter extends HttpRequestAdapter implements ClientRequestAdapter<TextMap> { /** * Http request providing data we need. */ private HttpRequest httpRequest; /** * Default constructor. * * @param httpRequest * HTTP request from which we can read data. */ public HttpClientRequestAdapter(HttpRequest httpRequest) { super(httpRequest); this.httpRequest = httpRequest; } /** * {@inheritDoc} */ @Override public boolean startClientSpan() { return httpRequest.startClientSpan(); } /** * {@inheritDoc} * <p> * As this requestAdapter supports only sync HTTP calls we use {@value References.CHILD_OF}. */ @Override public String getReferenceType() { return References.CHILD_OF; } /** * {@inheritDoc} */ @Override public Format<TextMap> getFormat() { return Format.Builtin.HTTP_HEADERS; } /** * {@inheritDoc} */ @Override public TextMap getCarrier() { return httpRequest; } }