hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r651810 - /httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
Date Sat, 26 Apr 2008 09:55:03 GMT
Author: olegk
Date: Sat Apr 26 02:55:02 2008
New Revision: 651810

URL: http://svn.apache.org/viewvc?rev=651810&view=rev
Log:
Updated release notes for HttpClient 4.0-alpha4 release

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=651810&r1=651809&r2=651810&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Sat Apr 26 02:55:02 2008
@@ -1,4 +1,26 @@
-Changes since 4.0 Alpha 3
+Release 4.0 Alpha 4
+-------------------
+
+ALPHA4 marks the completion of the overhaul of the connection management 
+code in HttpClient. All known shortcomings of the old HttpClient 3.x 
+codebase have been addressed.
+
+NTLM authentication remains the only missing major feature in the new 
+codeline that prevents us from moving awards the API freeze.
+
+There has been a number of important bug fixes since ALPHA3. All upstream 
+projects are encouraged to upgrade to the latest release.
+
+-------------------
+
+HttpClient 3.x features that have NOT yet been ported:
+-------------------
+
+* NTLM authentication scheme
+
+-------------------
+
+Changelog:
 -------------------
 
 * [HTTPCLIENT-763] Fixed problem with AbstractClientConnAdapter#abortConnection() 
@@ -28,10 +50,6 @@
   on exceptions.
   Contributed by Sam Berlin <sberlin at gmail.com>
 
-* [HTTPCLIENT-759] DefaultClientRequestDirector now releases connections back 
-  to the connection manager on exceptions.
-  Contributed by Sam Berlin <sberlin at gmail.com>
-
 * [HTTPCLIENT-758] Fixed the use of generics in AbstractHttpClient
   #removeRequestInterceptorByClass and #removeResponseInterceptorByClass
   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
@@ -43,646 +61,545 @@
   Bug ID: 4708535
   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
 
-Release 4.0 Alpha 3
--------------------
-
-ALPHA3 release brings another round of API refinements and improvements in 
-functionality. As of this release HttpClient requires Java 5 compatible 
-runtime environment and takes full advantage of generics and new concurrency
-primitives.     
-
-This release also introduces new default cookie policy that selects a cookie 
-specification depending on the format of cookies sent by the target host. 
-It is no longer necessary to know beforehand what kind of HTTP cookie support 
-the target host provides. HttpClient is now able to pick up either a lenient 
-or a strict cookie policy depending on the compliance level of the target host.
-
-Another notable improvement is a completely reworked support for multipart 
-entities based on Apache mime4j library.
-
--------------------
-
-HttpClient 3.x features that have NOT yet been ported:
--------------------
-
-* NTLM authentication scheme
-
--------------------
-
-Changelog:
--------------------
-
-* [HTTPCLIENT-742] common interface for HttpRoute and RouteTracker
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-741] Fixed concurrency issues in AbstractClientConnAdapter.
-  Contributed by Oleg Kalnichevski <olegk at apache.org>
-
-* [HTTPCLIENT-726] testcase for spurious wakeups in ThreadSafeClientConnManager
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-643] Automatic connect fail-over for multi-home remote servers.
-  Contributed by Oleg Kalnichevski <olegk at apache.org>
-
-* [HTTPCLIENT-735] unsetting of DEFAULT_PROXY and FORCED_ROUTE in hierarchies
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-723] route planner based on java.net.ProxySelector
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-740] don't start connection GC thread in pool constructor
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-736] route planners use SchemeRegistry instead of ConnManager
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-730] Fixed rewriting of URIs containing escaped characters
-  Contributed by Sam Berlin <sberlin at gmail.com> and 
-  Oleg Kalnichevski <olegk at apache.org>
- 
-* [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie 
-  specification depending on the format of the cookie(s).
-  Contributed by Oleg Kalnichevski <olegk at apache.org>
-
-* [HTTPCLIENT-729] Move HttpRoute and related classes to routing package.
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager.
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt().
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-716] Allow application-defined routes.
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-712] Improve HttpRoute API
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-711] Bad route computed for redirected requests
-  Contributed by Oleg Kalnichevski <olegk at apache.org>
-
-* [HTTPCLIENT-715] Remove RoutedRequest from API
-  Contributed by Roland Weber <rolandw at apache.org>
-
-* [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component.
-  Contributed by Oleg Kalnichevski <olegk at apache.org>
-
-* [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple 
-  Allow headers.
-  Contributed by Andrea Selva <selva.andre at gmail.com>
-
---------------------------------------
-
 HttpClient API changes (generated by JarDiff 0.2)
 --------------------------------------
 Class removed: 
-  public abstract org.apache.http.client.RoutedRequest extends java.lang.Object
+  public org.apache.http.client.methods.UrlEncodedFormEntity extends org.apache.http.entity.AbstractHttpEntity
 Class removed: 
-  public org.apache.http.client.RoutedRequest.Impl extends java.lang.Object implements org.apache.http.client.RoutedRequest
+  public org.apache.http.client.utils.URLUtils extends java.lang.Object
 Class removed: 
-  public org.apache.http.conn.BasicRouteDirector extends java.lang.Object implements org.apache.http.conn.HttpRouteDirector
+  public abstract org.apache.http.conn.LayeredSocketFactory extends java.lang.Object implements org.apache.http.conn.SocketFactory
 Class removed: 
-  public final org.apache.http.conn.HttpRoute extends java.lang.Object implements java.lang.Cloneable
+  public final org.apache.http.conn.PlainSocketFactory extends java.lang.Object implements org.apache.http.conn.SocketFactory
 Class removed: 
-  public abstract org.apache.http.conn.HttpRouteDirector extends java.lang.Object
+  public final org.apache.http.conn.Scheme extends java.lang.Object
 Class removed: 
-  public abstract org.apache.http.conn.HttpRoutePlanner extends java.lang.Object
+  public final org.apache.http.conn.SchemeRegistry extends java.lang.Object
 Class removed: 
-  public final org.apache.http.conn.RouteTracker extends java.lang.Object implements java.lang.Cloneable
+  public abstract org.apache.http.conn.SocketFactory extends java.lang.Object
 Class removed: 
-  public abstract org.apache.http.conn.ssl.HostnameVerifier extends java.lang.Object implements javax.net.ssl.HostnameVerifier
+  public org.apache.http.conn.util.SocketUtils extends java.lang.Object
 Class removed: 
-  public org.apache.http.impl.conn.tsccm.ConnPoolByRoute.WaitingThread extends java.lang.Object
+  public org.apache.http.impl.client.RoutedRequest.Impl extends java.lang.Object implements org.apache.http.impl.client.RoutedRequest
 Class added: 
-  public org.apache.http.client.methods.HttpDelete extends org.apache.http.client.methods.HttpRequestBase
+  public org.apache.http.auth.params.AuthParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public org.apache.http.conn.params.HttpRouteParams extends java.lang.Object
+  public org.apache.http.client.entity.UrlEncodedFormEntity extends org.apache.http.entity.StringEntity
 Class added: 
-  public org.apache.http.conn.routing.BasicRouteDirector extends java.lang.Object implements org.apache.http.conn.routing.HttpRouteDirector
+  public org.apache.http.client.params.ClientParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public final org.apache.http.conn.routing.HttpRoute extends java.lang.Object implements org.apache.http.conn.routing.RouteInfo, java.lang.Cloneable
+  public org.apache.http.client.protocol.ClientContextConfigurer extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.conn.routing.HttpRouteDirector extends java.lang.Object
+  public org.apache.http.client.utils.URIUtils extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.conn.routing.HttpRoutePlanner extends java.lang.Object
+  public org.apache.http.client.utils.URLEncodedUtils extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.conn.routing.RouteInfo extends java.lang.Object
+  public abstract org.apache.http.conn.ClientConnectionRequest extends java.lang.Object
 Class added: 
-  public final org.apache.http.conn.routing.RouteInfo.LayerType extends java.lang.Enum
+  public final org.apache.http.conn.MultihomePlainSocketFactory extends java.lang.Object implements org.apache.http.conn.scheme.SocketFactory
 Class added: 
-  public final org.apache.http.conn.routing.RouteInfo.TunnelType extends java.lang.Enum
+  public org.apache.http.conn.params.ConnConnectionParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public final org.apache.http.conn.routing.RouteTracker extends java.lang.Object implements org.apache.http.conn.routing.RouteInfo, java.lang.Cloneable
+  public org.apache.http.conn.params.ConnManagerParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public abstract org.apache.http.conn.ssl.X509HostnameVerifier extends java.lang.Object implements javax.net.ssl.HostnameVerifier
+  public abstract org.apache.http.conn.params.ConnPerRoute extends java.lang.Object
 Class added: 
-  public org.apache.http.conn.util.SocketUtils extends java.lang.Object
+  public final org.apache.http.conn.params.ConnPerRouteBean extends java.lang.Object implements org.apache.http.conn.params.ConnPerRoute
 Class added: 
-  public org.apache.http.impl.client.RedirectLocations extends java.lang.Object
+  public org.apache.http.conn.params.ConnRouteParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public abstract org.apache.http.impl.client.RoutedRequest extends java.lang.Object
+  public abstract org.apache.http.conn.scheme.LayeredSocketFactory extends java.lang.Object implements org.apache.http.conn.scheme.SocketFactory
 Class added: 
-  public org.apache.http.impl.client.RoutedRequest.Impl extends java.lang.Object implements org.apache.http.impl.client.RoutedRequest
+  public final org.apache.http.conn.scheme.PlainSocketFactory extends java.lang.Object implements org.apache.http.conn.scheme.SocketFactory
+Class added: 
+  public final org.apache.http.conn.scheme.Scheme extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.conn.ProxySelectorRoutePlanner extends java.lang.Object implements org.apache.http.conn.routing.HttpRoutePlanner
+  public final org.apache.http.conn.scheme.SchemeRegistry extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.conn.tsccm.WaitingThread extends java.lang.Object
+  public abstract org.apache.http.conn.scheme.SocketFactory extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.cookie.BestMatchSpec extends java.lang.Object implements org.apache.http.cookie.CookieSpec
+  public org.apache.http.cookie.params.CookieSpecParamBean extends org.apache.http.params.HttpAbstractParamBean
 Class added: 
-  public org.apache.http.impl.cookie.BestMatchSpecFactory extends java.lang.Object implements org.apache.http.cookie.CookieSpecFactory
+  public org.apache.http.impl.conn.tsccm.Aborter extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.cookie.NetscapeDraftHeaderParser extends java.lang.Object
+  public abstract org.apache.http.impl.conn.tsccm.PoolEntryRequest extends java.lang.Object
+Class added: 
+  public org.apache.http.impl.conn.tsccm.WaitingThreadAborter extends java.lang.Object
+Class changed: org.apache.http.auth.AuthSchemeRegistry
+  Methods added:
+    public synchronized void setItems(java.util.Map);
+
 Class changed: org.apache.http.client.ClientRequestDirector
   Methods removed:
-    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+    public abstract org.apache.http.conn.ManagedClientConnection getConnection();
 
-  Methods added:
+  Method changed:
+  old:
     public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
 
-Class changed: org.apache.http.client.CookieStore
-  Methods removed:
-    public abstract org.apache.http.cookie.Cookie[] getCookies();
-
-  Methods added:
-    public abstract java.util.List getCookies();
+  new:
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
 
 Class changed: org.apache.http.client.HttpClient
-  Methods removed:
-    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-
-  Methods added:
+  Method changed:
+  old:
     public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+
+  new:
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException;
+
+  Method changed:
+  old:
     public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
 
-Class changed: org.apache.http.client.methods.HttpOptions
+  new:
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+
   Method changed:
   old:
-    public java.util.Set getAllowedMethods(org.apache.http.HttpResponse) throws org.apache.http.ParseException;
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
 
   new:
-    public java.util.Set getAllowedMethods(org.apache.http.HttpResponse);
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException;
 
-Class changed: org.apache.http.client.params.CookiePolicy
-  Fields added:
-    public final static java.lang.String BEST_MATCH = best-match;
+  Method changed:
+  old:
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+
+  new:
+    public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
 
-Class changed: org.apache.http.client.utils.URLUtils
+Class changed: org.apache.http.client.methods.AbortableHttpRequest
   Methods added:
-    public static java.net.URI createURI(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String) throws java.net.URISyntaxException;
-    public static java.net.URI rewriteURI(java.net.URI, org.apache.http.HttpHost) throws java.net.URISyntaxException;
-    public static java.net.URI rewriteURI(java.net.URI, org.apache.http.HttpHost, boolean) throws java.net.URISyntaxException;
+    public abstract void setConnectionRequest(org.apache.http.conn.ClientConnectionRequest) throws java.io.IOException;
+
+  Method changed:
+  old:
+    public abstract void setReleaseTrigger(org.apache.http.conn.ConnectionReleaseTrigger);
+
+  new:
+    public abstract void setReleaseTrigger(org.apache.http.conn.ConnectionReleaseTrigger) throws java.io.IOException;
 
 Class changed: org.apache.http.conn.ClientConnectionManager
   Methods removed:
-    public abstract void closeIdleConnections(long);
-    public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute) throws java.lang.InterruptedException;
-    public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-
-  Methods added:
-    public abstract void closeIdleConnections(long, java.util.concurrent.TimeUnit);
     public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute) throws java.lang.InterruptedException;
     public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    public abstract org.apache.http.params.HttpParams getParams();
+    public abstract org.apache.http.conn.SchemeRegistry getSchemeRegistry();
+
+  Methods added:
+    public abstract org.apache.http.conn.scheme.SchemeRegistry getSchemeRegistry();
+    public abstract org.apache.http.conn.ClientConnectionRequest requestConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
+
+Class changed: org.apache.http.conn.ClientConnectionManagerFactory
+  Methods removed:
+    public abstract org.apache.http.conn.ClientConnectionManager newInstance(org.apache.http.params.HttpParams, org.apache.http.conn.SchemeRegistry);
+
+  Methods added:
+    public abstract org.apache.http.conn.ClientConnectionManager newInstance(org.apache.http.params.HttpParams, org.apache.http.conn.scheme.SchemeRegistry);
 
 Class changed: org.apache.http.conn.ManagedClientConnection
+  Methods added:
+    public abstract java.lang.Object getState();
+    public abstract void setState(java.lang.Object);
+
+Class changed: org.apache.http.conn.OperatedClientConnection
   Methods removed:
-    public abstract org.apache.http.conn.HttpRoute getRoute();
-    public abstract void open(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public abstract void announce(java.net.Socket);
+    public abstract void open(java.net.Socket, org.apache.http.HttpHost, boolean, org.apache.http.params.HttpParams) throws java.io.IOException;
 
   Methods added:
-    public abstract org.apache.http.conn.routing.HttpRoute getRoute();
-    public abstract void open(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public abstract void openCompleted(boolean, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public abstract void opening(java.net.Socket, org.apache.http.HttpHost) throws java.io.IOException;
+
+Class changed: org.apache.http.conn.params.ConnManagerPNames
+  Fields removed:
+    public final static java.lang.String MAX_HOST_CONNECTIONS = http.connection-manager.max-per-host;
 
-Class changed: org.apache.http.conn.params.ConnRoutePNames
   Fields added:
-    public final static java.lang.String FORCED_ROUTE = http.route.forced-route;
-    public final static java.lang.String LOCAL_ADDRESS = http.route.local-address;
+    public final static java.lang.String MAX_CONNECTIONS_PER_ROUTE = http.conn-manager.max-per-route;
 
   Field changed:
   old:
-    public final static java.lang.String DEFAULT_PROXY = http.default-proxy;
+    public final static java.lang.String MAX_TOTAL_CONNECTIONS = http.connection-manager.max-total;
 
   new:
-    public final static java.lang.String DEFAULT_PROXY = http.route.default-proxy;
-
-Class changed: org.apache.http.conn.params.HttpConnParams
-  Fields removed:
-    public final static java.lang.String DEFAULT_PROXY = http.default-proxy;
+    public final static java.lang.String MAX_TOTAL_CONNECTIONS = http.conn-manager.max-total;
 
 Class changed: org.apache.http.conn.params.HttpConnectionManagerParams
   Methods removed:
-    public static int getMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.HttpRoute);
-    public static void setMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.HttpRoute, int);
-
-  Methods added:
+    public static int getDefaultMaxConnectionsPerHost(org.apache.http.params.HttpParams);
     public static int getMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.routing.HttpRoute);
+    public static void setDefaultMaxConnectionsPerHost(org.apache.http.params.HttpParams, int);
     public static void setMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.routing.HttpRoute, int);
 
-Class changed: org.apache.http.conn.ssl.AbstractVerifier
   Methods added:
-    public AbstractVerifier();
+    public static org.apache.http.conn.params.ConnPerRoute getMaxConnectionsPerRoute(org.apache.http.params.HttpParams);
+    public static void setMaxConnectionsPerRoute(org.apache.http.params.HttpParams, org.apache.http.conn.params.ConnPerRoute);
+
+  Fields removed:
+    public final static int DEFAULT_MAX_HOST_CONNECTIONS = 2;
 
   Class descriptor changed:
   old:
-    public abstract org.apache.http.conn.ssl.AbstractVerifier extends java.lang.Object implements org.apache.http.conn.ssl.HostnameVerifier
+    public final org.apache.http.conn.params.HttpConnectionManagerParams extends java.lang.Object
   new:
-    public abstract org.apache.http.conn.ssl.AbstractVerifier extends java.lang.Object implements org.apache.http.conn.ssl.X509HostnameVerifier
+    public final org.apache.http.conn.params.HttpConnectionManagerParams extends java.lang.Object implements org.apache.http.conn.params.ConnManagerPNames
 Class changed: org.apache.http.conn.ssl.SSLSocketFactory
+  Class descriptor changed:
+  old:
+    public org.apache.http.conn.ssl.SSLSocketFactory extends java.lang.Object implements org.apache.http.conn.LayeredSocketFactory
+  new:
+    public org.apache.http.conn.ssl.SSLSocketFactory extends java.lang.Object implements org.apache.http.conn.scheme.LayeredSocketFactory
+Class changed: org.apache.http.conn.util.InetAddressUtils
   Methods removed:
-    public org.apache.http.conn.ssl.HostnameVerifier getHostnameVerifier();
-    public void setHostnameVerifier(org.apache.http.conn.ssl.HostnameVerifier);
+    public InetAddressUtils();
 
+Class changed: org.apache.http.cookie.CookieSpecRegistry
   Methods added:
-    public org.apache.http.conn.ssl.X509HostnameVerifier getHostnameVerifier();
-    public void setHostnameVerifier(org.apache.http.conn.ssl.X509HostnameVerifier);
-
-Class changed: org.apache.http.cookie.CookieIdentityComparator
-  Methods removed:
-    public int compare(java.lang.Object, java.lang.Object);
+    public synchronized void setItems(java.util.Map);
 
+Class changed: org.apache.http.impl.client.AbstractHttpClient
   Methods added:
-    public int compare(org.apache.http.cookie.Cookie, org.apache.http.cookie.Cookie);
+    protected org.apache.http.client.ClientRequestDirector createClientRequestDirector(org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.conn.routing.HttpRoutePlanner, org.apache.http.protocol.HttpProcessor, org.apache.http.client.HttpRequestRetryHandler, org.apache.http.client.RedirectHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.params.HttpParams);
 
-  Class descriptor changed:
+  Method changed:
   old:
-    public org.apache.http.cookie.CookieIdentityComparator extends java.lang.Object implements java.util.Comparator
+    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+
   new:
-    public org.apache.http.cookie.CookieIdentityComparator extends java.lang.Object implements java.io.Serializable, java.util.Comparator
-Class changed: org.apache.http.cookie.CookiePathComparator
-  Methods removed:
-    public int compare(java.lang.Object, java.lang.Object);
+    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException;
 
-  Methods added:
-    public int compare(org.apache.http.cookie.Cookie, org.apache.http.cookie.Cookie);
+  Method changed:
+  old:
+    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
 
-  Class descriptor changed:
+  new:
+    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+
+  Method changed:
   old:
-    public org.apache.http.cookie.CookiePathComparator extends java.lang.Object implements java.util.Comparator
+    public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+
   new:
-    public org.apache.http.cookie.CookiePathComparator extends java.lang.Object implements java.io.Serializable, java.util.Comparator
-Class changed: org.apache.http.cookie.CookieSpec
-  Methods removed:
-    public abstract org.apache.http.Header[] formatCookies(org.apache.http.cookie.Cookie[]);
-    public abstract org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+    public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException;
 
-  Methods added:
-    public abstract java.util.List formatCookies(java.util.List);
-    public abstract java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+  Method changed:
+  old:
+    public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
 
-Class changed: org.apache.http.impl.client.AbstractHttpClient
+  new:
+    public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+
+Class changed: org.apache.http.impl.client.DefaultClientRequestDirector
   Methods removed:
-    protected abstract org.apache.http.conn.HttpRoutePlanner createHttpRoutePlanner();
-    protected abstract org.apache.http.client.RoutedRequest determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
-    public org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    public final org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    public final synchronized org.apache.http.conn.HttpRoutePlanner getRoutePlanner();
-    public synchronized void setInterceptors(java.util.List);
-    public synchronized void setRoutePlanner(org.apache.http.conn.HttpRoutePlanner);
+    protected org.apache.http.conn.ManagedClientConnection allocateConnection(org.apache.http.conn.routing.HttpRoute, long) throws org.apache.http.HttpException, org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    protected org.apache.http.impl.client.RoutedRequest determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
+    public org.apache.http.conn.ManagedClientConnection getConnection();
+    protected org.apache.http.impl.client.RoutedRequest handleResponse(org.apache.http.impl.client.RoutedRequest, org.apache.http.HttpRequest, org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
 
   Methods added:
-    protected abstract org.apache.http.conn.routing.HttpRoutePlanner createHttpRoutePlanner();
-    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    public final synchronized org.apache.http.conn.routing.HttpRoutePlanner getRoutePlanner();
-    public synchronized void setRoutePlanner(org.apache.http.conn.routing.HttpRoutePlanner);
+    protected org.apache.http.conn.routing.HttpRoute determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
+    protected org.apache.http.impl.client.RoutedRequest handleResponse(org.apache.http.impl.client.RoutedRequest, org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
 
-  Class descriptor changed:
+  Method changed:
   old:
-    public abstract org.apache.http.impl.client.AbstractHttpClient extends java.lang.Object implements org.apache.http.client.HttpClient, org.apache.http.protocol.HttpRequestInterceptorList, org.apache.http.protocol.HttpResponseInterceptorList
+    public org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
+
   new:
-    public abstract org.apache.http.impl.client.AbstractHttpClient extends java.lang.Object implements org.apache.http.client.HttpClient
-Class changed: org.apache.http.impl.client.BasicCookieStore
+    public org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+
+Class changed: org.apache.http.impl.client.RoutedRequest
   Methods removed:
-    public synchronized org.apache.http.cookie.Cookie[] getCookies();
+    public abstract org.apache.http.HttpRequest getRequest();
 
   Methods added:
-    public synchronized java.util.List getCookies();
+    public RoutedRequest(org.apache.http.impl.client.RequestWrapper, org.apache.http.conn.routing.HttpRoute);
+    public final org.apache.http.impl.client.RequestWrapper getRequest();
 
-Class changed: org.apache.http.impl.client.ClientParamsStack
-  Methods removed:
-    public boolean isParameterSet(java.lang.String);
+  Fields added:
+    protected final org.apache.http.impl.client.RequestWrapper request;
+    protected final org.apache.http.conn.routing.HttpRoute route;
 
-  Methods added:
-    public boolean removeParameter(java.lang.String);
+  Class descriptor changed:
+  old:
+    public abstract org.apache.http.impl.client.RoutedRequest extends java.lang.Object
+  new:
+    public org.apache.http.impl.client.RoutedRequest extends java.lang.Object
+  Method changed:
+  old:
+    public abstract org.apache.http.conn.routing.HttpRoute getRoute();
 
-Class changed: org.apache.http.impl.client.DefaultClientRequestDirector
+  new:
+    public final org.apache.http.conn.routing.HttpRoute getRoute();
+
+Class changed: org.apache.http.impl.conn.AbstractPoolEntry
   Methods removed:
-    public DefaultClientRequestDirector(org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.protocol.HttpProcessor, org.apache.http.client.HttpRequestRetryHandler, org.apache.http.client.RedirectHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.params.HttpParams);
-    protected org.apache.http.conn.ManagedClientConnection allocateConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.HttpException, org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected org.apache.http.HttpRequest createConnectRequest(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext);
-    protected boolean createTunnelToProxy(org.apache.http.conn.HttpRoute, int, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    protected boolean createTunnelToTarget(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    protected void establishRoute(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    public org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    protected org.apache.http.client.RoutedRequest handleResponse(org.apache.http.client.RoutedRequest, org.apache.http.HttpRequest, org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+    protected AbstractPoolEntry(org.apache.http.conn.OperatedClientConnection, org.apache.http.conn.routing.HttpRoute);
+    protected abstract org.apache.http.conn.ClientConnectionOperator getOperator();
 
   Methods added:
-    public DefaultClientRequestDirector(org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.conn.routing.HttpRoutePlanner, org.apache.http.protocol.HttpProcessor, org.apache.http.client.HttpRequestRetryHandler, org.apache.http.client.RedirectHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.params.HttpParams);
-    protected org.apache.http.conn.ManagedClientConnection allocateConnection(org.apache.http.conn.routing.HttpRoute, long) throws org.apache.http.HttpException, org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected org.apache.http.HttpRequest createConnectRequest(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext);
-    protected boolean createTunnelToProxy(org.apache.http.conn.routing.HttpRoute, int, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    protected boolean createTunnelToTarget(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    protected org.apache.http.impl.client.RoutedRequest determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
-    protected void establishRoute(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    public org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException;
-    protected org.apache.http.impl.client.RoutedRequest handleResponse(org.apache.http.impl.client.RoutedRequest, org.apache.http.HttpRequest, org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+    protected AbstractPoolEntry(org.apache.http.conn.ClientConnectionOperator, org.apache.http.conn.routing.HttpRoute);
+    public java.lang.Object getState();
+    public void setState(java.lang.Object);
+
+  Fields removed:
+    protected org.apache.http.conn.routing.HttpRoute plannedRoute;
 
   Fields added:
-    protected final org.apache.http.conn.routing.HttpRoutePlanner routePlanner;
+    protected final org.apache.http.conn.ClientConnectionOperator connOperator;
+    protected volatile org.apache.http.conn.routing.HttpRoute route;
+    protected volatile java.lang.Object state;
 
-Class changed: org.apache.http.impl.client.DefaultHttpClient
-  Methods removed:
-    protected org.apache.http.conn.HttpRoutePlanner createHttpRoutePlanner();
-    protected org.apache.http.client.RoutedRequest determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
+  Field changed:
+  old:
+    protected org.apache.http.conn.OperatedClientConnection connection;
 
-  Methods added:
-    protected org.apache.http.conn.routing.HttpRoutePlanner createHttpRoutePlanner();
+  new:
+    protected volatile org.apache.http.conn.OperatedClientConnection connection;
 
-Class changed: org.apache.http.impl.conn.AbstractClientConnAdapter
-  Methods removed:
-    protected final void assertWrappedConn();
+  Field changed:
+  old:
+    protected org.apache.http.conn.routing.RouteTracker tracker;
+
+  new:
+    protected volatile org.apache.http.conn.routing.RouteTracker tracker;
 
+Class changed: org.apache.http.impl.conn.AbstractPooledConnAdapter
   Methods added:
-    protected final void assertNotAborted() throws java.io.InterruptedIOException;
-    protected final void assertValid(org.apache.http.conn.OperatedClientConnection);
-    protected void detach();
-    protected org.apache.http.conn.ClientConnectionManager getManager();
-    protected org.apache.http.conn.OperatedClientConnection getWrappedConnection();
+    public java.lang.Object getState();
+    public void setState(java.lang.Object);
 
-  Fields removed:
-    protected org.apache.http.conn.ClientConnectionManager connManager;
-    protected boolean markedReusable;
-    protected org.apache.http.conn.OperatedClientConnection wrappedConnection;
+  Field changed:
+  old:
+    protected org.apache.http.impl.conn.AbstractPoolEntry poolEntry;
 
-Class changed: org.apache.http.impl.conn.AbstractPoolEntry
+  new:
+    protected volatile org.apache.http.impl.conn.AbstractPoolEntry poolEntry;
+
+Class changed: org.apache.http.impl.conn.DefaultClientConnection
   Methods removed:
-    protected AbstractPoolEntry(org.apache.http.conn.OperatedClientConnection, org.apache.http.conn.HttpRoute);
-    public void open(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public void announce(java.net.Socket);
+    public void open(java.net.Socket, org.apache.http.HttpHost, boolean, org.apache.http.params.HttpParams) throws java.io.IOException;
 
   Methods added:
-    protected AbstractPoolEntry(org.apache.http.conn.OperatedClientConnection, org.apache.http.conn.routing.HttpRoute);
-    public void open(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public void openCompleted(boolean, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public void opening(java.net.Socket, org.apache.http.HttpHost);
 
-Class changed: org.apache.http.impl.conn.AbstractPooledConnAdapter
+Class changed: org.apache.http.impl.conn.DefaultClientConnectionOperator
   Methods removed:
-    public org.apache.http.conn.HttpRoute getRoute();
-    public void open(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public DefaultClientConnectionOperator(org.apache.http.conn.SchemeRegistry);
 
   Methods added:
-    public org.apache.http.conn.routing.HttpRoute getRoute();
-    public void open(org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public DefaultClientConnectionOperator(org.apache.http.conn.scheme.SchemeRegistry);
 
-  Class descriptor changed:
-  old:
-    public abstract org.apache.http.impl.conn.AbstractPooledConnAdapter extends org.apache.http.impl.conn.AbstractClientConnAdapter implements org.apache.http.conn.ManagedClientConnection
-  new:
-    public abstract org.apache.http.impl.conn.AbstractPooledConnAdapter extends org.apache.http.impl.conn.AbstractClientConnAdapter
 Class changed: org.apache.http.impl.conn.DefaultHttpRoutePlanner
   Methods removed:
-    public DefaultHttpRoutePlanner(org.apache.http.conn.ClientConnectionManager);
-    public org.apache.http.conn.HttpRoute determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
-    public void setConnectionManager(org.apache.http.conn.ClientConnectionManager);
-
-  Methods added:
     public DefaultHttpRoutePlanner(org.apache.http.conn.SchemeRegistry);
-    public org.apache.http.conn.routing.HttpRoute determineRoute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException;
 
-  Fields added:
-    protected org.apache.http.conn.SchemeRegistry schemeRegistry;
+  Methods added:
+    public DefaultHttpRoutePlanner(org.apache.http.conn.scheme.SchemeRegistry);
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.impl.conn.DefaultHttpRoutePlanner extends java.lang.Object implements org.apache.http.conn.HttpRoutePlanner
-  new:
-    public org.apache.http.impl.conn.DefaultHttpRoutePlanner extends java.lang.Object implements org.apache.http.conn.routing.HttpRoutePlanner
-Class changed: org.apache.http.impl.conn.SingleClientConnManager
+Class changed: org.apache.http.impl.conn.ProxySelectorRoutePlanner
   Methods removed:
-    public void closeIdleConnections(long);
-    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute);
-    public final org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute, long);
+    public ProxySelectorRoutePlanner(org.apache.http.conn.SchemeRegistry, java.net.ProxySelector);
 
   Methods added:
-    public void closeIdleConnections(long, java.util.concurrent.TimeUnit);
+    public ProxySelectorRoutePlanner(org.apache.http.conn.scheme.SchemeRegistry, java.net.ProxySelector);
+
+Class changed: org.apache.http.impl.conn.SingleClientConnManager
+  Methods removed:
+    public SingleClientConnManager(org.apache.http.params.HttpParams, org.apache.http.conn.SchemeRegistry);
+    protected org.apache.http.conn.ClientConnectionOperator createConnectionOperator(org.apache.http.conn.SchemeRegistry);
     public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute);
     public final org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit);
+    public org.apache.http.params.HttpParams getParams();
+    public org.apache.http.conn.SchemeRegistry getSchemeRegistry();
+
+  Methods added:
+    public SingleClientConnManager(org.apache.http.params.HttpParams, org.apache.http.conn.scheme.SchemeRegistry);
+    protected org.apache.http.conn.ClientConnectionOperator createConnectionOperator(org.apache.http.conn.scheme.SchemeRegistry);
+    protected void finalize() throws java.lang.Throwable;
+    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
+    public org.apache.http.conn.scheme.SchemeRegistry getSchemeRegistry();
+    public final org.apache.http.conn.ClientConnectionRequest requestConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
 
-Class changed: org.apache.http.impl.conn.SingleClientConnManager.ConnAdapter
+  Fields removed:
+    protected org.apache.http.params.HttpParams params;
+
+Class changed: org.apache.http.impl.conn.SingleClientConnManager.PoolEntry
   Methods removed:
-    protected SingleClientConnManager.ConnAdapter(org.apache.http.impl.conn.SingleClientConnManager, org.apache.http.impl.conn.SingleClientConnManager.PoolEntry, org.apache.http.conn.HttpRoute);
+    protected SingleClientConnManager.PoolEntry(org.apache.http.impl.conn.SingleClientConnManager, org.apache.http.conn.OperatedClientConnection);
+    protected org.apache.http.conn.ClientConnectionOperator getOperator();
 
   Methods added:
-    protected SingleClientConnManager.ConnAdapter(org.apache.http.impl.conn.SingleClientConnManager, org.apache.http.impl.conn.SingleClientConnManager.PoolEntry, org.apache.http.conn.routing.HttpRoute);
+    protected SingleClientConnManager.PoolEntry(org.apache.http.impl.conn.SingleClientConnManager);
 
 Class changed: org.apache.http.impl.conn.tsccm.AbstractConnPool
   Methods removed:
-    public synchronized void closeIdleConnections(long);
-    public abstract org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.HttpRoute, long, org.apache.http.conn.ClientConnectionOperator) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected abstract void handleLostEntry(org.apache.http.conn.HttpRoute);
-
-  Methods added:
-    public void closeIdleConnections(long, java.util.concurrent.TimeUnit);
-    public void enableConnectionGC() throws java.lang.IllegalStateException;
+    protected AbstractConnPool(org.apache.http.conn.ClientConnectionManager);
     public abstract org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit, org.apache.http.conn.ClientConnectionOperator) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected abstract void handleLostEntry(org.apache.http.conn.routing.HttpRoute);
-
-  Fields added:
-    protected final java.util.concurrent.locks.Lock poolLock;
-
-  Method changed:
-  old:
-    public synchronized void handleReference(java.lang.ref.Reference);
-
-  new:
-    public void handleReference(java.lang.ref.Reference);
 
-  Method changed:
-  old:
-    public synchronized void shutdown();
+  Methods added:
+    protected AbstractConnPool();
+    public final org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.routing.HttpRoute, java.lang.Object, long, java.util.concurrent.TimeUnit) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    public abstract org.apache.http.impl.conn.tsccm.PoolEntryRequest requestPoolEntry(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
 
-  new:
-    public void shutdown();
+  Fields removed:
+    protected org.apache.http.impl.conn.tsccm.AbstractConnPool.ConnMgrRef connManager;
+    protected org.apache.http.params.HttpParams params;
 
 Class changed: org.apache.http.impl.conn.tsccm.BasicPoolEntry
   Methods removed:
-    public BasicPoolEntry(org.apache.http.conn.ClientConnectionOperator, org.apache.http.conn.HttpRoute, java.lang.ref.ReferenceQueue);
-    protected final org.apache.http.conn.HttpRoute getPlannedRoute();
-    protected final java.lang.ref.WeakReference getWeakRef();
+    protected org.apache.http.conn.ClientConnectionOperator getOperator();
 
-  Methods added:
-    public BasicPoolEntry(org.apache.http.conn.ClientConnectionOperator, org.apache.http.conn.routing.HttpRoute, java.lang.ref.ReferenceQueue);
-    protected final org.apache.http.conn.routing.HttpRoute getPlannedRoute();
-    protected final org.apache.http.impl.conn.tsccm.BasicPoolEntryRef getWeakRef();
-
-Class changed: org.apache.http.impl.conn.tsccm.BasicPoolEntryRef
+Class changed: org.apache.http.impl.conn.tsccm.ConnPoolByRoute
   Methods removed:
-    public final org.apache.http.conn.HttpRoute getRoute();
+    public ConnPoolByRoute(org.apache.http.conn.ClientConnectionManager);
+    public org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit, org.apache.http.conn.ClientConnectionOperator) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    protected org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
 
   Methods added:
-    public final org.apache.http.conn.routing.HttpRoute getRoute();
+    public ConnPoolByRoute(org.apache.http.conn.ClientConnectionOperator, org.apache.http.params.HttpParams);
+    protected org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntryBlocking(org.apache.http.conn.routing.HttpRoute, java.lang.Object, long, java.util.concurrent.TimeUnit, org.apache.http.impl.conn.tsccm.WaitingThreadAborter) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    protected org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool, java.lang.Object);
+    public org.apache.http.impl.conn.tsccm.PoolEntryRequest requestPoolEntry(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
 
-Class changed: org.apache.http.impl.conn.tsccm.ConnPoolByRoute
+  Fields added:
+    protected final int maxTotalConnections;
+    protected final org.apache.http.conn.ClientConnectionOperator operator;
+
+Class changed: org.apache.http.impl.conn.tsccm.RouteSpecificPool
   Methods removed:
-    public synchronized int getConnectionsInPool(org.apache.http.conn.HttpRoute);
-    public synchronized org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.HttpRoute, long, org.apache.http.conn.ClientConnectionOperator) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected synchronized org.apache.http.impl.conn.tsccm.RouteSpecificPool getRoutePool(org.apache.http.conn.HttpRoute, boolean);
-    protected synchronized void handleLostEntry(org.apache.http.conn.HttpRoute);
-    protected org.apache.http.impl.conn.tsccm.RouteSpecificPool newRouteSpecificPool(org.apache.http.conn.HttpRoute);
+    public RouteSpecificPool(org.apache.http.conn.routing.HttpRoute);
+    public org.apache.http.impl.conn.tsccm.BasicPoolEntry allocEntry();
 
   Methods added:
-    protected java.util.Queue createFreeConnQueue();
-    protected java.util.Map createRouteToPoolMap();
-    protected java.util.Queue createWaitingThreadQueue();
-    public int getConnectionsInPool(org.apache.http.conn.routing.HttpRoute);
-    public org.apache.http.impl.conn.tsccm.BasicPoolEntry getEntry(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit, org.apache.http.conn.ClientConnectionOperator) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    protected org.apache.http.impl.conn.tsccm.RouteSpecificPool getRoutePool(org.apache.http.conn.routing.HttpRoute, boolean);
-    protected void handleLostEntry(org.apache.http.conn.routing.HttpRoute);
-    protected org.apache.http.impl.conn.tsccm.RouteSpecificPool newRouteSpecificPool(org.apache.http.conn.routing.HttpRoute);
-    protected org.apache.http.impl.conn.tsccm.WaitingThread newWaitingThread(java.util.concurrent.locks.Condition, org.apache.http.impl.conn.tsccm.RouteSpecificPool);
+    public RouteSpecificPool(org.apache.http.conn.routing.HttpRoute, int);
+    public org.apache.http.impl.conn.tsccm.BasicPoolEntry allocEntry(java.lang.Object);
+    public int getCapacity();
+    public final int getMaxEntries();
 
   Fields added:
-    protected java.util.Queue freeConnections;
-    protected final java.util.Map routeToPool;
-    protected java.util.Queue waitingThreads;
+    protected final int maxEntries;
 
-  Method changed:
-  old:
-    protected synchronized org.apache.http.impl.conn.tsccm.BasicPoolEntry createEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool, org.apache.http.conn.ClientConnectionOperator);
-
-  new:
-    protected org.apache.http.impl.conn.tsccm.BasicPoolEntry createEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool, org.apache.http.conn.ClientConnectionOperator);
+Class changed: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
+  Methods removed:
+    public ThreadSafeClientConnManager(org.apache.http.params.HttpParams, org.apache.http.conn.SchemeRegistry);
+    protected org.apache.http.conn.ClientConnectionOperator createConnectionOperator(org.apache.http.conn.SchemeRegistry);
+    protected org.apache.http.impl.conn.tsccm.AbstractConnPool createConnectionPool();
+    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute) throws java.lang.InterruptedException;
+    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
+    public org.apache.http.params.HttpParams getParams();
+    public org.apache.http.conn.SchemeRegistry getSchemeRegistry();
 
-  Method changed:
-  old:
-    public synchronized void deleteClosedConnections();
+  Methods added:
+    public ThreadSafeClientConnManager(org.apache.http.params.HttpParams, org.apache.http.conn.scheme.SchemeRegistry);
+    protected org.apache.http.conn.ClientConnectionOperator createConnectionOperator(org.apache.http.conn.scheme.SchemeRegistry);
+    protected org.apache.http.impl.conn.tsccm.AbstractConnPool createConnectionPool(org.apache.http.params.HttpParams);
+    protected void finalize() throws java.lang.Throwable;
+    public org.apache.http.conn.scheme.SchemeRegistry getSchemeRegistry();
+    public org.apache.http.conn.ClientConnectionRequest requestConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
 
-  new:
-    public void deleteClosedConnections();
+  Fields removed:
+    protected org.apache.http.params.HttpParams params;
 
-  Method changed:
-  old:
-    protected synchronized void deleteEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry);
+Class changed: org.apache.http.impl.conn.tsccm.WaitingThread
+  Methods added:
+    public void interrupt();
 
-  new:
-    protected void deleteEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry);
+API diff generated by JarDiff http://www.osjava.org/jardiff/
 
-  Method changed:
-  old:
-    protected synchronized void deleteLeastUsedEntry();
+--------------------------------------
 
-  new:
-    protected void deleteLeastUsedEntry();
+Release 4.0 Alpha 3
+-------------------
 
-  Method changed:
-  old:
-    public synchronized void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry);
+ALPHA3 release brings another round of API refinements and improvements in 
+functionality. As of this release HttpClient requires Java 5 compatible 
+runtime environment and takes full advantage of generics and new concurrency
+primitives.     
 
-  new:
-    public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry);
+This release also introduces new default cookie policy that selects a cookie 
+specification depending on the format of cookies sent by the target host. 
+It is no longer necessary to know beforehand what kind of HTTP cookie support 
+the target host provides. HttpClient is now able to pick up either a lenient 
+or a strict cookie policy depending on the compliance level of the target host.
 
-  Method changed:
-  old:
-    protected synchronized org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
+Another notable improvement is a completely reworked support for multipart 
+entities based on Apache mime4j library.
 
-  new:
-    protected org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
+-------------------
 
-  Method changed:
-  old:
-    protected synchronized void notifyWaitingThread(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
+HttpClient 3.x features that have NOT yet been ported:
+-------------------
 
-  new:
-    protected void notifyWaitingThread(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
+* NTLM authentication scheme
 
-  Method changed:
-  old:
-    public synchronized void shutdown();
+-------------------
 
-  new:
-    public void shutdown();
+Changelog:
+-------------------
 
-Class changed: org.apache.http.impl.conn.tsccm.RouteSpecificPool
-  Methods removed:
-    public RouteSpecificPool(org.apache.http.conn.HttpRoute);
-    public final org.apache.http.conn.HttpRoute getRoute();
+* [HTTPCLIENT-742] common interface for HttpRoute and RouteTracker
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public RouteSpecificPool(org.apache.http.conn.routing.HttpRoute);
-    public org.apache.http.impl.conn.tsccm.WaitingThread dequeueThread();
-    public final org.apache.http.conn.routing.HttpRoute getRoute();
-    public boolean hasThread();
-    public void queueThread(org.apache.http.impl.conn.tsccm.WaitingThread);
-    public void removeThread(org.apache.http.impl.conn.tsccm.WaitingThread);
+* [HTTPCLIENT-741] Fixed concurrency issues in AbstractClientConnAdapter.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-  Fields added:
-    protected java.util.LinkedList freeEntries;
-    protected int numEntries;
-    protected final org.apache.http.conn.routing.HttpRoute route;
-    protected java.util.Queue waitingThreads;
+* [HTTPCLIENT-726] testcase for spurious wakeups in ThreadSafeClientConnManager
+  Contributed by Roland Weber <rolandw at apache.org>
 
-Class changed: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
-  Methods removed:
-    public void closeIdleConnections(long);
-    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute) throws java.lang.InterruptedException;
-    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    public int getConnectionsInPool(org.apache.http.conn.HttpRoute);
+* [HTTPCLIENT-643] Automatic connect fail-over for multi-home remote servers.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-  Methods added:
-    public void closeIdleConnections(long, java.util.concurrent.TimeUnit);
-    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute) throws java.lang.InterruptedException;
-    public org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, long, java.util.concurrent.TimeUnit) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException;
-    public int getConnectionsInPool(org.apache.http.conn.routing.HttpRoute);
+* [HTTPCLIENT-735] unsetting of DEFAULT_PROXY and FORCED_ROUTE in hierarchies
+  Contributed by Roland Weber <rolandw at apache.org>
 
