[
https://issues.apache.org/jira/browse/HTTPCORE-148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570075#action_12570075
]
Sam Berlin commented on HTTPCORE-148:
-------------------------------------
I tried a quick go at hacking up NHttpRequestHandler, with a separate method
for entityRequest & handle, and immediately noticed a problem with the
NBlockingHttpRequestHandler (the one intended to help with blocking
HttpRequestHandlers). In the new scheme, there doesn't appear to be a
possibility to call HttpRequestHandler.handle (ie, handle on the delegate
handler) while the content is being consumed. Instead, entityRequest must
return a listener that buffers the entire contents in memory and after it's
read, handle is called. What if ContentListener (or ConsumingNHttpRequest,
whichever ends up being the content-consuming-callback) returned true|false to
consumeContent to indicate whether or not flow can continue? In normal cases,
it would always return decoder.isComplete(), but in the special case of
delegating to blocking handlers, it would return true immediately, indicating
that a response can be handled right away. Basically, it's a question of
whether or not the listener requires all its content to be consumed before it's
used.
> 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]