Release 4.1.5 ------------------- This is a maintenance release that fixes a number of issues discovered since 4.1.4. Changelog ------------------- * Upgraded HttpCore to version 4.4.15 and HttpClient to version 4.5.13. Contributed by Oleg Kalnichevski * HTTPASYNC-160: HttpAsyncClient in INACTIVE or STOPPED state throws a IllegalStateException causing the current thread to terminate. Contributed by Oleg Kalnichevski * HTTPASYNC-156: Possible deadlock condition in case of concurrent connection request completion and cancellation. Contributed by Oleg Kalnichevski * HTTPASYNC-155: Runtime exception in AbstractClientExchangeHandler can cause the I/O reactor to shut down. Contributed by Oleg Kalnichevski * Added connection time to live parameter to HttpAsyncClientBuilder. Contributed by Oleg Kalnichevski * Bug fix: PipeliningClientExchangeHandlerImpl to fail result future in case of an execution failure. Contributed by Oleg Kalnichevski * HTTPASYNC-152: InternalIODispatch#createConnection to throw CancelledKeyException instead of IllegalStateException. Contributed by Oleg Kalnichevski Release 4.1.4 ------------------- This is a maintenance release that adds Automatic-Module-Name to the manifest for compatibility with Java 9 Platform Module System and fixes a number of issues discovered since 4.1.3 Changelog ------------------- * Add Automatic-Module-Name in manifest so Java9 modular applications can depend on this library. Contributed by Oleg Kalnichevski * Upgraded HttpCore dependency to version 4.4.10; upgraded HttpClient dependency to version 4.5.6. Contributed by Oleg Kalnichevski * Pass the original request as a parameter to the redirect handler. Contributed by Oleg Kalnichevski * [HTTPASYNC-135] HttpAsyncMethods.createHead() methods creates HttpGet objects. Contributed by Mateusz Matela * [HTTPASYNC-136]: Failing tests on Fedora 28 due to weak encryption algorithms in test keystore. Contributed by Gary Gregory and Michael Simacek * [HTTPASYNC-126] Increase range of commons-logging in OSGI manifest * [HTTPASYNC-118] HttpAsyncClientBuilder to use SystemDefaultCredentialsProvider by default when configured to use system properties. Contributed by Oleg Kalnichevski Release 4.1.3 ------------------- Changelog ------------------- * HttpCore upgraded to version 4.4.6 * HttpClient upgraded to version 4.5.3 * [HTTPASYNC-110] Default exchange handler fails to correctly re-use fully established tunnelled connection leased from the pool when CONNECT request results in 407 over connection that cannot be kept alive. Contributed by Oleg Kalnichevski * [HTTPASYNC-116] Correct cancellation of client message exchange. Contributed by Oleg Kalnichevski * Fix HttpAsyncMethods#createPost/createPut(URI,byte[],ContentType): set entity to request Contributed by Dmitry Potapov Release 4.1.2 ------------------- This is a maintenance release that fixes a number of issues discovered since 4.1.1 and upgrades HttpCore and HttpClient dependencies. Changelog ------------------- * HttpCore upgraded to version 4.4.5 * HttpClient upgraded to version 4.5.2 * [HTTPASYNC-105] socketTimeout is not reset back to default after a request that has specific timeout Contributed by Oleg Kalnichevski * [HTTPASYNC-101 CachingHttpAsyncClient to create default HttpContext if none specified Contributed by Oleg Kalnichevski * [HTTPASYNC-97] Upgraded HttpClient OSGi dependency to 4.5 Contributed by Oleg Kalnichevski Release 4.1.1 ------------------- This is a maintenance release that fixes a number of issues discovered since 4.1 and upgrades HttpCore and HttpClient dependencies. Changelog ------------------- * HttpCore upgraded to version 4.4.4 * HttpClient upgraded to version 4.5.1 * [HTTPASYNC-92] Fixed osgi bundle imports (added missing 'org.apache.http.ssl') Contributed by Daniel Kulp * HttpAsyncClientBuilder ignores UseSystemProperties setting when initializing SSL context Contributed by Oleg Kalnichevski Release 4.1 ------------------- This is the first stable (GA) release of HttpAsyncClient 4.1. Notable features and enhancements included in 4.1 series are: * Support for pipelined request execution * Support for the latest HTTP state management specification (RFC 6265). Please note that the old cookie policy is still used by default for compatibility reasons. RFC 6265 compliant cookie policies need to be explicitly configured by the user. Please also note that as of next feature release support for Netscape draft, RFC 2109 and RFC 2965 cookie policies will be deprecated and disabled by default. It is recommended to use RFC 6265 compliant policies for new applications unless compatibility with RFC 2109 and RFC 2965 is required and to migrate existing applications to the default cookie policy. * Enhanced, redesigned and rewritten default SSL hostname verifier with improved RFC 2818 compliance * Default SSL hostname verifier and default cookie policy now validate certificate identity and cookie domain of origin against the public suffix list maintained by Mozilla.org * Authentication cache thread-safety: authentication cache used by HttpClient is now thread-safe and can be shared by multiple threads in order to re-use authentication state for subsequent requests Changelog: ------------------- * [HTTPASYNC-90] Fixed SNI support. Contributed by David * [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 * Update Apache Commons Logging version from 1.1.3 to 1.2. Contributed by Gary Gregory Release 4.1 BETA1 ------------------- This is the first BETA release of HttpAsyncClient 4.1. Notable features and enhancements included in 4.1 series are: * Support for pipelined request execution * Enhanced redesigned and rewritten default SSL hostname verifier with improved RFC 2818 compliance * Default SSL hostname verifier and default cookie policy now validate certificate identity and cookie domain of origin against the public suffix list maintained by Mozilla.org * Authentication cache thread-safety: authentication caches used by HttpAsyncClient is now thread-safe and can be shared by multiple contexts in order to re-use authentication state for subsequent requests 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