RESOLVED - bug 167362: consume org.apache.httpclient dependency from Orbit
https://bugs.eclipse.org/bugs/show_bug.cgi?id=167362
diff --git a/org.eclipse.mylyn.commons.net/src/org/eclipse/mylyn/web/core/WebClientUtil.java b/org.eclipse.mylyn.commons.net/src/org/eclipse/mylyn/web/core/WebClientUtil.java
index 7838392..f3b2442 100644
--- a/org.eclipse.mylyn.commons.net/src/org/eclipse/mylyn/web/core/WebClientUtil.java
+++ b/org.eclipse.mylyn.commons.net/src/org/eclipse/mylyn/web/core/WebClientUtil.java
@@ -281,7 +281,7 @@
 	public static void setupHttpClient(HttpClient client, Proxy proxySettings, String repositoryUrl, String user,
 			String password) {
 
-		setupHttpClientParams(client, null);
+		configureHttpClient(client, null);
 
 		if (proxySettings != null && !Proxy.NO_PROXY.equals(proxySettings)
 		/* && !WebClientUtil.repositoryUsesHttps(repositoryUrl) */
@@ -496,7 +496,7 @@
 		String host = WebClientUtil.getDomain(url);
 		int port = WebClientUtil.getPort(url);
 
-		setupHttpClientParams(client, userAgent);
+		configureHttpClient(client, userAgent);
 		setupHttpClientProxy(client, client.getHostConfiguration(), location);
 
 		AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.HTTP);
@@ -519,9 +519,21 @@
 
 	/**
 	 * @since 2.3
+	 * @deprecated use {@link #createHostConfiguration(HttpClient, AbstractWebLocation, IProgressMonitor)} and
+	 *             {@link #configureHttpClient(HttpClient, String)}
 	 */
+	@Deprecated
 	public static HostConfiguration createHostConfiguration(HttpClient client, String userAgent,
 			AbstractWebLocation location, IProgressMonitor monitor) {
+		configureHttpClient(client, userAgent);
+		return createHostConfiguration(client, userAgent, location, monitor);
+	}
+
+	/**
+	 * @since 3.0
+	 */
+	public static HostConfiguration createHostConfiguration(HttpClient client, AbstractWebLocation location,
+			IProgressMonitor monitor) {
 		if (client == null || location == null) {
 			throw new IllegalArgumentException();
 		}
@@ -530,9 +542,9 @@
 		String host = WebClientUtil.getDomain(url);
 		int port = WebClientUtil.getPort(url);
 
-		HostConfiguration hostConfiguration = new CloneableHostConfiguration();
+		configureHttpClientConnectionManager(client);
 
-		setupHttpClientParams(client, userAgent);
+		HostConfiguration hostConfiguration = new CloneableHostConfiguration();
 		setupHttpClientProxy(client, hostConfiguration, location);
 
 		AuthenticationCredentials credentials = location.getCredentials(AuthenticationType.HTTP);
@@ -580,9 +592,18 @@
 		}
 	}
 
-	private static void setupHttpClientParams(HttpClient client, String userAgent) {
+	/**
+	 * @since 3.0
+	 */
+	public static void configureHttpClient(HttpClient client, String userAgent) {
 		client.getParams().setBooleanParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS, true);
 		client.getParams().setParameter(HttpMethodParams.USER_AGENT, getUserAgent(userAgent));
+		// API REVIEW consider setting this as the default
+		//client.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
+		configureHttpClientConnectionManager(client);
+	}
+
+	private static void configureHttpClientConnectionManager(HttpClient client) {
 		client.getHttpConnectionManager().getParams().setSoTimeout(WebClientUtil.SOCKET_TIMEOUT);
 		client.getHttpConnectionManager().getParams().setConnectionTimeout(WebClientUtil.CONNNECT_TIMEOUT);
 	}