Hi Roland,

On 6/10/07, Roland Weber <[EMAIL PROTECTED]> wrote:

Hi Daniel,

my apologies for the state of our website.


no problem, happens with my projects at work all the time...

The current
status of HttpAsync is whack-puffed. I buried the ashes
in SVN [2] just after HttpCore-alpha4 was released.
There are no current plans to resurrect the idea. Since
most people associate "async" with "NIO", we are now
referring to the original idea as HttpDispatch. The
empty HttpAsync component has become a potential home
for NIO modules.

> Was it intended to be used both with a blocking and a non-blocking
> implementation (only internally, not from the client side of view, i.e.
one
> implementation on httpcore, one on httpcore-nio)?

Yes. The API is intentionally neutral. I meant to develop
a blocking implementation, since that's what I know. I
agree with Oleg that a NIO implementation would make
more sense.


Sounds like a nice API if there's a decent way to pull it off.

Are there any thoughts around, preliminary designs,
> starting points to investigate for the design
> of such a component?

There is a design page in the Wiki:
http://wiki.apache.org/jakarta-httpclient/HttpAsyncThreadingDesign

The design for the dispatching of requests using
blocking IO is rather well developed. There is no
corresponding design for NIO. Questions such as the
handling of tunnelling, authentication, redirects,
or expect-continue handshake (Ouch!) had not yet
been adressed. I had some ideas about logging,
but they were not formally written down iirc.
The design was created at a very early point of
HttpComponents development. In fact, way too early.
Since it was whack-puffed, we have created a lot of
pieces for that puzzle in HttpConn and HttpClient.

If you feel like working on a NIO implementation,
you could start adding your ideas to the Wiki.
I can dig out the API and update it based on some
of the newer pieces in HttpClient and/or HttpConn.
I feel that at the current state of development,
there would be no point in resurrecting the early
attempt at a blocking implementation.


I'm now reading the wiki and will then delve into the code. You can expect a
whole host of new questions when I'm through with that ;) A couple of things
I do have already on my mind:

  - I'm not too well versed in http to know all the details involved.
  I'd certainly need a guide so that the things I come up with end up being
  too simplistic. I actually don't quite see the ouch yet, but I'll
  investigate.
  - What version of jdk would you target with httpDispatch? My first
  shot would be: API maybe 1.3, and then pluggable backends depending on
  needs (don't know yet).
  - Is there a testsuite how you test httpclient, beside the unit tests.
  I'd like to have some way of telling if I'm on the right track and
  regression testing most of the time does the trick with alternative
  implementations.

Thanks for the pointers,
Daniel

Reply via email to