Package com.github.kristofa.brave.jersey2

Source Code of com.github.kristofa.brave.jersey2.BraveClientResponseFilter

package com.github.kristofa.brave.jersey2;

import com.github.kristofa.brave.ClientTracer;
import com.github.kristofa.brave.client.ClientResponseInterceptor;
import com.google.common.base.Optional;
import org.apache.commons.lang.Validate;

import javax.inject.Inject;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.client.ClientResponseFilter;
import javax.ws.rs.ext.Provider;
import java.io.IOException;

/**
* Intercepts Jersey client responses and sends cr annotations. Also submits the completed span.
*/
@Provider
public class BraveClientResponseFilter implements ClientResponseFilter {

    private final ClientResponseInterceptor clientResponseInterceptor;

    @Inject
    public BraveClientResponseFilter(final ClientTracer clientTracer, final Optional<String> serviceName) {
        Validate.notNull(clientTracer);
        Validate.notNull(serviceName);
        clientResponseInterceptor = new ClientResponseInterceptor(clientTracer);
    }

    @Override
    public void filter(ClientRequestContext clientRequestContext, ClientResponseContext clientResponseContext) throws IOException {
        clientResponseInterceptor.handle(new JerseyClientResponseAdapter(clientResponseContext));
    }
}
TOP

Related Classes of com.github.kristofa.brave.jersey2.BraveClientResponseFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.