Changes since 4.0 Alpha 2
-------------------

* [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
