diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index b2ecb8b9b..6d7491a79 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,4 +1,24 @@ -Changes since 4.0 Alpha 4 +4.0 Beta 1 +------------------- + +BETA1 release brings yet another round of API enhancements and +improvements in the area of connection management. Among the most notable +ones is the capability to handle stateful connections such as persistent +NTLM connections and private key authenticated SSL connections. + +This is the first API stable release of HttpClient 4.0. All further +releases in the 4.0 code line will maintain API compatibility with this +release. + +There has been a number of important bug fixes since ALPHA4. All upstream +projects are encouraged to upgrade to the latest release. + +Please note HttpClient currently provides only limited support for NTLM +authentication. For details please see NTLM_SUPPORT.txt. + +------------------- + +Changelog: ------------------- * [HTTPCLIENT-790] Protocol interceptors are now correctly invoked when @@ -12,7 +32,7 @@ Changes since 4.0 Alpha 4 Contributed by Sam Berlin * [HTTPCLIENT-779] Top-level classes (HttpClient, and HttpGet, HttpPut - and similar HttpMethods) throw fewer exceptions. + and similar HttpMethods) throw fewer checked exceptions. Contributed by Sam Berlin * HttpClient will throw an exception if an attempt is made to retry @@ -54,6 +74,572 @@ Changes since 4.0 Alpha 4 * Redesigned local execution context management. Contributed by Oleg Kalnichevski +HttpClient API changes (generated by JarDiff 0.2) +-------------------------------------- + +Class removed: + public org.apache.http.client.AuthState extends java.lang.Object +Class removed: + public abstract org.apache.http.client.ClientRequestDirector extends java.lang.Object +Class removed: + public org.apache.http.conn.params.HttpConnParams extends java.lang.Object +Class removed: + public final org.apache.http.conn.params.HttpConnectionManagerParams extends java.lang.Object implements org.apache.http.conn.params.ConnManagerPNames +Class removed: + public org.apache.http.conn.params.HttpRouteParams extends java.lang.Object +Class removed: + public org.apache.http.impl.client.DefaultClientRequestDirector extends java.lang.Object implements org.apache.http.client.ClientRequestDirector +Class added: + public org.apache.http.auth.AuthState extends java.lang.Object +Class added: + public final org.apache.http.auth.BasicUserPrincipal extends java.lang.Object implements java.security.Principal +Class added: + public org.apache.http.auth.NTCredentials extends java.lang.Object implements org.apache.http.auth.Credentials +Class added: + public org.apache.http.auth.NTUserPrincipal extends java.lang.Object implements java.security.Principal +Class added: + public org.apache.http.client.ClientProtocolException extends java.io.IOException +Class added: + public org.apache.http.client.HttpResponseException extends org.apache.http.client.ClientProtocolException +Class added: + public org.apache.http.client.NonRepeatableRequestException extends org.apache.http.ProtocolException +Class added: + public abstract org.apache.http.client.RequestDirector extends java.lang.Object +Class added: + public abstract org.apache.http.client.ResponseHandler extends java.lang.Object +Class added: + public abstract org.apache.http.client.UserTokenHandler extends java.lang.Object +Class added: + public org.apache.http.client.utils.CloneUtils extends java.lang.Object +Class added: + public abstract org.apache.http.client.utils.Idn extends java.lang.Object +Class added: + public org.apache.http.client.utils.JdkIdn extends java.lang.Object implements org.apache.http.client.utils.Idn +Class added: + public org.apache.http.client.utils.Punycode extends java.lang.Object +Class added: + public org.apache.http.client.utils.Rfc3492Idn extends java.lang.Object implements org.apache.http.client.utils.Idn +Class added: + public abstract org.apache.http.conn.ConnectionKeepAliveStrategy extends java.lang.Object +Class added: + public final org.apache.http.conn.params.ConnManagerParams extends java.lang.Object implements org.apache.http.conn.params.ConnManagerPNames +Class added: + public org.apache.http.conn.params.ConnRouteParams extends java.lang.Object implements org.apache.http.conn.params.ConnRoutePNames +Class added: + public abstract org.apache.http.conn.scheme.HostNameResolver extends java.lang.Object +Class added: + public abstract org.apache.http.impl.auth.AuthSchemeBase extends java.lang.Object implements org.apache.http.auth.AuthScheme +Class added: + public abstract org.apache.http.impl.auth.NTLMEngine extends java.lang.Object +Class added: + public org.apache.http.impl.auth.NTLMEngineException extends org.apache.http.auth.AuthenticationException +Class added: + public org.apache.http.impl.auth.NTLMScheme extends org.apache.http.impl.auth.AuthSchemeBase +Class added: + public org.apache.http.impl.client.BasicResponseHandler extends java.lang.Object implements org.apache.http.client.ResponseHandler +Class added: + public org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy extends java.lang.Object implements org.apache.http.conn.ConnectionKeepAliveStrategy +Class added: + public org.apache.http.impl.client.DefaultRequestDirector extends java.lang.Object implements org.apache.http.client.RequestDirector +Class added: + public org.apache.http.impl.client.DefaultUserTokenHandler extends java.lang.Object implements org.apache.http.client.UserTokenHandler +Class added: + public org.apache.http.impl.cookie.PublicSuffixFilter extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler +Class added: + public org.apache.http.impl.cookie.PublicSuffixListParser extends java.lang.Object +Class changed: org.apache.http.auth.Credentials + Methods removed: + public abstract java.lang.String getPrincipalName(); + + Methods added: + public abstract java.security.Principal getUserPrincipal(); + +Class changed: org.apache.http.auth.UsernamePasswordCredentials + Methods removed: + public java.lang.String getPrincipalName(); + public java.lang.String toText(); + + Methods added: + public java.lang.String getUserName(); + public java.security.Principal getUserPrincipal(); + +Class changed: org.apache.http.client.HttpClient + Methods removed: + public abstract org.apache.http.protocol.HttpContext getDefaultContext(); + + Methods added: + public abstract java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public abstract java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public abstract java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public abstract java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + 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; + + new: + public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + 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; + + new: + public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + Method changed: + old: + public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException; + + new: + public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + 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; + + new: + public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + +Class changed: org.apache.http.client.methods.HttpDelete + Method changed: + old: + public HttpDelete(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpDelete(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpEntityEnclosingRequestBase + Methods added: + public java.lang.Object clone() throws java.lang.CloneNotSupportedException; + + Class descriptor changed: + old: + package abstract org.apache.http.client.methods.HttpEntityEnclosingRequestBase extends org.apache.http.client.methods.HttpRequestBase implements org.apache.http.HttpEntityEnclosingRequest + new: + public abstract org.apache.http.client.methods.HttpEntityEnclosingRequestBase extends org.apache.http.client.methods.HttpRequestBase implements org.apache.http.HttpEntityEnclosingRequest +Class changed: org.apache.http.client.methods.HttpGet + Method changed: + old: + public HttpGet(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpGet(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpHead + Method changed: + old: + public HttpHead(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpHead(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpOptions + Method changed: + old: + public HttpOptions(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpOptions(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpPost + Method changed: + old: + public HttpPost(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpPost(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpPut + Method changed: + old: + public HttpPut(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpPut(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpRequestBase + Methods added: + public java.lang.Object clone() throws java.lang.CloneNotSupportedException; + public boolean isAborted(); + + Class descriptor changed: + old: + package abstract org.apache.http.client.methods.HttpRequestBase extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.methods.AbortableHttpRequest + new: + public abstract org.apache.http.client.methods.HttpRequestBase extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.methods.AbortableHttpRequest, java.lang.Cloneable +Class changed: org.apache.http.client.methods.HttpTrace + Method changed: + old: + public HttpTrace(java.lang.String) throws java.net.URISyntaxException; + + new: + public HttpTrace(java.lang.String); + +Class changed: org.apache.http.client.methods.HttpUriRequest + Methods added: + public abstract void abort() throws java.lang.UnsupportedOperationException; + public abstract boolean isAborted(); + +Class changed: org.apache.http.client.params.ClientPNames + Fields removed: + public final static java.lang.String CONNECTION_MANAGER_TIMEOUT = http.connection-manager.timeout; + public final static java.lang.String PREEMPTIVE_AUTHENTICATION = http.protocol.authentication-preemptive; + +Class changed: org.apache.http.client.params.ClientParamBean + Methods removed: + public void setConnectionManagerTimeout(long); + public void setPreemptiveAuthentication(boolean); + +Class changed: org.apache.http.client.params.HttpClientParams + Methods removed: + public static long getConnectionManagerTimeout(org.apache.http.params.HttpParams); + public static boolean isAuthenticationPreemptive(org.apache.http.params.HttpParams); + public static void setAuthenticationPreemptive(org.apache.http.params.HttpParams, boolean); + public static void setConnectionManagerTimeout(org.apache.http.params.HttpParams, long); + +Class changed: org.apache.http.client.protocol.ClientContext + Fields added: + public final static java.lang.String AUTH_SCHEME_PREF = http.auth.scheme-pref; + public final static java.lang.String USER_TOKEN = http.user-token; + +Class changed: org.apache.http.client.protocol.ClientContextConfigurer + Methods added: + public void setAuthSchemePref(java.util.List); + public void setAuthSchemeRegistry(org.apache.http.auth.AuthSchemeRegistry); + public void setCookieSpecRegistry(org.apache.http.cookie.CookieSpecRegistry); + public void setCredentialsProvider(org.apache.http.client.CredentialsProvider); + + Class descriptor changed: + old: + public org.apache.http.client.protocol.ClientContextConfigurer extends java.lang.Object + new: + public org.apache.http.client.protocol.ClientContextConfigurer extends java.lang.Object implements org.apache.http.client.protocol.ClientContext +Class changed: org.apache.http.conn.BasicManagedEntity + Field changed: + old: + protected boolean attemptReuse; + + new: + protected final boolean attemptReuse; + +Class changed: org.apache.http.conn.ClientConnectionManager + Methods removed: + public abstract void releaseConnection(org.apache.http.conn.ManagedClientConnection); + + Methods added: + public abstract void closeExpiredConnections(); + public abstract void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.conn.ManagedClientConnection + Methods added: + public abstract void setIdleDuration(long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.conn.params.ConnManagerPNames + Fields added: + public final static java.lang.String TIMEOUT = http.conn-manager.timeout; + +Class changed: org.apache.http.conn.params.ConnManagerParamBean + Methods added: + public void setTimeout(long); + +Class changed: org.apache.http.conn.scheme.PlainSocketFactory + Methods added: + public PlainSocketFactory(); + public PlainSocketFactory(org.apache.http.conn.scheme.HostNameResolver); + +Class changed: org.apache.http.conn.ssl.SSLSocketFactory + Methods removed: + public SSLSocketFactory(java.lang.String, java.security.KeyStore, java.lang.String, java.security.KeyStore, java.security.SecureRandom) throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException; + + Methods added: + public SSLSocketFactory(java.lang.String, java.security.KeyStore, java.lang.String, java.security.KeyStore, java.security.SecureRandom, org.apache.http.conn.scheme.HostNameResolver) throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException; + public SSLSocketFactory(javax.net.ssl.SSLContext); + public SSLSocketFactory(javax.net.ssl.SSLContext, org.apache.http.conn.scheme.HostNameResolver); + +Class changed: org.apache.http.impl.auth.DigestScheme + Methods added: + public void overrideParamter(java.lang.String, java.lang.String); + +Class changed: org.apache.http.impl.auth.RFC2617Scheme + Methods removed: + public boolean isProxy(); + public void processChallenge(org.apache.http.Header) throws org.apache.http.auth.MalformedChallengeException; + + Methods added: + protected void parseChallenge(org.apache.http.util.CharArrayBuffer, int, int) throws org.apache.http.auth.MalformedChallengeException; + + Class descriptor changed: + old: + public abstract org.apache.http.impl.auth.RFC2617Scheme extends java.lang.Object implements org.apache.http.auth.AuthScheme + new: + public abstract org.apache.http.impl.auth.RFC2617Scheme extends org.apache.http.impl.auth.AuthSchemeBase +Class changed: org.apache.http.impl.client.AbstractHttpClient + Methods removed: + 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); + public final synchronized org.apache.http.protocol.HttpContext getDefaultContext(); + protected abstract void populateContext(org.apache.http.protocol.HttpContext); + + Methods added: + protected org.apache.http.client.RequestDirector createClientRequestDirector(org.apache.http.protocol.HttpRequestExecutor, org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.conn.ConnectionKeepAliveStrategy, 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.client.UserTokenHandler, org.apache.http.params.HttpParams); + protected abstract org.apache.http.conn.ConnectionKeepAliveStrategy createConnectionKeepAliveStrategy(); + protected abstract org.apache.http.protocol.HttpRequestExecutor createRequestExecutor(); + protected abstract org.apache.http.client.UserTokenHandler createUserTokenHandler(); + public java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + public final synchronized org.apache.http.conn.ConnectionKeepAliveStrategy getConnectionKeepAliveStrategy(); + public final synchronized org.apache.http.protocol.HttpRequestExecutor getRequestExecutor(); + public final synchronized org.apache.http.client.UserTokenHandler getUserTokenHandler(); + public synchronized void setKeepAliveStrategy(org.apache.http.conn.ConnectionKeepAliveStrategy); + public synchronized void setUserTokenHandler(org.apache.http.client.UserTokenHandler); + + Method changed: + old: + public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException; + + new: + public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + 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; + + new: + public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + Method changed: + old: + public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException; + + new: + public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + + 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; + + new: + public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; + +Class changed: org.apache.http.impl.client.DefaultHttpClient + Methods removed: + protected void populateContext(org.apache.http.protocol.HttpContext); + + Methods added: + protected org.apache.http.conn.ConnectionKeepAliveStrategy createConnectionKeepAliveStrategy(); + protected org.apache.http.protocol.HttpRequestExecutor createRequestExecutor(); + protected org.apache.http.client.UserTokenHandler createUserTokenHandler(); + +Class changed: org.apache.http.impl.client.EntityEnclosingRequestWrapper + Methods added: + public boolean isRepeatable(); + + Class descriptor changed: + old: + package org.apache.http.impl.client.EntityEnclosingRequestWrapper extends org.apache.http.impl.client.RequestWrapper implements org.apache.http.HttpEntityEnclosingRequest + new: + public org.apache.http.impl.client.EntityEnclosingRequestWrapper extends org.apache.http.impl.client.RequestWrapper implements org.apache.http.HttpEntityEnclosingRequest +Class changed: org.apache.http.impl.client.RequestWrapper + Methods added: + public void abort() throws java.lang.UnsupportedOperationException; + public int getExecCount(); + public void incrementExecCount(); + public boolean isAborted(); + public boolean isRepeatable(); + public void resetHeaders(); + + Class descriptor changed: + old: + package org.apache.http.impl.client.RequestWrapper extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest + new: + public org.apache.http.impl.client.RequestWrapper extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest +Class changed: org.apache.http.impl.conn.AbstractClientConnAdapter + Methods added: + public void setIdleDuration(long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.impl.conn.AbstractPoolEntry + Methods removed: + protected void resetTrackedRoute(); + + Methods added: + protected void shutdownEntry(); + + Field changed: + old: + protected volatile org.apache.http.conn.OperatedClientConnection connection; + + new: + protected final org.apache.http.conn.OperatedClientConnection connection; + +Class changed: org.apache.http.impl.conn.DefaultClientConnection + Method changed: + old: + public void opening(java.net.Socket, org.apache.http.HttpHost); + + new: + public void opening(java.net.Socket, org.apache.http.HttpHost) throws java.io.IOException; + +Class changed: org.apache.http.impl.conn.IdleConnectionHandler + Methods removed: + public void add(org.apache.http.HttpConnection); + public void remove(org.apache.http.HttpConnection); + + Methods added: + public void add(org.apache.http.HttpConnection, long, java.util.concurrent.TimeUnit); + public void closeExpiredConnections(); + public boolean remove(org.apache.http.HttpConnection); + +Class changed: org.apache.http.impl.conn.LoggingSessionInputBuffer + Class descriptor changed: + old: + package org.apache.http.impl.conn.LoggingSessionInputBuffer extends java.lang.Object implements org.apache.http.io.SessionInputBuffer + new: + public org.apache.http.impl.conn.LoggingSessionInputBuffer extends java.lang.Object implements org.apache.http.io.SessionInputBuffer +Class changed: org.apache.http.impl.conn.LoggingSessionOutputBuffer + Class descriptor changed: + old: + package org.apache.http.impl.conn.LoggingSessionOutputBuffer extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer + new: + public org.apache.http.impl.conn.LoggingSessionOutputBuffer extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer +Class changed: org.apache.http.impl.conn.SingleClientConnManager + Methods removed: + public void releaseConnection(org.apache.http.conn.ManagedClientConnection); + + Methods added: + public void closeExpiredConnections(); + public void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); + + Fields added: + protected long connectionExpiresTime; + +Class changed: org.apache.http.impl.conn.tsccm.AbstractConnPool + Methods removed: + public abstract void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean); + + Methods added: + public void closeExpiredConnections(); + public abstract void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean, long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.impl.conn.tsccm.ConnPoolByRoute + Methods removed: + public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean); + + Methods added: + public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean, long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.impl.conn.tsccm.RefQueueWorker + Fields removed: + protected final org.apache.commons.logging.Log LOG; + +Class changed: org.apache.http.impl.conn.tsccm.RouteSpecificPool + Methods removed: + public org.apache.http.impl.conn.tsccm.WaitingThread dequeueThread(); + + Methods added: + public org.apache.http.impl.conn.tsccm.WaitingThread nextThread(); + +Class changed: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager + Methods removed: + public void releaseConnection(org.apache.http.conn.ManagedClientConnection); + + Methods added: + public void closeExpiredConnections(); + public void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); + +Class changed: org.apache.http.impl.cookie.BasicClientCookie + Methods added: + public java.lang.Object clone() throws java.lang.CloneNotSupportedException; + + Class descriptor changed: + old: + public org.apache.http.impl.cookie.BasicClientCookie extends java.lang.Object implements org.apache.http.cookie.SetCookie, org.apache.http.cookie.ClientCookie + new: + public org.apache.http.impl.cookie.BasicClientCookie extends java.lang.Object implements org.apache.http.cookie.SetCookie, org.apache.http.cookie.ClientCookie, java.lang.Cloneable +Class changed: org.apache.http.impl.cookie.BasicClientCookie2 + Methods added: + public java.lang.Object clone() throws java.lang.CloneNotSupportedException; + +Class changed: org.apache.http.impl.cookie.BrowserCompatSpec + Fields added: + protected final static java.lang.String[] DATE_PATTERNS; + +Class changed: org.apache.http.impl.cookie.NetscapeDraftSpec + Methods added: + public NetscapeDraftSpec(java.lang.String[]); + + Fields added: + protected final static java.lang.String EXPIRES_PATTERN = EEE, dd-MMM-yyyy HH:mm:ss z; + +API diff generated by JarDiff http://www.osjava.org/jardiff/ + +HttpMime API changes (generated by JarDiff 0.2) +-------------------------------------- + +Class removed: + public abstract org.apache.http.entity.mime.ContentDescriptor extends java.lang.Object +Class changed: org.apache.http.entity.mime.FormBodyPart + Methods removed: + protected void generateContentType(org.apache.http.entity.mime.ContentDescriptor); + protected void generateTransferEncoding(org.apache.http.entity.mime.ContentDescriptor); + + Methods added: + protected void generateContentType(org.apache.james.mime4j.descriptor.ContentDescriptor); + protected void generateTransferEncoding(org.apache.james.mime4j.descriptor.ContentDescriptor); + +Class changed: org.apache.http.entity.mime.HttpMultipart + Methods removed: + public HttpMultipart(); + + Methods added: + public HttpMultipart(java.lang.String); + public void writeTo(java.io.OutputStream, int) throws java.io.IOException, org.apache.james.mime4j.MimeException; + +Class changed: org.apache.http.entity.mime.content.ContentBody + Class descriptor changed: + old: + public abstract org.apache.http.entity.mime.content.ContentBody extends java.lang.Object implements org.apache.james.mime4j.message.Body, org.apache.http.entity.mime.ContentDescriptor + new: + public abstract org.apache.http.entity.mime.content.ContentBody extends java.lang.Object implements org.apache.james.mime4j.message.Body, org.apache.james.mime4j.descriptor.ContentDescriptor +Class changed: org.apache.http.entity.mime.content.FileBody + Methods removed: + public java.nio.charset.Charset getCharset(); + public void writeTo(java.io.OutputStream) throws java.io.IOException; + + Methods added: + public java.lang.String getCharset(); + public java.util.Map getContentTypeParameters(); + public java.lang.String getMediaType(); + public java.lang.String getSubType(); + public void writeTo(java.io.OutputStream, int) throws java.io.IOException; + +Class changed: org.apache.http.entity.mime.content.InputStreamBody + Methods removed: + public java.nio.charset.Charset getCharset(); + public void writeTo(java.io.OutputStream) throws java.io.IOException; + + Methods added: + public java.lang.String getCharset(); + public java.util.Map getContentTypeParameters(); + public java.lang.String getMediaType(); + public java.lang.String getSubType(); + public void writeTo(java.io.OutputStream, int) throws java.io.IOException; + +Class changed: org.apache.http.entity.mime.content.StringBody + Methods removed: + public java.nio.charset.Charset getCharset(); + public void writeTo(java.io.OutputStream) throws java.io.IOException; + + Methods added: + public java.lang.String getCharset(); + public java.util.Map getContentTypeParameters(); + public java.lang.String getMediaType(); + public java.lang.String getSubType(); + public void writeTo(java.io.OutputStream, int) throws java.io.IOException; + +API diff generated by JarDiff http://www.osjava.org/jardiff/ + -------------------------------------- Release 4.0 Alpha 4 diff --git a/module-client/pom.xml b/module-client/pom.xml index 3fd9f5c0e..e57fbccfd 100644 --- a/module-client/pom.xml +++ b/module-client/pom.xml @@ -37,7 +37,7 @@ 4.0-alpha5-SNAPSHOT httpclient - HttpClient (base module) + HttpClient HttpComponents Client (base module) diff --git a/module-client/src/site/site.xml b/module-client/src/site/site.xml index a05241d41..31bd749c9 100644 --- a/module-client/src/site/site.xml +++ b/module-client/src/site/site.xml @@ -51,9 +51,7 @@ - - - - + + diff --git a/module-httpmime/pom.xml b/module-httpmime/pom.xml index 0669afc33..a0c68b0ba 100644 --- a/module-httpmime/pom.xml +++ b/module-httpmime/pom.xml @@ -37,7 +37,7 @@ 4.0-alpha5-SNAPSHOT httpmime - HttpClient (MIME entities) + HttpMime HttpComponents HttpClient - MIME coded entities diff --git a/module-httpmime/src/site/site.xml b/module-httpmime/src/site/site.xml index 2d83d100a..31bd749c9 100644 --- a/module-httpmime/src/site/site.xml +++ b/module-httpmime/src/site/site.xml @@ -51,9 +51,7 @@ - - - - + + diff --git a/pom.xml b/pom.xml index 065e8cf1e..dd15830c1 100644 --- a/pom.xml +++ b/pom.xml @@ -80,9 +80,7 @@ module-client - diff --git a/src/site/apt/download.apt b/src/site/apt/download.apt index fb3d64e50..9a5355e31 100644 --- a/src/site/apt/download.apt +++ b/src/site/apt/download.apt @@ -36,7 +36,7 @@ HttpClient Downloads The latest release available for download: - {{{http://hc.apache.org/downloads.cgi}4.0-alpha4}} - + {{{http://hc.apache.org/downloads.cgi}4.0-beta1}} - {{{http://www.apache.org/dist/httpcomponents/httpclient/RELEASE_NOTES.txt}Release Notes}} - {{{http://www.apache.org/licenses/LICENSE-2.0.html}License}} @@ -52,7 +52,7 @@ Dependency management with Maven org.apache.httpcomponents httpclient - 4.0-alpha4 + 4.0-beta1 compile ------------------------- @@ -63,7 +63,7 @@ Dependency management with Maven org.apache.httpcomponents httpmime - 4.0-alpha4 + 4.0-beta1 compile ------------------------- diff --git a/src/site/apt/examples.apt b/src/site/apt/examples.apt index 462da8088..2248d03f8 100644 --- a/src/site/apt/examples.apt +++ b/src/site/apt/examples.apt @@ -34,18 +34,19 @@ HttpClient Examples - * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java}Direct request}} - - This example demonstrates how to send an HTTP request directly. + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientWithResponseHandler.java}Response handling}} - * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java}Request via a proxy}} - - This example demonstrates how to send an HTTP request via a proxy. + This example demonstrates how to process HTTP responses using a response handler. This is + the recommended way of executing HTTP requests and processing HTTP responses. This approach + enables the caller to concentrate on the process of digesting HTTP responses and to delegate + the task of system resource deallocation to HttpClient. The use of an HTTP response guarantees + that the underlying HTTP connection will be released back to the connection manager automatically + in all cases. - * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientConnectionRelease.java}Connection management}} + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientConnectionRelease.java}Manual connection release}} - This example demonstrates the recommended way of using API to make sure the underlying - connection gets released back to the connection manager. + This example demonstrates how to ensure the release of the underlying HTTP connection back to + the connection manager in case of a manual processing of HTTP responses. * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientAbortMethod.java}Abort method}} @@ -56,6 +57,10 @@ HttpClient Examples This example uses HttpClient to execute an HTTP request against a target site that requires user authentication. + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java}Request via a proxy}} + + This example demonstrates how to send an HTTP request via a proxy. + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java}Proxy authentication}} A simple example showing execution of an HTTP request over a secure connection tunneled through @@ -93,5 +98,14 @@ HttpClient Examples interceptors makes content compression completely transparent to the consumer of the HttpClient interface. + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java}Preemptive BASIC authentication}} + + This example shows how HttpClient can be customized to authenticate preemptively using BASIC + scheme. Generally, preemptive authentication can be considered less secure than a response to + an authentication challenge and therefore discouraged. - + * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java}Preemptive DIGEST authentication}} + + This example shows how HttpClient can be customized to authenticate preemptively using DIGEST + scheme. Generally, preemptive authentication can be considered less secure than a response to + an authentication challenge and therefore discouraged. \ No newline at end of file diff --git a/src/site/site.xml b/src/site/site.xml index 6d9edba62..debdac5c3 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -55,9 +55,7 @@ - - - - + +