package org.webpieces.httpclient.api; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import org.webpieces.data.api.BufferCreationPool; import org.webpieces.httpclient.impl.HttpClientImpl; import org.webpieces.httpparser.api.HttpParser; import org.webpieces.httpparser.api.HttpParserFactory; import org.webpieces.nio.api.ChannelManager; import org.webpieces.nio.api.ChannelManagerFactory; import org.webpieces.util.threading.NamedThreadFactory; public abstract class HttpClientFactory { public static HttpClient createHttpClient(int numThreads) { Executor executor = Executors.newFixedThreadPool(numThreads, new NamedThreadFactory("httpclient")); BufferCreationPool pool = new BufferCreationPool(); HttpParser parser = HttpParserFactory.createParser(pool); ChannelManagerFactory factory = ChannelManagerFactory.createFactory(); ChannelManager mgr = factory.createMultiThreadedChanMgr("httpClientChanMgr", pool, executor); return createHttpClient(mgr, parser); } public static HttpClient createHttpClient(ChannelManager mgr, HttpParser parser) { return new HttpClientImpl(mgr, parser); } }