The proposed new AsyncWeb client API is available here for your viewing
pleasure:
http://svn.apache.org/repos/asf/mina/sandbox/mheath/asyncweb/client/

I've taken into account a lot of the feedback I've received so far.
Some of the big changes include:

- I've separated the HttpClientFactory and the HttpConnector.  The
HttpConnector provides HttpConnection objects which can be thought of as
a step above a MINA IoSession.  The HttpClientFactory produces
HttpClient instances that provide a friendlier interface to issuing
asynchronous HTTP requests.  The configuration options have been
separated as well
- The HttpFuture object has get/setPayload methods that allow the user
to arbitrarily associate an object with the future (this is an idea
borrow from the JSR 203 IoFuture).
- I added an HttpRequestFuture interface that extends HttpFuture and
returns the HttpRequest object used to initiate the request
- I added support for sending HttpRequest objects directly
- I added PartialResponseListener for dealing with large responses.
This has the same name as an interface proposed by Julien for the server
API so we may need to change the name and/or discover overlap with the
server side of the framework
- I added some configuration options for HTTP proxy settings

Some of the things that we need to work on still
- We still need to add something analogous to the IoServiceListener in
MINA or the Event mechanism in AHC
- We need some way for configuring different encoding mechanisms (i.e.
gzip encoding)
- Caching - good caching and support for ETag would be a big plus

I'm thinking that a HttpClientFactory would use a HttpConnector under
the hood.  This would allow us to implement HttpClientFactory and
HttpClient once and be able to plug in any transport that implements
HttpConnector.  We can also implement connection pooling by creating a
HttpConnector implementation that proxies another HttpConnector that
does the actual network communication.

It's still a work in progress so please tell me what you don't like and
what could be improved.

-Mike

Reply via email to