Author: kwright
Date: Wed Mar 19 15:19:34 2014
New Revision: 1579256
URL: http://svn.apache.org/r1579256
Log:
Part of CONNECTORS-911. Remove HttpClient deprecation warnings for wiki
connector.
Modified:
manifoldcf/trunk/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
Modified:
manifoldcf/trunk/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java?rev=1579256&r1=1579255&r2=1579256&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
(original)
+++
manifoldcf/trunk/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
Wed Mar 19 15:19:34 2014
@@ -36,10 +36,16 @@ import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.auth.NTCredentials;
-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.impl.client.DefaultHttpClient;
+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.client.methods.HttpRequestBase;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
@@ -47,22 +53,14 @@ import org.apache.http.HttpResponse;
import org.apache.http.HttpHost;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.http.message.BasicHeader;
-import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.protocol.HttpContext;
-import org.apache.http.conn.params.ConnRoutePNames;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.conn.ConnectTimeoutException;
@@ -130,7 +128,7 @@ public class WikiConnector extends org.a
protected String proxyPassword = null;
/** Connection management */
- protected ClientConnectionManager connectionManager = null;
+ protected HttpClientConnectionManager connectionManager = null;
protected HttpClient httpClient = null;
@@ -227,48 +225,31 @@ public class WikiConnector extends org.a
int connectionTimeout = 300000;
javax.net.ssl.SSLSocketFactory httpsSocketFactory =
KeystoreManagerFactory.getTrustingSecureSocketFactory();
- SSLSocketFactory myFactory = new SSLSocketFactory(new
InterruptibleSocketFactory(httpsSocketFactory,connectionTimeout),
- new AllowAllHostnameVerifier());
- Scheme myHttpsProtocol = new Scheme("https", 443, myFactory);
+ SSLConnectionSocketFactory myFactory = new
SSLConnectionSocketFactory(new
InterruptibleSocketFactory(httpsSocketFactory,connectionTimeout),
+ SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
// Set up connection manager
- PoolingClientConnectionManager localConnectionManager = new
PoolingClientConnectionManager();
- localConnectionManager.setMaxTotal(1);
- connectionManager = localConnectionManager;
- // Set up protocol registry
- connectionManager.getSchemeRegistry().register(myHttpsProtocol);
+ connectionManager = new PoolingHttpClientConnectionManager();
- BasicHttpParams params = new BasicHttpParams();
- params.setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE,true);
-
params.setIntParameter(CoreProtocolPNames.WAIT_FOR_CONTINUE,socketTimeout);
- params.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
-
params.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
- params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,socketTimeout);
-
params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,connectionTimeout);
- 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;
- }
-
- });
+ CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
if (accessUser != null && accessUser.length() > 0 && accessPassword !=
null)
{
Credentials credentials = new UsernamePasswordCredentials(accessUser,
accessPassword);
if (accessRealm != null && accessRealm.length() > 0)
- localHttpClient.getCredentialsProvider().setCredentials(new
AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, accessRealm), credentials);
+ credentialsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST,
AuthScope.ANY_PORT, accessRealm), credentials);
else
-
localHttpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,
credentials);
+ credentialsProvider.setCredentials(AuthScope.ANY, credentials);
}
+ RequestConfig.Builder requestBuilder = RequestConfig.custom()
+ .setCircularRedirectsAllowed(true)
+ .setSocketTimeout(socketTimeout)
+ .setStaleConnectionCheckEnabled(true)
+ .setExpectContinueEnabled(true)
+ .setConnectTimeout(connectionTimeout)
+ .setConnectionRequestTimeout(socketTimeout);
+
// If there's a proxy, set that too.
if (proxyHost != null && proxyHost.length() > 0)
{
@@ -296,17 +277,52 @@ public class WikiConnector extends org.a
if (proxyDomain == null)
proxyDomain = "";
- localHttpClient.getCredentialsProvider().setCredentials(
+ credentialsProvider.setCredentials(
new AuthScope(proxyHost, proxyPortInt),
new NTCredentials(proxyUsername, proxyPassword, currentHost,
proxyDomain));
}
HttpHost proxy = new HttpHost(proxyHost, proxyPortInt);
-
-
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(socketTimeout)
+ .build())
+ .setDefaultCredentialsProvider(credentialsProvider)
+ .setSSLSocketFactory(myFactory)
+ .setRequestExecutor(new HttpRequestExecutor(socketTimeout))
+ .build();
+
+ /*
+ BasicHttpParams params = new BasicHttpParams();
+ params.setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE,true);
+
params.setIntParameter(CoreProtocolPNames.WAIT_FOR_CONTINUE,socketTimeout);
+ params.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
+
params.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
+ params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,socketTimeout);
+
params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,connectionTimeout);
+ 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;
+ }
+
+ });
+ */
loginToAPI();