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
