All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yammer.metrics.httpclient.InstrumentedHttpClient Maven / Gradle / Ivy

The newest version!
package com.yammer.metrics.httpclient;

import com.yammer.metrics.MetricRegistry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.client.*;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.routing.HttpRoutePlanner;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HttpProcessor;
import org.apache.http.protocol.HttpRequestExecutor;

public class InstrumentedHttpClient extends DefaultHttpClient {
    private final Log log = LogFactory.getLog(getClass());

    private final MetricRegistry registry;
    private final String name;

    public InstrumentedHttpClient(MetricRegistry registry,
                                  InstrumentedClientConnManager manager,
                                  HttpParams params,
                                  String name) {
        super(manager, params);
        this.registry = registry;
        this.name = name;
    }

    public InstrumentedHttpClient(MetricRegistry registry,
                                  HttpParams params) {
        this(registry, new InstrumentedClientConnManager(registry), params, null);
    }

    public InstrumentedHttpClient(MetricRegistry registry) {
        this(registry, new InstrumentedClientConnManager(registry), null, null);
    }

    @Override
    protected RequestDirector createClientRequestDirector(HttpRequestExecutor requestExec,
                                                          ClientConnectionManager conman,
                                                          ConnectionReuseStrategy reustrat,
                                                          ConnectionKeepAliveStrategy kastrat,
                                                          HttpRoutePlanner rouplan,
                                                          HttpProcessor httpProcessor,
                                                          HttpRequestRetryHandler retryHandler,
                                                          RedirectStrategy redirectStrategy,
                                                          AuthenticationStrategy targetAuthStrategy,
                                                          AuthenticationStrategy proxyAuthStrategy,
                                                          UserTokenHandler userTokenHandler,
                                                          HttpParams params) {
        return new InstrumentedRequestDirector(
                registry,
                name,
                log,
                requestExec,
                conman,
                reustrat,
                kastrat,
                rouplan,
                httpProcessor,
                retryHandler,
                redirectStrategy,
                targetAuthStrategy,
                proxyAuthStrategy,
                userTokenHandler,
                params);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy