Return-Path: Delivered-To: apmail-hc-commits-archive@www.apache.org Received: (qmail 59297 invoked from network); 11 Feb 2008 16:11:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Feb 2008 16:11:31 -0000 Received: (qmail 86972 invoked by uid 500); 11 Feb 2008 16:11:24 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 86937 invoked by uid 500); 11 Feb 2008 16:11:24 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 86928 invoked by uid 99); 11 Feb 2008 16:11:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Feb 2008 08:11:24 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 11 Feb 2008 16:10:33 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 16AFF1A9832; Mon, 11 Feb 2008 08:10:51 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r620510 - /httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Date: Mon, 11 Feb 2008 16:10:50 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080211161051.16AFF1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olegk Date: Mon Feb 11 08:10:46 2008 New Revision: 620510 URL: http://svn.apache.org/viewvc?rev=620510&view=rev Log: Updated release notes for the 4.0-alpha3 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=620510&r1=620509&r2=620510&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original) +++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Mon Feb 11 08:10:46 2008 @@ -1,4 +1,30 @@ -Changes since 4.0 Alpha 2 +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 @@ -29,11 +55,8 @@ Contributed by Sam Berlin and Oleg Kalnichevski -* [HTTPCLIENT-667] Added 'Meta' cookie specification that selects a cookie - policy depending on the format of the cookie(s). 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 server. +* [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie + specification depending on the format of the cookie(s). Contributed by Oleg Kalnichevski * [HTTPCLIENT-729] Move HttpRoute and related classes to routing package. @@ -64,662 +87,637 @@ Allow headers. Contributed by Andrea Selva - -Release 4.0 Alpha 2 -------------------- - -ALPHA2 release is another milestone in the redesign of HttpClient. It includes -a number of improvements since ALPHA1, among which are improved connection -pooling, support for proxy chains, redesigned HTTP state and authentication -credentials management API, improved RFC 2965 cookie specification. - -------------------- - -HttpClient 3.x features that have NOT yet been ported -------------------- -* NTLM authentication scheme - -* Support for multipart MIME coded entities -------------------- - -------------------- - -Changelog -------------------- - -* [HTTPCLIENT-698] Resolve non-absolute redirect URIs relative to - the request URI - Contributed by Johannes Koch - -* [HTTPCLIENT-697] Throw a more intelligible exception when connection - to a remote host cannot be established. - Contributed by Oleg Kalnichevski - -* [HTTPCLIENT-689] Caching of SimpleDateFormat in DateUtils - Contributed by Daniel Müller - -* [HTTPCLIENT-689] stackable parameters in AbstractHttpClient - Contributed by Roland Weber - -* [HTTPCLIENT-477] Use distinct instances of the authentication handler - interface for authentication with target and proxy hosts - Contributed by Oleg Kalnichevski - -* [HTTPCLIENT-690] ManagedClientConnection provides access to SSLSession - Contributed by Roland Weber - -* [HTTPCLIENT-692] ClientConnectionManager throws InterruptedException - Contributed by Roland Weber - -* [HTTPCORE-116] moved parameter names to interfaces - Contributed by Roland Weber - -* [HTTPCLIENT-649] support for proxy chains in HttpConn - Contributed by Roland Weber - -* [HTTPCLIENT-636] refactor ThreadSafeClientConnManager in separate package - Contributed by Roland Weber - -* [HTTPCLIENT-669] new HttpRoutePlanner interface and implementation - Contributed by Andrea Selva - -* [HTTPCLIENT-653] detached connection wrapper no longer prevents - garbage collection of ThreadSafeClientConnManager - Contributed by Roland Weber - -* [HTTPCLIENT-674] use org.apache.http.util.VersionInfo instead of a local one - Contributed by Roland Weber - -* [HTTPCLIENT-666] Replaced HttpState with CredentialsProvier and CookieStore interfaces - Contributed by Oleg Kalnichevski - -* [HTTPCORE-100] revised HttpContext hierarchy - Contributed by Roland Weber - -* [HTTPCLIENT-618] eliminate class HostConfiguration - Contributed by Roland Weber - -* [HTTPCLIENT-672] re-sync with API changes in core alpha6-SNAPSHOT - Contributed by Roland Weber - -------------------------------------- HttpClient API changes (generated by JarDiff 0.2) -------------------------------------- Class removed: - public org.apache.http.client.HttpState extends java.lang.Object + public abstract org.apache.http.client.RoutedRequest extends java.lang.Object Class removed: - public org.apache.http.client.VersionInfo extends java.lang.Object + public org.apache.http.client.RoutedRequest.Impl extends java.lang.Object implements org.apache.http.client.RoutedRequest Class removed: - public org.apache.http.client.protocol.HttpClientContext extends org.apache.http.protocol.HttpExecutionContext + public org.apache.http.conn.BasicRouteDirector extends java.lang.Object implements org.apache.http.conn.HttpRouteDirector Class removed: - public org.apache.http.conn.HostConfiguration extends java.lang.Object + public final org.apache.http.conn.HttpRoute extends java.lang.Object implements java.lang.Cloneable Class removed: - public org.apache.http.conn.RouteDirector extends java.lang.Object + public abstract org.apache.http.conn.HttpRouteDirector extends java.lang.Object Class removed: - public abstract org.apache.http.conn.SecureSocketFactory extends java.lang.Object implements org.apache.http.conn.SocketFactory + public abstract org.apache.http.conn.HttpRoutePlanner extends java.lang.Object Class removed: - public final org.apache.http.cookie.params.CookieSpecParams extends java.lang.Object + public final org.apache.http.conn.RouteTracker extends java.lang.Object implements java.lang.Cloneable Class removed: - public org.apache.http.impl.client.DefaultAuthenticationHandler extends java.lang.Object implements org.apache.http.client.AuthenticationHandler + public abstract org.apache.http.conn.ssl.HostnameVerifier extends java.lang.Object implements javax.net.ssl.HostnameVerifier Class removed: - public org.apache.http.impl.conn.ThreadSafeClientConnManager extends java.lang.Object implements org.apache.http.conn.ClientConnectionManager -Class added: - public abstract org.apache.http.auth.params.AuthPNames extends java.lang.Object -Class added: - public abstract org.apache.http.client.CookieStore extends java.lang.Object -Class added: - public abstract org.apache.http.client.CredentialsProvider extends java.lang.Object -Class added: - public abstract org.apache.http.client.params.AllClientPNames extends java.lang.Object implements org.apache.http.params.CoreConnectionPNames, org.apache.http.params.CoreProtocolPNames, org.apache.http.client.params.ClientPNames, org.apache.http.auth.params.AuthPNames, org.apache.http.cookie.params.CookieSpecPNames, org.apache.http.conn.params.ConnConnectionPNames, org.apache.http.conn.params.ConnManagerPNames, org.apache.http.conn.params.ConnRoutePNames -Class added: - public abstract org.apache.http.client.params.ClientPNames extends java.lang.Object -Class added: - public abstract org.apache.http.client.protocol.ClientContext extends java.lang.Object -Class added: - public org.apache.http.client.protocol.RequestDefaultHeaders extends java.lang.Object implements org.apache.http.HttpRequestInterceptor -Class added: - public org.apache.http.conn.BasicRouteDirector extends java.lang.Object implements org.apache.http.conn.HttpRouteDirector -Class added: - public org.apache.http.conn.HttpHostConnectException extends java.net.ConnectException -Class added: - public abstract org.apache.http.conn.HttpRouteDirector extends java.lang.Object -Class added: - public abstract org.apache.http.conn.HttpRoutePlanner extends java.lang.Object -Class added: - public abstract org.apache.http.conn.LayeredSocketFactory extends java.lang.Object implements org.apache.http.conn.SocketFactory -Class added: - public abstract org.apache.http.conn.params.ConnConnectionPNames extends java.lang.Object -Class added: - public abstract org.apache.http.conn.params.ConnManagerPNames extends java.lang.Object -Class added: - public abstract org.apache.http.conn.params.ConnRoutePNames extends java.lang.Object -Class added: - public org.apache.http.conn.params.HttpConnParams extends java.lang.Object -Class added: - public org.apache.http.conn.util.InetAddressUtils extends java.lang.Object -Class added: - public abstract org.apache.http.cookie.ClientCookie extends java.lang.Object implements org.apache.http.cookie.Cookie -Class added: - public abstract org.apache.http.cookie.SetCookie extends java.lang.Object implements org.apache.http.cookie.Cookie -Class added: - public abstract org.apache.http.cookie.SetCookie2 extends java.lang.Object implements org.apache.http.cookie.SetCookie -Class added: - public abstract org.apache.http.cookie.params.CookieSpecPNames extends java.lang.Object -Class added: - public abstract org.apache.http.impl.client.AbstractAuthenticationHandler extends java.lang.Object implements org.apache.http.client.AuthenticationHandler -Class added: - public org.apache.http.impl.client.BasicCookieStore extends java.lang.Object implements org.apache.http.client.CookieStore -Class added: - public org.apache.http.impl.client.BasicCredentialsProvider extends java.lang.Object implements org.apache.http.client.CredentialsProvider -Class added: - public org.apache.http.impl.client.ClientParamsStack extends org.apache.http.params.AbstractHttpParams -Class added: - public org.apache.http.impl.client.DefaultProxyAuthenticationHandler extends org.apache.http.impl.client.AbstractAuthenticationHandler -Class added: - public org.apache.http.impl.client.DefaultTargetAuthenticationHandler extends org.apache.http.impl.client.AbstractAuthenticationHandler + public org.apache.http.impl.conn.tsccm.ConnPoolByRoute.WaitingThread extends java.lang.Object Class added: - public org.apache.http.impl.conn.DefaultHttpRoutePlanner extends java.lang.Object implements org.apache.http.conn.HttpRoutePlanner + public org.apache.http.client.methods.HttpDelete extends org.apache.http.client.methods.HttpRequestBase Class added: - public org.apache.http.impl.conn.DefaultResponseParser extends org.apache.http.impl.io.AbstractMessageParser + public org.apache.http.conn.params.HttpRouteParams extends java.lang.Object Class added: - public abstract org.apache.http.impl.conn.tsccm.AbstractConnPool extends java.lang.Object implements org.apache.http.impl.conn.tsccm.RefQueueHandler + public org.apache.http.conn.routing.BasicRouteDirector extends java.lang.Object implements org.apache.http.conn.routing.HttpRouteDirector Class added: - public org.apache.http.impl.conn.tsccm.BasicPoolEntry extends org.apache.http.impl.conn.AbstractPoolEntry + public final org.apache.http.conn.routing.HttpRoute extends java.lang.Object implements org.apache.http.conn.routing.RouteInfo, java.lang.Cloneable Class added: - public org.apache.http.impl.conn.tsccm.BasicPoolEntryRef extends java.lang.ref.WeakReference + public abstract org.apache.http.conn.routing.HttpRouteDirector extends java.lang.Object Class added: - public org.apache.http.impl.conn.tsccm.BasicPooledConnAdapter extends org.apache.http.impl.conn.AbstractPooledConnAdapter + public abstract org.apache.http.conn.routing.HttpRoutePlanner extends java.lang.Object Class added: - public org.apache.http.impl.conn.tsccm.ConnPoolByRoute extends org.apache.http.impl.conn.tsccm.AbstractConnPool + public abstract org.apache.http.conn.routing.RouteInfo extends java.lang.Object Class added: - public org.apache.http.impl.conn.tsccm.ConnPoolByRoute.WaitingThread extends java.lang.Object + public final org.apache.http.conn.routing.RouteInfo.LayerType extends java.lang.Enum Class added: - public abstract org.apache.http.impl.conn.tsccm.RefQueueHandler extends java.lang.Object + public final org.apache.http.conn.routing.RouteInfo.TunnelType extends java.lang.Enum Class added: - public org.apache.http.impl.conn.tsccm.RefQueueWorker extends java.lang.Object implements java.lang.Runnable + public final org.apache.http.conn.routing.RouteTracker extends java.lang.Object implements org.apache.http.conn.routing.RouteInfo, java.lang.Cloneable Class added: - public org.apache.http.impl.conn.tsccm.RouteSpecificPool extends java.lang.Object + public abstract org.apache.http.conn.ssl.X509HostnameVerifier extends java.lang.Object implements javax.net.ssl.HostnameVerifier Class added: - public org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager extends java.lang.Object implements org.apache.http.conn.ClientConnectionManager + public org.apache.http.conn.util.SocketUtils extends java.lang.Object Class added: - public org.apache.http.impl.cookie.BasicClientCookie extends java.lang.Object implements org.apache.http.cookie.SetCookie, org.apache.http.cookie.ClientCookie + public org.apache.http.impl.client.RedirectLocations extends java.lang.Object Class added: - public org.apache.http.impl.cookie.BasicClientCookie2 extends org.apache.http.impl.cookie.BasicClientCookie implements org.apache.http.cookie.SetCookie2 + public abstract org.apache.http.impl.client.RoutedRequest extends java.lang.Object Class added: - public org.apache.http.impl.cookie.RFC2965CommentUrlAttributeHandler extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler + 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.impl.cookie.RFC2965DiscardAttributeHandler extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler + public org.apache.http.impl.conn.ProxySelectorRoutePlanner extends java.lang.Object implements org.apache.http.conn.routing.HttpRoutePlanner Class added: - public org.apache.http.impl.cookie.RFC2965DomainAttributeHandler extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler + public org.apache.http.impl.conn.tsccm.WaitingThread extends java.lang.Object Class added: - public org.apache.http.impl.cookie.RFC2965PortAttributeHandler extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler + public org.apache.http.impl.cookie.BestMatchSpec extends java.lang.Object implements org.apache.http.cookie.CookieSpec Class added: - public org.apache.http.impl.cookie.RFC2965Spec extends org.apache.http.impl.cookie.RFC2109Spec + public org.apache.http.impl.cookie.BestMatchSpecFactory extends java.lang.Object implements org.apache.http.cookie.CookieSpecFactory Class added: - public org.apache.http.impl.cookie.RFC2965SpecFactory extends java.lang.Object implements org.apache.http.cookie.CookieSpecFactory -Class added: - public org.apache.http.impl.cookie.RFC2965VersionAttributeHandler extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler -Class changed: org.apache.http.auth.params.AuthParams - Fields removed: - public final static java.lang.String CREDENTIAL_CHARSET = http.protocol.credential-charset; - -Class changed: org.apache.http.client.AuthenticationHandler + public org.apache.http.impl.cookie.NetscapeDraftHeaderParser extends java.lang.Object +Class changed: org.apache.http.client.ClientRequestDirector Methods removed: - public abstract java.util.Map getProxyChallenges(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.auth.MalformedChallengeException; - public abstract java.util.Map getTargetChallenges(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.auth.MalformedChallengeException; - public abstract boolean isProxyAuthenticationRequested(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext); - public abstract boolean isTargetAuthenticationRequested(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext); + 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: - public abstract java.util.Map getChallenges(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.auth.MalformedChallengeException; - public abstract boolean isAuthenticationRequested(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext); + 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.ClientRequestDirector - Method changed: - old: - 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; +Class changed: org.apache.http.client.CookieStore + Methods removed: + public abstract org.apache.http.cookie.Cookie[] getCookies(); - new: - 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: + public abstract java.util.List getCookies(); Class changed: org.apache.http.client.HttpClient - Method changed: - old: - public abstract org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest) throws org.apache.http.HttpException, java.io.IOException; - - new: + 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: + 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; + 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 Method changed: old: - 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; + public java.util.Set getAllowedMethods(org.apache.http.HttpResponse) throws org.apache.http.ParseException; new: - 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 java.util.Set getAllowedMethods(org.apache.http.HttpResponse); - Method changed: - old: - 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; - new: - public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException; +Class changed: org.apache.http.client.utils.URLUtils + 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; - 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; +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; - 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, 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; -Class changed: org.apache.http.client.methods.HttpOptions - Method changed: +Class changed: org.apache.http.conn.ManagedClientConnection + 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; + + 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; + +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; + + Field changed: old: - public java.util.Set getAllowedMethods(org.apache.http.HttpResponse); + public final static java.lang.String DEFAULT_PROXY = http.default-proxy; new: - public java.util.Set getAllowedMethods(org.apache.http.HttpResponse) throws org.apache.http.ParseException; + public final static java.lang.String DEFAULT_PROXY = http.route.default-proxy; -Class changed: org.apache.http.client.methods.HttpUriRequest - Methods removed: - public abstract org.apache.http.HttpVersion getHttpVersion(); - -Class changed: org.apache.http.client.params.HttpClientParams +Class changed: org.apache.http.conn.params.HttpConnParams Fields removed: - public final static java.lang.String ALLOW_CIRCULAR_REDIRECTS = http.protocol.allow-circular-redirects; - public final static java.lang.String AUTH_SCHEME_PRIORITY = http.protocol-auth-scheme-priority; - public final static java.lang.String CONNECTION_MANAGER_FACTORY = http.connection-manager.factory; - public final static java.lang.String CONNECTION_MANAGER_TIMEOUT = http.connection-manager.timeout; - public final static java.lang.String COOKIE_POLICY = http.protocol.cookie-policy; - public final static java.lang.String DEFAULT_HEADERS = http.default-headers; - public final static java.lang.String DEFAULT_HOST = http.default-host; public final static java.lang.String DEFAULT_PROXY = http.default-proxy; - public final static java.lang.String HANDLE_AUTHENTICATION = http.protocol.handle-authentication; - public final static java.lang.String HANDLE_REDIRECTS = http.protocol.handle-redirects; - public final static java.lang.String MAX_REDIRECTS = http.protocol.max-redirects; - public final static java.lang.String PREEMPTIVE_AUTHENTICATION = http.protocol.authentication-preemptive; - public final static java.lang.String REJECT_RELATIVE_REDIRECT = http.protocol.reject-relative-redirect; - public final static java.lang.String VIRTUAL_HOST = http.virtual-host; -Class changed: org.apache.http.conn.ClientConnectionManager +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 abstract org.apache.http.params.HttpParams getParams(); + public static int getMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.routing.HttpRoute); + public static void setMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.routing.HttpRoute, int); - Method changed: +Class changed: org.apache.http.conn.ssl.AbstractVerifier + Methods added: + public AbstractVerifier(); + + Class descriptor changed: old: - public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute); + public abstract org.apache.http.conn.ssl.AbstractVerifier extends java.lang.Object implements org.apache.http.conn.ssl.HostnameVerifier + new: + public abstract org.apache.http.conn.ssl.AbstractVerifier extends java.lang.Object implements org.apache.http.conn.ssl.X509HostnameVerifier +Class changed: org.apache.http.conn.ssl.SSLSocketFactory + Methods removed: + public org.apache.http.conn.ssl.HostnameVerifier getHostnameVerifier(); + public void setHostnameVerifier(org.apache.http.conn.ssl.HostnameVerifier); + 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); + + Methods added: + public int compare(org.apache.http.cookie.Cookie, org.apache.http.cookie.Cookie); + + Class descriptor changed: + old: + public org.apache.http.cookie.CookieIdentityComparator extends java.lang.Object implements java.util.Comparator new: - public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute) throws java.lang.InterruptedException; + 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); - Method changed: + Methods added: + public int compare(org.apache.http.cookie.Cookie, org.apache.http.cookie.Cookie); + + Class descriptor changed: old: - public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.conn.ConnectionPoolTimeoutException; + public org.apache.http.cookie.CookiePathComparator extends java.lang.Object implements java.util.Comparator + 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; + + 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; + +Class changed: org.apache.http.impl.client.AbstractHttpClient + 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); + 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); + + Class descriptor 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 new: - public abstract org.apache.http.conn.ManagedClientConnection getConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.conn.ConnectionPoolTimeoutException, java.lang.InterruptedException; + 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 + Methods removed: + public synchronized org.apache.http.cookie.Cookie[] getCookies(); -Class changed: org.apache.http.conn.HttpRoute + Methods added: + public synchronized java.util.List getCookies(); + +Class changed: org.apache.http.impl.client.ClientParamsStack Methods removed: - deprecated: public final org.apache.http.conn.HostConfiguration toHostConfig(); + public boolean isParameterSet(java.lang.String); -Class changed: org.apache.http.conn.ManagedClientConnection + Methods added: + public boolean removeParameter(java.lang.String); + +Class changed: org.apache.http.impl.client.DefaultClientRequestDirector Methods removed: - public abstract void tunnelCreated(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + 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; Methods added: - public abstract javax.net.ssl.SSLSession getSSLSession(); - public abstract void tunnelProxy(org.apache.http.HttpHost, boolean, org.apache.http.params.HttpParams) throws java.io.IOException; - public abstract void tunnelTarget(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + 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; -Class changed: org.apache.http.conn.RouteTracker + Fields added: + protected final org.apache.http.conn.routing.HttpRoutePlanner routePlanner; + +Class changed: org.apache.http.impl.client.DefaultHttpClient Methods removed: - deprecated: public final org.apache.http.conn.HostConfiguration toHostConfig(); + 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; -Class changed: org.apache.http.conn.params.HttpConnectionManagerParams + Methods added: + protected org.apache.http.conn.routing.HttpRoutePlanner createHttpRoutePlanner(); + +Class changed: org.apache.http.impl.conn.AbstractClientConnAdapter Methods removed: - public static int getMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.HostConfiguration); - public static void setMaxConnectionsPerHost(org.apache.http.params.HttpParams, org.apache.http.conn.HostConfiguration, int); + protected final void assertWrappedConn(); Methods added: - 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); + 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(); Fields removed: - public final static java.lang.String MAX_HOST_CONNECTIONS = http.connection-manager.max-per-host; - public final static java.lang.String MAX_TOTAL_CONNECTIONS = http.connection-manager.max-total; + protected org.apache.http.conn.ClientConnectionManager connManager; + protected boolean markedReusable; + protected org.apache.http.conn.OperatedClientConnection wrappedConnection; -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.SecureSocketFactory - new: - public org.apache.http.conn.ssl.SSLSocketFactory extends java.lang.Object implements org.apache.http.conn.LayeredSocketFactory -Class changed: org.apache.http.cookie.Cookie +Class changed: org.apache.http.impl.conn.AbstractPoolEntry Methods removed: - public Cookie(java.lang.String, java.lang.String); - public boolean isDomainAttributeSpecified(); - public boolean isPathAttributeSpecified(); - public void setComment(java.lang.String); - public void setDomain(java.lang.String); - public void setDomainAttributeSpecified(boolean); - public void setExpiryDate(java.util.Date); - public void setPath(java.lang.String); - public void setPathAttributeSpecified(boolean); - public void setSecure(boolean); - public void setVersion(int); - public java.lang.String toString(); + 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; Methods added: - public abstract java.lang.String getCommentURL(); - public abstract int[] getPorts(); + 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; - Class descriptor changed: - old: - public org.apache.http.cookie.Cookie extends java.lang.Object - new: - public abstract org.apache.http.cookie.Cookie extends java.lang.Object - Method changed: - old: - public java.lang.String getComment(); +Class changed: org.apache.http.impl.conn.AbstractPooledConnAdapter + 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; - new: - public abstract java.lang.String getComment(); + 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; - Method changed: + Class descriptor changed: old: - public java.lang.String getDomain(); - + public abstract org.apache.http.impl.conn.AbstractPooledConnAdapter extends org.apache.http.impl.conn.AbstractClientConnAdapter implements org.apache.http.conn.ManagedClientConnection new: - public abstract java.lang.String getDomain(); + 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); - Method changed: - old: - public java.util.Date getExpiryDate(); + 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; - new: - public abstract java.util.Date getExpiryDate(); + Fields added: + protected org.apache.http.conn.SchemeRegistry schemeRegistry; - Method changed: + Class descriptor changed: old: - public java.lang.String getName(); - + public org.apache.http.impl.conn.DefaultHttpRoutePlanner extends java.lang.Object implements org.apache.http.conn.HttpRoutePlanner new: - public abstract java.lang.String getName(); + 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 + 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); - Method changed: - old: - public java.lang.String getPath(); + Methods added: + public void closeIdleConnections(long, java.util.concurrent.TimeUnit); + 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); - new: - public abstract java.lang.String getPath(); +Class changed: org.apache.http.impl.conn.SingleClientConnManager.ConnAdapter + Methods removed: + protected SingleClientConnManager.ConnAdapter(org.apache.http.impl.conn.SingleClientConnManager, org.apache.http.impl.conn.SingleClientConnManager.PoolEntry, org.apache.http.conn.HttpRoute); - Method changed: - old: - public java.lang.String getValue(); + Methods added: + protected SingleClientConnManager.ConnAdapter(org.apache.http.impl.conn.SingleClientConnManager, org.apache.http.impl.conn.SingleClientConnManager.PoolEntry, org.apache.http.conn.routing.HttpRoute); - new: - public abstract java.lang.String getValue(); +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); - Method changed: - old: - public int getVersion(); + Methods added: + public void closeIdleConnections(long, java.util.concurrent.TimeUnit); + public void enableConnectionGC() throws java.lang.IllegalStateException; + 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); - new: - public abstract int getVersion(); + Fields added: + protected final java.util.concurrent.locks.Lock poolLock; Method changed: old: - public boolean isExpired(java.util.Date); + public synchronized void handleReference(java.lang.ref.Reference); new: - public abstract boolean isExpired(java.util.Date); + public void handleReference(java.lang.ref.Reference); Method changed: old: - public boolean isPersistent(); + public synchronized void shutdown(); new: - public abstract boolean isPersistent(); + public void shutdown(); - Method changed: - old: - public boolean isSecure(); +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(); - new: - public abstract boolean isSecure(); + 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.cookie.CookieAttributeHandler +Class changed: org.apache.http.impl.conn.tsccm.BasicPoolEntryRef Methods removed: - public abstract void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + public final org.apache.http.conn.HttpRoute getRoute(); Methods added: - public abstract void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + public final org.apache.http.conn.routing.HttpRoute getRoute(); + +Class changed: org.apache.http.impl.conn.tsccm.ConnPoolByRoute + 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); -Class changed: org.apache.http.cookie.CookieSpec Methods added: - public abstract int getVersion(); - public abstract org.apache.http.Header getVersionHeader(); + 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); -Class changed: org.apache.http.cookie.SM Fields added: - public final static java.lang.String COOKIE2 = Cookie2; - public final static java.lang.String SET_COOKIE2 = Set-Cookie2; + protected java.util.Queue freeConnections; + protected final java.util.Map routeToPool; + protected java.util.Queue waitingThreads; -Class changed: org.apache.http.impl.client.AbstractHttpClient - Methods removed: - protected abstract org.apache.http.client.AuthenticationHandler createAuthenticationHandler(); - protected abstract org.apache.http.client.HttpState createHttpState(); - public final synchronized org.apache.http.client.AuthenticationHandler getAuthenticationHandler(); - public final synchronized org.apache.http.client.HttpState getState(); - public synchronized void setAuthenticationHandler(org.apache.http.client.AuthenticationHandler); - public synchronized void setState(org.apache.http.client.HttpState); + 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); - Methods added: - public synchronized void addRequestInterceptor(org.apache.http.HttpRequestInterceptor, int); - public synchronized void addResponseInterceptor(org.apache.http.HttpResponseInterceptor, int); - protected abstract org.apache.http.client.CookieStore createCookieStore(); - protected abstract org.apache.http.client.CredentialsProvider createCredentialsProvider(); - protected abstract org.apache.http.conn.HttpRoutePlanner createHttpRoutePlanner(); - protected abstract org.apache.http.client.AuthenticationHandler createProxyAuthenticationHandler(); - protected abstract org.apache.http.client.AuthenticationHandler createTargetAuthenticationHandler(); - protected org.apache.http.params.HttpParams determineParams(org.apache.http.HttpRequest); - public final synchronized org.apache.http.client.CookieStore getCookieStore(); - public final synchronized org.apache.http.client.CredentialsProvider getCredentialsProvider(); - public final synchronized org.apache.http.client.AuthenticationHandler getProxyAuthenticationHandler(); - public final synchronized org.apache.http.conn.HttpRoutePlanner getRoutePlanner(); - public final synchronized org.apache.http.client.AuthenticationHandler getTargetAuthenticationHandler(); - public void removeRequestInterceptorByClass(java.lang.Class); - public void removeResponseInterceptorByClass(java.lang.Class); - public synchronized void setCookieStore(org.apache.http.client.CookieStore); - public synchronized void setCredentialsProvider(org.apache.http.client.CredentialsProvider); - public synchronized void setProxyAuthenticationHandler(org.apache.http.client.AuthenticationHandler); - public synchronized void setRoutePlanner(org.apache.http.conn.HttpRoutePlanner); - public synchronized void setTargetAuthenticationHandler(org.apache.http.client.AuthenticationHandler); + new: + protected org.apache.http.impl.conn.tsccm.BasicPoolEntry createEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool, org.apache.http.conn.ClientConnectionOperator); Method changed: old: - public org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest) throws org.apache.http.HttpException, java.io.IOException; + public synchronized void deleteClosedConnections(); new: - public org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException; + public void deleteClosedConnections(); Method changed: old: - 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; + protected synchronized void deleteEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry); new: - 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; + protected void deleteEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry); Method changed: old: - public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException; + protected synchronized void deleteLeastUsedEntry(); new: - public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException, java.lang.InterruptedException; + protected void deleteLeastUsedEntry(); 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; + public synchronized void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry); 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, java.lang.InterruptedException; + public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry); -Class changed: org.apache.http.impl.client.DefaultClientRequestDirector - 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.params.HttpParams); - protected boolean createTunnel(org.apache.http.conn.HttpRoute, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; + Method changed: + old: + protected synchronized org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool); - Methods added: - 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 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; + new: + protected org.apache.http.impl.conn.tsccm.BasicPoolEntry getFreeEntry(org.apache.http.impl.conn.tsccm.RouteSpecificPool); Method changed: old: - protected org.apache.http.conn.ManagedClientConnection allocateConnection(org.apache.http.conn.HttpRoute, long) throws org.apache.http.HttpException, org.apache.http.conn.ConnectionPoolTimeoutException; + protected synchronized void notifyWaitingThread(org.apache.http.impl.conn.tsccm.RouteSpecificPool); new: - 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 void notifyWaitingThread(org.apache.http.impl.conn.tsccm.RouteSpecificPool); Method changed: old: - public org.apache.http.HttpResponse execute(org.apache.http.client.RoutedRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; + public synchronized void shutdown(); new: - 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; + public void shutdown(); -Class changed: org.apache.http.impl.client.DefaultHttpClient +Class changed: org.apache.http.impl.conn.tsccm.RouteSpecificPool Methods removed: - protected org.apache.http.client.AuthenticationHandler createAuthenticationHandler(); - protected org.apache.http.client.HttpState createHttpState(); + public RouteSpecificPool(org.apache.http.conn.HttpRoute); + public final org.apache.http.conn.HttpRoute getRoute(); Methods added: - protected org.apache.http.client.CookieStore createCookieStore(); - protected org.apache.http.client.CredentialsProvider createCredentialsProvider(); - protected org.apache.http.conn.HttpRoutePlanner createHttpRoutePlanner(); - protected org.apache.http.client.AuthenticationHandler createProxyAuthenticationHandler(); - protected org.apache.http.client.AuthenticationHandler createTargetAuthenticationHandler(); + 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); -Class changed: org.apache.http.impl.conn.AbstractClientConnAdapter - Methods added: - public javax.net.ssl.SSLSession getSSLSession(); + Fields added: + protected java.util.LinkedList freeEntries; + protected int numEntries; + protected final org.apache.http.conn.routing.HttpRoute route; + protected java.util.Queue waitingThreads; -Class changed: org.apache.http.impl.conn.AbstractPoolEntry +Class changed: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager Methods removed: - protected AbstractPoolEntry(org.apache.http.conn.OperatedClientConnection); - public void tunnelCreated(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + 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); Methods added: - protected AbstractPoolEntry(org.apache.http.conn.OperatedClientConnection, org.apache.http.conn.HttpRoute); - public void tunnelProxy(org.apache.http.HttpHost, boolean, org.apache.http.params.HttpParams) throws java.io.IOException; - public void tunnelTarget(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + 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); - Fields added: - protected org.apache.http.conn.HttpRoute plannedRoute; - -Class changed: org.apache.http.impl.conn.AbstractPooledConnAdapter +Class changed: org.apache.http.impl.cookie.AbstractCookieSpec Methods removed: - public void tunnelCreated(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + protected java.util.Iterator getAttribHandlerIterator(); Methods added: - public void tunnelProxy(org.apache.http.HttpHost, boolean, org.apache.http.params.HttpParams) throws java.io.IOException; - public void tunnelTarget(boolean, org.apache.http.params.HttpParams) throws java.io.IOException; + protected java.util.Collection getAttribHandlers(); -Class changed: org.apache.http.impl.conn.DefaultClientConnection +Class changed: org.apache.http.impl.cookie.BrowserCompatSpec Methods removed: - protected org.apache.http.io.HttpDataReceiver createHttpDataReceiver(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException; - protected org.apache.http.io.HttpDataTransmitter createHttpDataTransmitter(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException; - - Methods added: - protected org.apache.http.io.HttpMessageParser createResponseParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams); - protected org.apache.http.io.SessionInputBuffer createSessionInputBuffer(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException; - protected org.apache.http.io.SessionOutputBuffer createSessionOutputBuffer(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException; + 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; -Class changed: org.apache.http.impl.conn.SingleClientConnManager Methods added: - public org.apache.http.params.HttpParams getParams(); + 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; -Class changed: org.apache.http.impl.conn.SingleClientConnManager.PoolEntry - Fields removed: - protected org.apache.http.conn.HttpRoute plannedRoute; - -Class changed: org.apache.http.impl.cookie.BasicCommentHandler +Class changed: org.apache.http.impl.cookie.CookieSpecBase Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + protected org.apache.http.cookie.Cookie[] parse(org.apache.http.HeaderElement[], org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException; Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + protected java.util.List parse(org.apache.http.HeaderElement[], org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException; -Class changed: org.apache.http.impl.cookie.BasicDomainHandler +Class changed: org.apache.http.impl.cookie.NetscapeDraftSpec Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + 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; Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + 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; -Class changed: org.apache.http.impl.cookie.BasicExpiresHandler +Class changed: org.apache.http.impl.cookie.RFC2109Spec Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + 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; Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + 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; -Class changed: org.apache.http.impl.cookie.BasicMaxAgeHandler +Class changed: org.apache.http.impl.cookie.RFC2965Spec Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + public org.apache.http.cookie.Cookie[] parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException; Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; + public java.util.List parse(org.apache.http.Header, org.apache.http.cookie.CookieOrigin) throws org.apache.http.cookie.MalformedCookieException; -Class changed: org.apache.http.impl.cookie.BasicPathHandler - Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +API diff generated by JarDiff http://www.osjava.org/jardiff/ - Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +-------------------------------------- -Class changed: org.apache.http.impl.cookie.BasicSecureHandler - Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +Release 4.0 Alpha 2 +------------------- - Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +ALPHA2 release is another milestone in the redesign of HttpClient. It includes +a number of improvements since ALPHA1, among which are improved connection +pooling, support for proxy chains, redesigned HTTP state and authentication +credentials management API, improved RFC 2965 cookie specification. -Class changed: org.apache.http.impl.cookie.BrowserCompatSpec - Methods added: - public int getVersion(); - public org.apache.http.Header getVersionHeader(); +------------------- -Class changed: org.apache.http.impl.cookie.NetscapeDraftSpec - Methods added: - public int getVersion(); - public org.apache.http.Header getVersionHeader(); +HttpClient 3.x features that have NOT yet been ported +------------------- +* NTLM authentication scheme -Class changed: org.apache.http.impl.cookie.RFC2109DomainHandler - Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +* Support for multipart MIME coded entities - Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +------------------- -Class changed: org.apache.http.impl.cookie.RFC2109Spec - Methods added: - protected void formatCookieAsVer(org.apache.http.util.CharArrayBuffer, org.apache.http.cookie.Cookie, int); - protected void formatParamAsVer(org.apache.http.util.CharArrayBuffer, java.lang.String, java.lang.String, int); - public int getVersion(); - public org.apache.http.Header getVersionHeader(); +Changelog +------------------- -Class changed: org.apache.http.impl.cookie.RFC2109VersionHandler - Methods removed: - public void parse(org.apache.http.cookie.Cookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +* [HTTPCLIENT-698] Resolve non-absolute redirect URIs relative to + the request URI + Contributed by Johannes Koch - Methods added: - public void parse(org.apache.http.cookie.SetCookie, java.lang.String) throws org.apache.http.cookie.MalformedCookieException; +* [HTTPCLIENT-697] Throw a more intelligible exception when connection + to a remote host cannot be established. + Contributed by Oleg Kalnichevski -API diff generated by JarDiff http://www.osjava.org/jardiff/ +* [HTTPCLIENT-689] Caching of SimpleDateFormat in DateUtils + Contributed by Daniel Müller + +* [HTTPCLIENT-689] stackable parameters in AbstractHttpClient + Contributed by Roland Weber + +* [HTTPCLIENT-477] Use distinct instances of the authentication handler + interface for authentication with target and proxy hosts + Contributed by Oleg Kalnichevski + +* [HTTPCLIENT-690] ManagedClientConnection provides access to SSLSession + Contributed by Roland Weber + +* [HTTPCLIENT-692] ClientConnectionManager throws InterruptedException + Contributed by Roland Weber + +* [HTTPCORE-116] moved parameter names to interfaces + Contributed by Roland Weber + +* [HTTPCLIENT-649] support for proxy chains in HttpConn + Contributed by Roland Weber + +* [HTTPCLIENT-636] refactor ThreadSafeClientConnManager in separate package + Contributed by Roland Weber + +* [HTTPCLIENT-669] new HttpRoutePlanner interface and implementation + Contributed by Andrea Selva + +* [HTTPCLIENT-653] detached connection wrapper no longer prevents + garbage collection of ThreadSafeClientConnManager + Contributed by Roland Weber + +* [HTTPCLIENT-674] use org.apache.http.util.VersionInfo instead of a local one + Contributed by Roland Weber +* [HTTPCLIENT-666] Replaced HttpState with CredentialsProvier and CookieStore interfaces + Contributed by Oleg Kalnichevski +* [HTTPCORE-100] revised HttpContext hierarchy + Contributed by Roland Weber + +* [HTTPCLIENT-618] eliminate class HostConfiguration + Contributed by Roland Weber + +* [HTTPCLIENT-672] re-sync with API changes in core alpha6-SNAPSHOT + Contributed by Roland Weber + +-------------------------------------- Release 4.0 Alpha 1 -------------------