Changes since 4.0.2 ------------------- * [HTTPASYNC-88] persistent connections can time out while kept alive in the pool causing unexpected SocketTimeoutException Contributed by Oleg Kalnichevski * [HTTPASYNC-86]: fixed a race condition upon connection lease from the connection pool: in very rare circumstances the main execution thread can get jammed for so long that the I/O dispatch thread succeeds in completing the request and releasing the connection while the main still is performing connection validation. Contributed by Oleg Kalnichevski Release 4.0.2 ------------------- HttpAsyncClient 4.0.2 (GA) is a bug fix release that addresses several issues reported since release 4.0.1. This release also upgrades HttpClient dependency to the latest stable version. All users of HttpAsyncClient 4.0 are strongly advised to upgrade. Changelog ------------------- * [HTTPASYNC-79] Rearranged sequence of operations upon connection lease to eliminate possibility of a connection leak due to race condition on keep-alive boundary Contributed by Oleg Kalnichevski * Replaced dynamic proxies with custom proxy classes to reduce thread contention. Contributed by Oleg Kalnichevski * [HTTPASYNC-73] Original request headers are not copied upon redirect Contributed by Oleg Kalnichevski Release 4.0.1 ------------------- This maintenance release fixes a number of bugs including incorrect OSGi bundle metadata found since release 4.0. This release also upgrades HttpCore and HttpClient dependencies to the latest stable versions. All users of HttpAsyncClient 4.0 are advised to upgrade. Changelog ------------------- * [HTTPASYNC-69] Premature cancellation of the response consumer to immediately shut down and release the underlying connection. Contributed by Oleg Kalnichevski * [HTTPASYNC-68] Connection closed by the opposite endpoint immediately upon its lease from the pool is never released back and reclaimed by the pool (collection leak). Contributed by Dmitry Potapov * Persistent connections always get discarded in case of a response future cancellation even if they can be kept alive. Contributed by Oleg Kalnichevski * [HTTPASYNC-64] Race conditions in async caching module. Contributed by Oleg Kalnichevski * [HTTPASYNC-65] Relaxed OSGi dependency import version ranges Contributed by Christian Schneider * [HTTPCLIENT-1446] NTLM proxy + BASIC target auth fails with 'Unexpected state: MSG_TYPE3_GENERATED'. Contributed by Oleg Kalnichevski * [HTTPASYNC-63] ConnectionShutdownException thrown in case of out-of-sequence response. Contributed by Oleg Kalnichevski * [HTTPCLIENT-1442] Authentication header set by the user gets removed in case of proxy authentication. Contributed by Oleg Kalnichevski * [HTTPASYNC-60] Fixed incorrect OSGi Symbolic-BundleName. Contributed by M. van Cuijk Release 4.0 ------------------- This is the first stable (GA) release of Apache HttpAsyncClient 4.0. HttpAsyncClient is a library for asynchronous client-side HTTP communication built on top of HttpCore NIO transport. It is a complementary library to Apache HttpClient intended and optimized for special cases whereby ability to scale to many thousands of concurrent connections is more important than performance in terms of raw data throughput. HttpAsyncClient 4.0 is designed to have similar APIs as Apache HttpClient 4.3 and a comparable feature set. In addition HttpAsyncClient provides full support for zero-copy file upload and download operations. It presently does not support transparent content decompression and automatic I/O error recovery. These features may be added in future releases. Changelog: ------------------- * [HTTPASYNC-56] Fixed thread deadlock in DefaultClientExchangeHandlerImpl. Contributed by Oleg Kalnichevski * [HTTPASYNC-57] HTTPS request execution via a HTTP proxy can cause an infinite loop. Contributed by Oleg Kalnichevski * [HTTPASYNC-52] Proxy configuration set at the request level does not apply. Contributed by Oleg Kalnichevski * [HTTPASYNC-51] Request producers do not get correctly reset if the server responds early (out of sequence), which can cause entity enclosing requests to be malformed in case of re-execution. Contributed by Oleg Kalnichevski * [HTTPASYNC-45] CachingHttpAsyncClient to override Future returned by the backend. Contributed by James Leigh Release 4.0 Beta 4 ------------------- The 4.0 BETA4 release delivers significant performance improvements in request execution, especially for short HTTP messages, and also re-aligns programming interfaces used by the library with HttpCore 4.3 and HttpClient 4.3 APIs. Configuration and preference APIs of HttpAsyncClient are now consistent with those used by HttpClient 4.3. Users of previous releases of HttpAsyncClient are advised to upgrade. Changelog: * [HTTPCLIENT-1353] 303 Redirects Should be Cacheable Contributed by James Leigh * Redesign of configuration and preference APIs. Contributed by Oleg Kalnichevski * Redesign of connection management APIs. Contributed by Oleg Kalnichevski * [HTTPASYNC-34] HttpAsyncClient fails to re-start request execution if the opposite end prematurely terminates persistent connection. Contributed by Oleg Kalnichevski * [HTTPASYNC-28] PoolEntry's expiry information is never updated. Contributed by Daniel Kulp Release 4.0 Beta 3 ------------------- The 4.0 BETA3 is a maintenance release that picks up the latest bug fixes in the core components. Changelog: * Upgraded HttpCore to version 4.2.2 * [HTTPASYNC-26] OSGi bundle import fix. Contributed by Daniel Kulp * [HTTPASYNC-25] AsyncSchemeRegistry instance set in the execution context takes precedence over the default one. Contributed by Daniel Kulp * Ported fix for HTTPCLIENT-1224 Contributed by Oleg Kalnichevski Release 4.0 Beta 2 ------------------- The 4.0 BETA2 release fixes a number of non-critical issues found since release 4.0-beta1 and introduces basic support for HTTP/1.1 response caching. Please note that caching for streaming HTTP exchanges is currently not supported. Users of previous releases of HttpAsyncClient are advised to upgrade. Changelog: * [HTTPASYNC-20] HTTP exchange can now be aborted with HttpUriRequest#abort(). Contributed by Oleg Kalnichevski * [HTTPASYNC-17] Caching HttpAsyncClient facade. Contributed by Clinton Nielsen * [HTTPASYNC-19] Fixed incorrect execution of message exchanges that span across multiple hosts (for instance, in case of a request redirect). Contributed by Oleg Kalnichevski * [HTTPASYNC-18] Fixed thread deadlock that could occur in the DefaultAsyncRequestDirector in case of a runtime exception. Contributed by Oleg Kalnichevski * [HTTPASYNC-15]: HttpAsyncClient hangs if connection leased from the pool gets immediately closed by the opposite endpoint. Contributed by Oleg Kalnichevski Release 4.0 Beta 1 ------------------- The 4.0 BETA1 release completes the application programming interface and the feature set of HttpAsyncClient and upgrades to the latest versions of core and client components (HttpCore 4.2-beta1 and HttpClient 4.2-beta1). As of this release HttpAsyncClient is expected to be API stable. Users of previous releases of HttpAsyncClient are advised to upgrade. Changelog: * [HTTPASYNC-11]: HttpAsyncClient fails to re-authenticate if connection is non-persistent. Contributed by Oleg Kalnichevski * [HTTPASYNC-5]: Allow customized LineParser for asynchronous connections. Contributed by Oleg Kalnichevski Release 4.0 Alpha 3 ------------------- The 4.0 ALPHA3 release largely completes the application programming interface and feature set of HttpAsyncClient. While the API may still change in the course of the ALPHA development phase, this is expected to be the last round of major API changes and the API is expected to be reasonably stable as of this release. We are kindly asking actual and prospective users of HttpAsyncClient to review its API, evaluate its functionality and give us feedback while the 4.0 API is still not final. If no major flaws are discovered the 4.0 API is expected to be frozen with the next BETA release. Changelog: * [HTTPASYNC-6]: Fixed NPE in the DefaultAsyncRequestDirector#responseCompleted method. Contributed by Oleg Kalnichevski Release 4.0 Alpha 2 ------------------- The second ALPHA release of HttpAsyncClient 4.0 comes with a number of important improvements and enhancements. As of this version HttpAsyncClient fully supports HTTP state management (cookies) and HTTP authentication (basic, digest, NTLM, spnego/kerberos). Connection management classes have been thoroughly reworked and improved. This version also improves support for zero copy file upload / download operations. The HttpAsyncClient 4.0 API is still considered experimental and is expected to change in the course of the ALPHA development phase. Please note that currently HttpAsyncClient DOES NOT support * Stateful HTTP connections Changelog: * [HTTPASYNC-3]: Fixed incorrect handling of expired I/O sessions by SessionPool. Contributed by Oleg Kalnichevski Release 4.0 Alpha 1 ------------------- HttpAsyncClient is a library for asynchronous client-side HTTP communication built on HttpCore NIO and HttpClient components. HttpAsyncClient is NOT meant to replace or supersede Apache HttpClient. It is a complementary library to Apache HttpClient intended for special cases where ability to handle a great number of concurrent connections is more important than performance in terms of a raw data throughput or for those users who prefer event-driven APIs. The HttpAsyncClient 4.0 API is still very experimental and is expected to change in the course of the ALPHA development phase. Please note that currently HttpAsyncClient DOES NOT support * HTTP state management (cookies) * HTTP authentication * Stateful HTTP connections