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

[jsr339-experts] Re: A proposal to make the JAX-RS API "lambda ready".

From: Markus KARG <markus_at_headcrashing.eu>
Date: Mon, 29 Oct 2012 20:06:39 +0100

I think it is a very good idea to support lambda expressions, as it makes
the readability of anonymous callbacks much simple to read (and write). On
the other hand, AFAIK lambdas will enforce JRE 8, while our API must be able
to run on JRE 7. How can this gap be bridged?

 

From: Marek Potociar [mailto:marek.potociar_at_oracle.com]
Sent: Montag, 29. Oktober 2012 12:07
To: jsr339-experts_at_jax-rs-spec.java.net
Subject: [jsr339-experts] A proposal to make the JAX-RS API "lambda ready".

 

Hello experts,

 

A month ago at JavaOne, making APIs ready for closure support that is coming
in Java SE 8, was one of the hot topics. The main idea behind making an API
ready for "lambdas" (or closures), is to expose single-method interfaces
whenever one expects a future use of lambdas. In JAX-RS 2.0, such places
include definition of async response callbacks as well as client-side
invocation callback.

 

With that I took a stab on it and tried to come up with a proposal that
would make our new APIs more lambda-ready. Please review the proposal here:

https://github.com/mpotociar/jax-rs/compare/lambda

 

In summary, I have updated the client.InvocationCallback to have only a
single method and since I anticipate that many users would still prefer the
old 2-method style, I'm adding an AbstractInvocationCallback convenience
class. On the side of async response container callbacks, I've similarly
updated the CompletionCallback and ResumeCallback APIs to adopt a
single-method pattern. In my last commit I've also decided (based on
numerous Sergey's requests) to propose removal of ResumeCallback (for now).

 

I'm looking forward to your review comments.

 

Marek