[ https://issues.apache.org/jira/browse/HTTPCORE-148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569973#action_12569973 ]
Oleg Kalnichevski commented on HTTPCORE-148: -------------------------------------------- Sam I guess my main gripe is the HttpRequestHandler interface that implies blocking processing of HTTP requests and does not seem to fit well. So, the essence of my proposal is to come up a new NHttpRequestHandler interface instead of trying to work around the blocking nature of HttpRequestHandler. Something along these lines: (1) AsyncNHttpServiceHandler receives an HTTP request (2) if it is an entity enclosing request NHttpRequestHandler#entityRequest event fires and the handler creates a custom instance of ConsumingNHttpEntity. There is no longer a need to inject custom processing logic through ContentListener (3) otherwise go to 5 (4) NHttpRequestHandler#entityContent event fires as long as there is still incoming content to consume (5) NHttpRequestHandler#handle event fires as soon as the incoming content has been fully consumed or if the request does not enclose an entity. This method does not have to trigger a response. Think of situations when the request needs to be dispatched through a different transport to a different target server and this may take quite a while. (6) At some point of time NHttpResponseTrigger#commit is called to submit the response. I am fine with keeping ContentListener if you like it better, but I personally tend to prefer to provide a custom implementation of ConsumingNHttpEntity instead of injecting some all the processing logic through ContentListener. But that is just my personal, somewhat different way of looking at things. It does not have to be that way. The main motivating factor for proposing these API changes is that I kind of think we might be able to simulate the functionality of both the buffering and throttling service handlers on top of AsyncNHttpServiceHandler, which would be quite nice. Does this all sound completely off base? Oleg > Create AsyncNHttpServiceHandler & AsyncNHttpClientHandler > --------------------------------------------------------- > > Key: HTTPCORE-148 > URL: https://issues.apache.org/jira/browse/HTTPCORE-148 > Project: HttpComponents Core > Issue Type: New Feature > Components: HttpCore NIO > Affects Versions: 4.0-beta2 > Reporter: Sam Berlin > Assignee: Oleg Kalnichevski > Attachments: changes.txt > > > Attached is a patch for AsyncNHttpServiceHandler. It actually works (as > tested by running & hitting it with IE.) :) > To test, run the example 'AsyncNHttpFileServer' in the examples directory or > the TestAsyncNHttpHandlers test. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]