package com.github.kristofa.brave.okhttp; import com.github.kristofa.brave.Brave; import com.github.kristofa.brave.ClientRequestInterceptor; import com.github.kristofa.brave.ClientResponseInterceptor; import com.github.kristofa.brave.http.DefaultSpanNameProvider; import com.github.kristofa.brave.http.HttpClientRequestAdapter; import com.github.kristofa.brave.http.HttpClientResponseAdapter; import com.github.kristofa.brave.http.SpanNameProvider; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; import static com.github.kristofa.brave.internal.Util.checkNotNull; /** * @deprecated Replaced by {@code TracingInterceptor} from brave-instrumentation-okhttp3 */ @Deprecated public class BraveOkHttpRequestResponseInterceptor implements Interceptor { /** Creates a tracing interceptor with defaults. Use {@link #builder(Brave)} to customize. */ public static BraveOkHttpRequestResponseInterceptor create(Brave brave) { return new Builder(brave).build(); } public static Builder builder(Brave brave) { return new Builder(brave); } public static final class Builder { final Brave brave; SpanNameProvider spanNameProvider = new DefaultSpanNameProvider(); Builder(Brave brave) { // intentionally hidden this.brave = checkNotNull(brave, "brave"); } public Builder spanNameProvider(SpanNameProvider spanNameProvider) { this.spanNameProvider = checkNotNull(spanNameProvider, "spanNameProvider"); return this; } public BraveOkHttpRequestResponseInterceptor build() { return new BraveOkHttpRequestResponseInterceptor(this); } } private final ClientRequestInterceptor requestInterceptor; private final ClientResponseInterceptor responseInterceptor; private final SpanNameProvider spanNameProvider; BraveOkHttpRequestResponseInterceptor(Builder b) { // intentionally hidden this.requestInterceptor = b.brave.clientRequestInterceptor(); this.responseInterceptor = b.brave.clientResponseInterceptor(); this.spanNameProvider = b.spanNameProvider; } /** * @deprecated please use {@link #create(Brave)} or {@link #builder(Brave)} */ @Deprecated public BraveOkHttpRequestResponseInterceptor(ClientRequestInterceptor requestInterceptor, ClientResponseInterceptor responseInterceptor, SpanNameProvider spanNameProvider) { this.spanNameProvider = spanNameProvider; this.requestInterceptor = requestInterceptor; this.responseInterceptor = responseInterceptor; } @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request request = chain.request(); Request.Builder builder = request.newBuilder(); OkHttpRequest okHttpRequest = new OkHttpRequest(builder, request); requestInterceptor.handle(new HttpClientRequestAdapter(okHttpRequest, spanNameProvider)); Response response = chain.proceed(builder.build()); responseInterceptor.handle(new HttpClientResponseAdapter(new OkHttpResponse(response))); return response; } }