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 <olegk at apache.org>

* [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 <potapov.d at gmail.com>

* Persistent connections always get discarded in case of a response future cancellation
  even if they can be kept alive.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-64] Race conditions in async caching module.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-65] Relaxed OSGi dependency import version ranges
  Contributed by Christian Schneider <chris at die-schneider.net> 

* [HTTPCLIENT-1446] NTLM proxy + BASIC target auth fails with 'Unexpected state:
  MSG_TYPE3_GENERATED'.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-63] ConnectionShutdownException thrown in case of out-of-sequence response.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPCLIENT-1442] Authentication header set by the user gets removed in case
  of proxy authentication.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-60] Fixed incorrect OSGi Symbolic-BundleName.
  Contributed by M. van Cuijk <mark at phedny.net>



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 <olegk at apache.org>

* [HTTPASYNC-57] HTTPS request execution via a HTTP proxy can cause an infinite loop.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-52] Proxy configuration set at the request level does not apply.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [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 <olegk at apache.org>

* [HTTPASYNC-45] CachingHttpAsyncClient to override Future returned by the backend.
  Contributed by James Leigh <james at 3roundstones dot com>


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 <james at 3roundstones dot com>

* Redesign of configuration and preference APIs. 
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* Redesign of connection management APIs.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-34] HttpAsyncClient fails to re-start request execution if the opposite end 
  prematurely terminates persistent connection. 
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-28] PoolEntry's expiry information is never updated.
  Contributed by Daniel Kulp <dkulp at apache.org>



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 <dkulp at apache.org>

* [HTTPASYNC-25] AsyncSchemeRegistry instance set in the execution context takes precedence over
  the default one.
  Contributed by Daniel Kulp <dkulp at apache.org> 

* Ported fix for HTTPCLIENT-1224
  Contributed by Oleg Kalnichevski <olegk at apache.org>


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 <olegk at apache.org>

* [HTTPASYNC-17] Caching HttpAsyncClient facade.
  Contributed by Clinton Nielsen <clinton.h.nielsen at gmail.com>

* [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 <olegk at apache.org>

* [HTTPASYNC-18] Fixed thread deadlock that could occur in the DefaultAsyncRequestDirector 
  in case of a runtime exception.
  Contributed by Oleg Kalnichevski <olegk at apache.org>

* [HTTPASYNC-15]: HttpAsyncClient hangs if connection leased from the pool gets immediately closed 
  by the opposite endpoint.
  Contributed by Oleg Kalnichevski <olegk at apache.org>


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 <olegk at apache.org>

* [HTTPASYNC-5]: Allow customized LineParser for asynchronous connections.
  Contributed by Oleg Kalnichevski <olegk at apache.org>



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 <olegk at apache.org>


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 <olegk at apache.org>


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
