jsr339-experts@jax-rs-spec.java.net

[jsr339-experts] Re: [jax-rs-spec users] Re: Updated InvocationCallback interface

From: Santiago Pericas-Geertsen <Santiago.PericasGeertsen_at_oracle.com>
Date: Thu, 25 Aug 2011 10:01:57 -0400

On Aug 25, 2011, at 9:43 AM, Bill Burke wrote:

> I don't understand why you need all this complexity. If the user needs more control, then they should declare InvocationCallback to use an HttpResponse.
>
> As for error conditions, because onComplete() currently takes a Future as a parameter, you could throw the same exceptions from Future.get() as SyncInvoker throws.
>
>
> i.e.
>
> public class MyCallback implements InvocationCallback<Customer> {
>
> public void onComplete(Future<Customer> future) {
>
> try {
> Customer cust = future.get();

 Personally, I find this an abuse of the Future type. I can't get around the idea of an "onComplete" method that gets a "Future" as an argument. It's either complete or it isn't.

 I much prefer the onComplete/onError approach without any Futures, just like a CompletionHandler in JDK 7's NB I/O API.

-- Santiago