aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.http.apache/src
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@gmail.com>2016-09-20 21:19:44 +0200
committerMatthias Sohn <matthias.sohn@sap.com>2016-09-22 09:46:23 +0200
commitcf5b40fb8199bce7cc4320fea6a528216a410de6 (patch)
treec1327c706bae6ce9361a6d737c0a56fe19d7d059 /org.eclipse.jgit.http.apache/src
parentb03be9a3ea82f57a495d39982ac0dc3f8a279369 (diff)
downloadjgit-cf5b40fb8199bce7cc4320fea6a528216a410de6.tar.gz
jgit-cf5b40fb8199bce7cc4320fea6a528216a410de6.zip
HttpClientConnection: Don't use deprecated HttpClient classes
- raise minimum version for HttpClient packages to 4.3 since some of the used classes aren't available in older versions - recompute OSGi uses clauses Change-Id: I8f0bff1433762561e02f7439db27a6a9e846c290 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.http.apache/src')
-rw-r--r--org.eclipse.jgit.http.apache/src/org/eclipse/jgit/transport/http/apache/HttpClientConnection.java69
1 files changed, 39 insertions, 30 deletions
diff --git a/org.eclipse.jgit.http.apache/src/org/eclipse/jgit/transport/http/apache/HttpClientConnection.java b/org.eclipse.jgit.http.apache/src/org/eclipse/jgit/transport/http/apache/HttpClientConnection.java
index 2d9d17a890..6543bf6610 100644
--- a/org.eclipse.jgit.http.apache/src/org/eclipse/jgit/transport/http/apache/HttpClientConnection.java
+++ b/org.eclipse.jgit.http.apache/src/org/eclipse/jgit/transport/http/apache/HttpClientConnection.java
@@ -80,19 +80,20 @@ import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.params.ClientPNames;
-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.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.X509HostnameVerifier;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.HttpParams;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.eclipse.jgit.transport.http.HttpConnection;
import org.eclipse.jgit.transport.http.apache.internal.HttpApacheText;
import org.eclipse.jgit.util.TemporaryBuffer;
@@ -131,29 +132,37 @@ public class HttpClientConnection implements HttpConnection {
SSLContext ctx;
private HttpClient getClient() {
- if (client == null)
- client = new DefaultHttpClient();
- HttpParams params = client.getParams();
- if (proxy != null && !Proxy.NO_PROXY.equals(proxy)) {
- isUsingProxy = true;
- InetSocketAddress adr = (InetSocketAddress) proxy.address();
- params.setParameter(ConnRoutePNames.DEFAULT_PROXY,
- new HttpHost(adr.getHostName(), adr.getPort()));
- }
- if (timeout != null)
- params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
- timeout.intValue());
- if (readTimeout != null)
- params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,
- readTimeout.intValue());
- if (followRedirects != null)
- params.setBooleanParameter(ClientPNames.HANDLE_REDIRECTS,
- followRedirects.booleanValue());
- if (hostnameverifier != null) {
- SSLSocketFactory sf;
- sf = new SSLSocketFactory(getSSLContext(), hostnameverifier);
- Scheme https = new Scheme("https", 443, sf); //$NON-NLS-1$
- client.getConnectionManager().getSchemeRegistry().register(https);
+ if (client == null) {
+ HttpClientBuilder clientBuilder = HttpClients.custom();
+ RequestConfig.Builder configBuilder = RequestConfig.custom();
+ if (proxy != null && !Proxy.NO_PROXY.equals(proxy)) {
+ isUsingProxy = true;
+ InetSocketAddress adr = (InetSocketAddress) proxy.address();
+ clientBuilder.setProxy(
+ new HttpHost(adr.getHostName(), adr.getPort()));
+ }
+ if (timeout != null) {
+ configBuilder.setConnectTimeout(timeout.intValue());
+ }
+ if (readTimeout != null) {
+ configBuilder.setSocketTimeout(readTimeout.intValue());
+ }
+ if (followRedirects != null) {
+ configBuilder
+ .setRedirectsEnabled(followRedirects.booleanValue());
+ }
+ if (hostnameverifier != null) {
+ SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(
+ getSSLContext(), hostnameverifier);
+ clientBuilder.setSSLSocketFactory(sslConnectionFactory);
+ Registry<ConnectionSocketFactory> registry = RegistryBuilder
+ .<ConnectionSocketFactory> create()
+ .register("https", sslConnectionFactory).build();
+ clientBuilder.setConnectionManager(
+ new BasicHttpClientConnectionManager(registry));
+ }
+ clientBuilder.setDefaultRequestConfig(configBuilder.build());
+ client = clientBuilder.build();
}
return client;