package org.cloudsmith.geppetto.injectable.standalone.impl; import javax.inject.Named; import org.apache.http.client.HttpClient; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import com.google.inject.Inject; import com.google.inject.Provider; public class StandaloneHttpClientProvider implements Provider<HttpClient> { @Inject(optional = true) @Named(CoreConnectionPNames.CONNECTION_TIMEOUT) private Integer connectonTimeout; @Inject(optional = true) @Named(CoreConnectionPNames.SO_TIMEOUT) private Integer soTimeout; @Inject private SSLSocketFactory sslSocketFactory; @Override public HttpClient get() { HttpParams params = new BasicHttpParams(); if(connectonTimeout != null) HttpConnectionParams.setConnectionTimeout(params, connectonTimeout.intValue()); if(soTimeout != null) HttpConnectionParams.setSoTimeout(params, soTimeout.intValue()); DefaultHttpClient httpClient = new DefaultHttpClient(params); httpClient.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, sslSocketFactory)); return httpClient; } }