users@jax-rs-spec.java.net

[jax-rs-spec users] Re: Digest for list users_at_jax-rs-spec.java.net

From: Werner Keil <werner.keil_at_gmail.com>
Date: Thu, 21 Aug 2014 12:09:13 +0200

Santiago/all,

Glad, to raise awareness of this issue.
I respect if Java SE 8 was put at the foundation of all or most EE 8 JSRs
as I did in case of 354 (where I'm also among the top 3 actual committers
in the EG) while having to mention the caveat of possible inconsistencies
and incompatibilities caused by those "backports", which many large
commercial clients won't be happy with. They often require commercial
support, certification, etc.

CDI 2 especially is licensed so liberally on purpose by Red Hat, that even
its entire Spec is made available under the Apache License, thus creating a
"fork" running under SE 7, assuming CDI 2 was also based on SE 8 is not
just possible, that licensing almost provokes such steps. Which is good for
the community, but may cause a bit of uncertainty for clients and projects
where "100% Java Certified" or similar would be a core business need.

Funny you didn't mention 310 as important new feature of Java SE 8 (but not
surprising because of redundancy of having 4 functionally identical
Date/Time APIs where Java 6/7 already offered 2)
As I mentioned earlier, it is among sad cases where Java SE 8 put the cart
before horse from behind. And now the OpenJDK team plus members of the EC
and legal support to some of the major companies involved have to waste
their resources on something called "stripped implementations" (see public
minutes of last month's EC meeting
https://jcp.org/aboutJava/communityprocess/ec-public/materials/2014-07-08/July-2014-Public-Minutes.html)
driven by Oracle's OpenJDK and Java SE team primarily because of the
bloating with often redundant features and lack of modularity in Java SE 8.

To Sergey's point, should there be some JSRs under the EE 7 umbrella that
are fully API backward compatible with SE 7 and clients in particular
environments do not require all of the EE 8 stack, then IMHO the plans for
"stripped" (or application-specific) implementations may also allow clients
that won't be able to switch from Java SE 6 or 7 (and believe me some of
the largest companies in the world and their customers, especially in
safety-critical or real-time environments running in "closed boxes" won't
for decades;-) to 8 or 9 to use the parts of EE 8 that work for them;-) It
seems like a small "patch" on a wound that hasn't been bleeding since SE 8
alone, but at least till a proper module system and decoupling of all these
redundant, competing APIs and frameworks people often use just one or none
can be done with Java SE 9 (at least so we hope;-) it looks like a
necessary one.

Telling from our own investigations and real tests for the JSR 363 API
(keep in mind that has to scale from ME to EE;-) as soon as you start using
a single "diamond" in your API or implementation, or call
@FunctionalInterface, etc. you must be running under SE 7 or 8, even if you
tried to tell ther compiler you want it "SE 5 compatible". It often won't
compile and even it did (e.g. if you use SE 7, 8 or 9) it won't work with 5
or 6 at runtime. Not to mention ME 8 embedded.

Regards,

 Werner Keil | JCP Executive Committee Member, JSR 363 Co Spec Lead |
Eclipse UOMo Lead, Babel Language Champion | Apache Committer

Twitter @wernerkeil | @UnitAPI | @JSR354 | #EclipseUOMo | #Java_Social |
#DevOps
Skype werner.keil | Google+ gplus.to/wernerkeil

