@Override
    public void setup(ProfilerPluginSetupContext context) {
        HttpClient4PluginConfig config = new HttpClient4PluginConfig(context.getConfig());
        if (Boolean.FALSE == config.isEnable()) {
            logger.info("{} disabled '{}'", this.getClass().getSimpleName(), "profiler.apache.httpclient4.enable=false");
            return;
        }
        if (logger.isInfoEnabled()) {
            logger.info("{} config:{}", this.getClass().getSimpleName(), config);
        }
        // common
        addHttpRequestExecutorClass();
        addDefaultHttpRequestRetryHandlerClass();

        // Apache httpclient4 (version 4.0 ~ 4.2)
        addAbstractHttpClient4Class();
        addAbstractPooledConnAdapterClass();
        addManagedClientConnectionImplClass();

        // Apache httpclient4 (version 4.3 ~ 4.4)
        addCloseableHttpClientClass();
        addBasicHttpClientConnectionManagerClass();
        addPoolingHttpClientConnectionManagerClass();

        // Apache httpAsyncClient4 (version 4.0)
        // unsupported AbstractHttpAsyncClient because of deprecated.
        addClosableHttpAsyncClientClass();
        addDefaultClientExchangeHandlerImplClass();
        addBasicFutureClass();
    }
@author netspider
@author emeroad
@author minwoo.jung
@author jaehong.kim
agent-module/plugins/httpclient4/src/main/java/com/navercorp/pinpoint/plugin/httpclient4/HttpClient4Plugin.java