package org.limewire.swarm.http; import org.apache.http.ConnectionReuseStrategy; import org.apache.http.impl.DefaultConnectionReuseStrategy; import org.apache.http.nio.protocol.AsyncNHttpClientHandler; import org.apache.http.nio.protocol.NHttpRequestExecutionHandler; import org.apache.http.params.HttpParams; import org.apache.http.protocol.RequestConnControl; import org.apache.http.protocol.RequestContent; import org.apache.http.protocol.RequestExpectContinue; import org.apache.http.protocol.RequestTargetHost; import org.apache.http.protocol.RequestUserAgent; import org.limewire.http.protocol.SynchronizedHttpProcessor; public class SwarmAsyncNHttpClientHandlerBuilder { private final AsyncNHttpClientHandler clientHandler; public SwarmAsyncNHttpClientHandlerBuilder(HttpParams params, NHttpRequestExecutionHandler execHandler) { SynchronizedHttpProcessor httpProcessor = new SynchronizedHttpProcessor(); httpProcessor.addInterceptor(new RequestContent()); httpProcessor.addInterceptor(new RequestTargetHost()); httpProcessor.addInterceptor(new RequestConnControl()); httpProcessor.addInterceptor(new RequestUserAgent()); httpProcessor.addInterceptor(new RequestExpectContinue()); ConnectionReuseStrategy connectionReuseStrategy = new DefaultConnectionReuseStrategy(); clientHandler = new AsyncNHttpClientHandler(httpProcessor, execHandler, connectionReuseStrategy, params); } public AsyncNHttpClientHandler get() { return clientHandler; } }