>
>
> Because Java 7 is EOLed in April 15 [1]. By the time we go out with
> JAX-RS 2.1, JDK 9 will already be adopted. I know we have supported an
> earlier version in the past, but JDK 7 will be 2 generations behind when we
> are done. There are also interesting features that we can use from 8.
>
> -- Santiago
>
> [1] http://www.oracle.com/technetwork/java/eol-135779.html
>
>
> If JSR 2.1 mandates Java 8 than I can not list myself as a supporter.
> On 20/08/14 17:15, Markus KARG wrote:
>
> BTW, as you intend to target Java SE 8, it might me a good idea to add
> a mandatory item to that list: Supporting the new language features,
> in particular lambda expressions, streams API, and Consumers /
> Producers. Those are what people most commonly understand unter "8",
> so it would be a shame if we do not overhaul the API using that features.
>
> Java 8 would be too early, same way as Java 7 was to early was Java 2.0.
> We have users still on Java 1.5 due to the internal restrictions. Making
>
> Java 7 a base stack for 2.1 would work IMHO.
>
> But the draft says that Java 8 is the base of the JSR, so what sense does
> it
> makes to enforce _that_ but not _using_ any of the implied features? To
> support your issue the result would be to reduce the draft to mandate Java
> 5. Unless that is truly what you have in mind, it is senseless to be
> against
> usage of Java 8 _features_, as Java 8 implies a binary format which does
> not
> load on JRE 5 anyways.
>
> So what is your actual idea? Mandate Java 5 or mandate Java 8 with Java 5
> binary format?
>
> Cheers, Sergey
>
>
> --
> Sergey Beryozkin
>
> Talend Community Coders
> http://coders.talend.com/
>
> Blog: http://sberyozkin.blogspot.com
>
>
>
>
> ---------- Forwarded message ----------
> From: Santiago Pericas-Geertsen <Santiago.PericasGeertsen_at_oracle.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 13:45:45 -0400
> Subject: [jax-rs-spec users] [jsr339-experts] Re: JAX-RS 2.1 JSR
>
> On Aug 20, 2014, at 12:33 PM, Sergey Beryozkin <sberyozkin_at_talend.com>
> wrote:
>
> > 2.2 What is the target Java platform:
> >
> > This specification is targeted for Java SE
> 8 or higher and Java EE 8 or higher
> platforms.
> >
> >
> > followed by
> >
> > This JSR will be available standalone. It
> is also targeted for inclusion in the
> Java EE 8 platform.
> > Additionally, Java EE 7 products will be
> allowed to implement JAX-­‐RS 2.1.
> >
> > I think Java EE 7 won't be allowed to implement it 2.1 would be based on
> Java 8, right ?
> >
> > IMHO, it has to be Java 7
>
> See my other e-mail. Given that SE 8 is backward compatible, it is
> possible for a Java EE 7 implementation to run on JRE 8. In fact, I believe
> there are EE 7 application servers already certified on SE 8.
>
> I understand some of the concerns, but believe me, people already
> complained that we haven't taken advantage of SE 8 in JAX-RS 2.0! Also,
> remember that EE 8 is targeted for late 2016 (maybe early 2017!), so we
> need to think ahead.
>
> -- Santiago
>
> ---------- Forwarded message ----------
> From: Michel Graciano <michel.graciano_at_gmail.com>
> To: users_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 15:07:07 -0300
> Subject: [jax-rs-spec users] Re: [jsr339-experts] Re: JAX-RS 2.1 JSR
> Hi people,
> I am usually here in read-only mode, but today I want to add some
> thoughts on this Java version discussion if you allow me. Since we are
> talking about Java EE 8, so AFAIK it is scheduled to Q3 2016, 2 years
> from now, which gives mostly 3 years of Java 8. If Java EE 8 does not
> ask for Java 8 now, probably it will happen maybe just at Java EE 9,
> which could be release 3 or 4 years after Java EE 8, which means Java
> 8 will be around 6 years old. The question here IMHO is if it a issue
> or not.
>
> Personally speaking I prefer to see a updated spec already taking use
> of the new Java 8 APIs.
>
> In the case where EG choose Java 7 as the version to go, I believe at
> least some good practices, as described in this article for example
> [1], could be followed to allow people whom are already using Java 8
> to keep using the new stuff, as well making a future upgrade of this
> spec to Java 8 possible, but in the same time keep compatible with
> Java 7.
>
> Best regards
> [1] http://java.dzone.com/articles/api-designers-be-careful
>
> On Wed, Aug 20, 2014 at 1:33 PM, Sergey Beryozkin <sberyozkin_at_talend.com>
> wrote:
> > 2.2 What is the target Java platform:
> >
> > This specification is targeted for Java SE
> 8
> > or higher and Java EE 8 or higher
> > platforms.
> >
> >
> > followed by
> >
> > This JSR will be available standalone. It
> is
> > also targeted for inclusion in the Java
> EE
> > 8 platform.
> > Additionally, Java EE 7 products will be
> > allowed to implement JAX-­‐RS 2.1.
> >
> > I think Java EE 7 won't be allowed to implement it 2.1 would be based on
> > Java 8, right ?
> >
> > IMHO, it has to be Java 7
> >
> > Sergey
> >
> >
> ---------- Forwarded message ----------
> From: <sberyozkin_at_talend.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 20:26:10 +0000 (UTC)
> Subject: [jax-rs-spec users] [jsr339-experts] Re: Re: JAX-RS 2.1 JSR
> Hi Santiago
>
> I know Java 7 is not exactly new. But I'm sure you know many
> productions would not migrate to Java 8 tomorrow either.
> How exactly we'd look back by using Java 7 ? IMHO is not only about
> letting us play with excitement with new and cool features of Java 8.
> JAX-RS 2.0 is brilliant even without one or two Java 7 interfaces
> (AutoCloseable or whatever).
>
> This process is not about targeting the 'bleeding edge' productions
> where developers switch Java versions every month.
>
> So we will look ahead and use the functional programming features or
> something even better of Java 8, that would super cool. Without those
> tricks 2.1 won't live I guess. Only part of the story though.
>
> Please give me a little time for me to confirm if I can be listed as a
> supporter, I'll get back on it asap.
>
> Also, let me ask, what is the targeted release date for 2.1 (sorry, not
> on my computer right now, no PDF reader here) ?
>
> Thanks, Sergey
>
> ---------- Forwarded message ----------
> From: <sberyozkin_at_talend.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 21:11:28 +0000 (UTC)
> Subject: [jax-rs-spec users] [jsr339-experts] Re: Re: Re: JAX-RS 2.1 JSR
> Wow, at least 2 years from now, I'll be old by the time JAX-RS 2.1 is
> out :-). Or may be wiser and more mature, that sounds better :-)
>
> Right, it did not appear to me the 2.1 requirements would take that
> long to complete. But I guess it's also about synchronizing with all of
> EE 8 specs.
>
> Cheers, Sergey
>
>
> ---------- Forwarded message ----------
> From: Bill Burke <bburke_at_redhat.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 17:28:53 -0400
> Subject: [jax-rs-spec users] [jsr339-experts] Re: Re: Re: JAX-RS 2.1 JSR
> What exact features are we going to take advantage of in Java 8? Is there
> really anything that compelling? I still have users on JDK 6.
>
> On 8/20/2014 4:40 PM, Santiago Pericas-Geertsen wrote:
>
>>
>> On Aug 20, 2014, at 4:26 PM, sberyozkin_at_talend.com wrote:
>>
>> Hi Santiago
>>>
>>> I know Java 7 is not exactly new. But I'm sure you know many
>>> productions would not migrate to Java 8 tomorrow either.
>>> How exactly we'd look back by using Java 7 ? IMHO is not only about
>>> letting us play with excitement with new and cool features of Java 8.
>>> JAX-RS 2.0 is brilliant even without one or two Java 7 interfaces
>>> (AutoCloseable or whatever).
>>>
>>> This process is not about targeting the 'bleeding edge' productions
>>> where developers switch Java versions every month.
>>>
>>
>> I know, but 8 is not bleeding edge anymore, that's 9 now.
>>
>> So we will look ahead and use the functional programming features or
>>> something even better of Java 8, that would super cool. Without those
>>> tricks 2.1 won't live I guess. Only part of the story though.
>>>
>>> Please give me a little time for me to confirm if I can be listed as a
>>> supporter, I'll get back on it asap.
>>>
>>> Also, let me ask, what is the targeted release date for 2.1 (sorry, not
>>> on my computer right now, no PDF reader here) ?
>>>
>>
>> Late 2016, and if history has taught us anything, that could mean early
>> 2017.
>>
>> -- Santiago
>>
>>
> --
> Bill Burke
> JBoss, a division of Red Hat
> http://bill.burkecentral.com
>
>
> ---------- Forwarded message ----------
> From: Santiago Pericas-Geertsen <Santiago.PericasGeertsen_at_oracle.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 20:09:05 -0400
> Subject: [jax-rs-spec users] [jsr339-experts] Re: Re: Re: Re: JAX-RS 2.1
> JSR
>
> On Aug 20, 2014, at 5:11 PM, sberyozkin_at_talend.com wrote:
>
> > Wow, at least 2 years from now, I'll be old by the time JAX-RS 2.1 is
> > out :-). Or may be wiser and more mature, that sounds better :-)
> >
> > Right, it did not appear to me the 2.1 requirements would take that
> > long to complete. But I guess it's also about synchronizing with all of
> > EE 8 specs.
>
> Yes, exactly, we are on the EE 8 train ... You'd be surprise how much
> time some things will take us ;)
>
> -- Santiago
>
>
>
> ---------- Forwarded message ----------
> From: Santiago Pericas-Geertsen <Santiago.PericasGeertsen_at_oracle.com>
> To: jsr339-experts_at_jax-rs-spec.java.net
> Cc:
> Date: Wed, 20 Aug 2014 20:16:20 -0400
> Subject: [jax-rs-spec users] [jsr339-experts] Re: Re: Re: JAX-RS 2.1 JSR
>
> On Aug 20, 2014, at 5:28 PM, Bill Burke <bburke_at_redhat.com> wrote:
>
> > What exact features are we going to take advantage of in Java 8? Is
> there really anything that compelling? I still have users on JDK 6.
> >
>
> There hasn't been a version of the JDK with as many compelling features
> as JDK 8 in a while (since 5?). Default methods, lambdas, method
> references, type annotations, improved security algorithms, etc.
>
> -- Santiago