You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2014/03/19 20:26:58 UTC
svn commit: r1579362 -
/manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java
Author: kwright
Date: Wed Mar 19 19:26:57 2014
New Revision: 1579362
URL: http://svn.apache.org/r1579362
Log:
Remove httpclient deprecations in rss connector, part of CONNECTORS-911
Modified:
manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java
Modified: manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java?rev=1579362&r1=1579361&r2=1579362&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java (original)
+++ manifoldcf/trunk/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/ThrottledFetcher.java Wed Mar 19 19:26:57 2014
@@ -29,31 +29,30 @@ import java.util.*;
import java.io.*;
import java.net.*;
-import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.client.HttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.protocol.HttpRequestExecutor;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.config.SocketConfig;
import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.NTCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultRedirectStrategy;
import org.apache.http.util.EntityUtils;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.HttpStatus;
import org.apache.http.HttpHost;
import org.apache.http.Header;
-import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.message.BasicHeader;
-import org.apache.http.client.params.ClientPNames;
-import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.protocol.HttpContext;
@@ -215,7 +214,7 @@ public class ThrottledFetcher
/** Connection timeout in milliseconds */
protected final int connectionTimeoutMilliseconds;
/** The client connection manager */
- protected final ClientConnectionManager connectionManager;
+ protected final HttpClientConnectionManager connectionManager;
/** The httpclient */
protected final HttpClient httpClient;
@@ -253,39 +252,21 @@ public class ThrottledFetcher
// Create the https scheme for this connection
javax.net.ssl.SSLSocketFactory httpsSocketFactory = KeystoreManagerFactory.getTrustingSecureSocketFactory();;
- SSLSocketFactory myFactory = new SSLSocketFactory(new InterruptibleSocketFactory(httpsSocketFactory,connectionTimeoutMilliseconds),
- new AllowAllHostnameVerifier());
- Scheme myHttpsProtocol = new Scheme("https", 443, myFactory);
-
- PoolingClientConnectionManager localConnectionManager = new PoolingClientConnectionManager();
- localConnectionManager.setMaxTotal(1);
- connectionManager = localConnectionManager;
-
- // Set up protocol registry
- connectionManager.getSchemeRegistry().register(myHttpsProtocol);
-
- BasicHttpParams params = new BasicHttpParams();
- params.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
- params.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
- params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,connectionTimeoutMilliseconds);
- params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,connectionTimeoutMilliseconds);
- params.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,true);
- DefaultHttpClient localHttpClient = new DefaultHttpClient(connectionManager,params);
- // No retries
- localHttpClient.setHttpRequestRetryHandler(new HttpRequestRetryHandler()
- {
- public boolean retryRequest(
- IOException exception,
- int executionCount,
- HttpContext context)
- {
- return false;
- }
-
- });
+ SSLConnectionSocketFactory myFactory = new SSLConnectionSocketFactory(new InterruptibleSocketFactory(httpsSocketFactory,connectionTimeoutMilliseconds),
+ SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+
+ connectionManager = new PoolingHttpClientConnectionManager();
+
+ CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+
+ RequestConfig.Builder requestBuilder = RequestConfig.custom()
+ .setCircularRedirectsAllowed(true)
+ .setSocketTimeout(connectionTimeoutMilliseconds)
+ .setStaleConnectionCheckEnabled(true)
+ .setExpectContinueEnabled(true)
+ .setConnectTimeout(connectionTimeoutMilliseconds)
+ .setConnectionRequestTimeout(connectionTimeoutMilliseconds);
- localHttpClient.setRedirectStrategy(new DefaultRedirectStrategy());
-
// If there's a proxy, set that too.
if (proxyHost != null && proxyHost.length() > 0)
{
@@ -298,17 +279,30 @@ public class ThrottledFetcher
if (proxyAuthDomain == null)
proxyAuthDomain = "";
- localHttpClient.getCredentialsProvider().setCredentials(
+ credentialsProvider.setCredentials(
new AuthScope(proxyHost, proxyPort),
new NTCredentials(proxyAuthUsername, proxyAuthPassword, currentHost, proxyAuthDomain));
}
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
- localHttpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+ requestBuilder.setProxy(proxy);
}
-
- httpClient = localHttpClient;
+
+ httpClient = HttpClients.custom()
+ .setConnectionManager(connectionManager)
+ .setMaxConnTotal(1)
+ .disableAutomaticRetries()
+ .setDefaultRequestConfig(requestBuilder.build())
+ .setDefaultSocketConfig(SocketConfig.custom()
+ .setTcpNoDelay(true)
+ .setSoTimeout(connectionTimeoutMilliseconds)
+ .build())
+ .setDefaultCredentialsProvider(credentialsProvider)
+ .setSSLSocketFactory(myFactory)
+ .setRequestExecutor(new HttpRequestExecutor(connectionTimeoutMilliseconds))
+ .setRedirectStrategy(new DefaultRedirectStrategy())
+ .build();
registerGlobalHandle(connectionLimit);
try