Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 16967 invoked from network); 6 Dec 2007 19:19:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Dec 2007 19:19:11 -0000 Received: (qmail 52007 invoked by uid 500); 6 Dec 2007 19:18:56 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 51953 invoked by uid 500); 6 Dec 2007 19:18:56 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 51828 invoked by uid 99); 6 Dec 2007 19:18:55 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2007 11:18:55 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2007 19:19:05 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 4DBD7714251 for ; Thu, 6 Dec 2007 11:18:43 -0800 (PST) Message-ID: <26071513.1196968723315.JavaMail.jira@brutus> Date: Thu, 6 Dec 2007 11:18:43 -0800 (PST) From: "Sangjin Lee (JIRA)" To: dev@geronimo.apache.org Subject: [jira] Commented: (GERONIMO-3615) AsyncHttpClient.sendRequest() should return a future In-Reply-To: <4094332.1195605403218.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/GERONIMO-3615?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549147 ] Sangjin Lee commented on GERONIMO-3615: --------------------------------------- I have a patch ready that addresses this issue and also GERONIMO-3616. Essentially the sendRequest() method is modified to return a ResponseFuture instead of void. In addition, an overloaded version of sendRequest() is created to take an additional argument of BlockingQueue. The queue will serve as a completion queue on which a ResponseFuture object will be added as the request is complete. The semantics is entirely analogous to a familiar java.util.concurrent.CompletionService, although I thought creating a concrete CompletionService implementation was an overkill. I have also created a test class that exercises the new method. I'll be uploading the patch... > AsyncHttpClient.sendRequest() should return a future > ---------------------------------------------------- > > Key: GERONIMO-3615 > URL: https://issues.apache.org/jira/browse/GERONIMO-3615 > Project: Geronimo > Issue Type: New Feature > Security Level: public(Regular issues) > Components: AsyncHttpClient > Affects Versions: 1.x > Reporter: Sangjin Lee > Attachments: patch.zip > > > Currently the caller gets notified when the I/O is completed via AsyncHttpClientCallback. While this works for many use cases, there may be situations where sendRequest() returning a future would lead to a much more straightforward programming model. This will become much more powerful especially if one initiates requests to multiple URLs at once. > I would request that sendRequest() return a future object on which one can query the status of the operation, and also obtain the result or an error case (exception or timeout) by calling methods on the future. It is desirable to have the return type implement java.util.concurrent.Future. > Furthermore, the implementation class of the Future could retain the reference to the callback. Then one can have a consolidated and coherent mechanism of completion (callbacks firing as a result of future completion). > In other words, the suggestion is to change the return type of sendRequest() from void to java.util.concurrent.Future. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.