-Class changed: org.apache.http.impl.cookie.AbstractCookieSpec
-  Methods removed:
-    protected java.util.Iterator getAttribHandlerIterator();
+* [HTTPCLIENT-723] route planner based on java.net.ProxySelector
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    protected java.util.Collection getAttribHandlers();
+* [HTTPCLIENT-740] don't start connection GC thread in pool constructor
+  Contributed by Roland Weber <rolandw at apache.org>
 
-Class changed: org.apache.http.impl.cookie.BrowserCompatSpec
-  Methods removed:
-    public org.apache.http.Header[] formatCookies(org.apache.http.cookie.Cookie[]);
-    public org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-736] route planners use SchemeRegistry instead of ConnManager
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public java.util.List formatCookies(java.util.List);
-    public java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-730] Fixed rewriting of URIs containing escaped characters
+  Contributed by Sam Berlin <sberlin at gmail.com> and 
+  Oleg Kalnichevski <olegk at apache.org>
+ 
+* [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie 
+  specification depending on the format of the cookie(s).
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-Class changed: org.apache.http.impl.cookie.CookieSpecBase
-  Methods removed:
-    protected org.apache.http.cookie.Cookie[] parse(org.apache.http.HeaderElement[], org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-729] Move HttpRoute and related classes to routing package.
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    protected java.util.List parse(org.apache.http.HeaderElement[], org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager.
+  Contributed by Roland Weber <rolandw at apache.org>
 
-Class changed: org.apache.http.impl.cookie.NetscapeDraftSpec
-  Methods removed:
-    public org.apache.http.Header[] formatCookies(org.apache.http.cookie.Cookie[]);
-    public org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt().
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public java.util.List formatCookies(java.util.List);
-    public java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-716] Allow application-defined routes.
+  Contributed by Roland Weber <rolandw at apache.org>
 
-Class changed: org.apache.http.impl.cookie.RFC2109Spec
-  Methods removed:
-    public org.apache.http.Header[] formatCookies(org.apache.http.cookie.Cookie[]);
-    public org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-712] Improve HttpRoute API
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public java.util.List formatCookies(java.util.List);
-    public java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-711] Bad route computed for redirected requests
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-Class changed: org.apache.http.impl.cookie.RFC2965Spec
-  Methods removed:
-    public org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-715] Remove RoutedRequest from API
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException;
+* [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-API diff generated by JarDiff http://www.osjava.org/jardiff/
+* [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple 
+  Allow headers.
+  Contributed by Andrea Selva <selva.andre at gmail.com>
 
 --------------------------------------
 



Mime
View raw message