Just because these are the choices you’ve mentioned, I’d say 1 or 2. 3 has more negative implications on the developer, e.g., they have to hunt down whether an implementation has done this, plus what does that say about “compatibility” if an implementation isn’t, well, compatible? If a vendor wants to go down that route then they could stay on v8.
Mark.
I agree with the scenarios. My view is where does the binary compatibility story lie. 1) Should it be mandatory on all compatible implementations as part of the Jakarta EE 9 platform specification? 2) Should it be optional as part of the Jakarta EE 9 platform specification? 3) Should it be left as a vendor's decision? My view is 3 or 2, specifically for the namespace change. Steve -----Original Message----- From: jakarta.ee-spec.committee-bounces@xxxxxxxxxxx < jakarta.ee-spec.committee-bounces@xxxxxxxxxxx> On Behalf Of Bill Shannon Sent: 31 May 2019 00:38 To: Jakarta specification committee < jakarta.ee-spec.committee@xxxxxxxxxxx>; Kazumura, Kenji < kzr@xxxxxxxxxxxxxx> Subject: Re: [jakarta.ee-spec.committee] Incremental vs Big Bang boms If the vendor's Jakarta EE 9 product provides binary compatibility with Jakarta EE 8, the customer doesn't need to do anything to run their existing Jakarta EE 8 app on the Jakarta EE 9 product and they can upgrade to the new version of the product based on their own needs. If the vendor doesn't provide Jakarta EE 8 binary compatibility, then the customer needs to change everything in their app that uses any API that's changed in Jakarta EE 9 if they want to upgrade to the Jakarta EE 9 version of the product. In the Incremental approach, that would only be some subset of the APIs, but almost certainly would include some APIs that the customer is using. In the Big Bang approach, all uses of Jakarta EE 8 APIs would need to be changed. In both cases, this is independent of whether the customer wants to use any new Jakarta EE 9 features. In both cases, the customer would need to change their build configuration to replace any reference to the Jakarta EE 8 bom with a reference to the Jakarta EE 9 bom. With a good binary compatibility story, this change doesn't make any difference to the customer. Without a binary compatibility story, the customer is forced to change their app when *we* change the APIs, either a little bit every release, or all at once in Jakarta EE 9. Kazumura, Kenji wrote on 5/30/19 3:03 AM: Steve,
I 'm not sure other country, but it likely happens in Japan.
(1) A vendor provides a Jakarta EE 9 product which run with Java SE 13, and a customer want to use Java SE 13 features (but not want to use Jakarta EE 9 new features). In this case, this customer must use Jakarta EE 9 product, unless we provide Jakarta EE 8 product which run with Java SE 13.
(2) The customers, who wants a long term support, usually select the newer version product. For example, the date of EOL for Jakarta EE 9 product is later than the one for Jakarta EE 8. They select Jakarta EE 9 product because they want to use it as long as possible.
-Kenji Kazumura
-----Original Message----- From: jakarta.ee-spec.committee-bounces@xxxxxxxxxxx [mailto:jakarta.ee-spec.committee-bounces@xxxxxxxxxxx] On Behalf Of Steve Millidge (Payara) Sent: Thursday, May 30, 2019 6:48 PM To: Jakarta specification committee <jakarta.ee-spec.committee@xxxxxxxxxxx> Subject: Re: [jakarta.ee-spec.committee] Incremental vs Big Bang boms
Hi Kenji,
I may have missed something subtle in your email but if the customer is not using any Jakarta EE 9 features then don't they just have a Jakarta EE 8 app and therefore can't they just use the Jakarta EE 8 bom?
Steve
-----Original Message----- From: jakarta.ee-spec.committee-bounces@xxxxxxxxxxx <jakarta.ee-spec.committee-bounces@xxxxxxxxxxx> On Behalf Of Kazumura, Kenji Sent: 30 May 2019 08:07 To: Jakarta specification committee <jakarta.ee-spec.committee@xxxxxxxxxxx> Subject: Re: [jakarta.ee-spec.committee] Incremental vs Big Bang boms
Assume that you have an existing Jakarta EE 8 app, and you want to change just your own business logic, but you don't want to use any new features in Jakarta EE 9. You don't need to change the package names in your source code when using incremental bom, while you need to change all the package names in your source when using big bang bom.
If we choose the big bang approach, this type of customers do not have motivation to use Jakarta EE 9. My concern is, if a vendor has a lot of this type of existing customers, this vendor also does not have motivation to provide Jakarta EE 9 products.
-Kenji Kazumura
-----Original Message----- From: jakarta.ee-spec.committee-bounces@xxxxxxxxxxx [mailto:jakarta.ee-spec.committee-bounces@xxxxxxxxxxx] On Behalf Of Bill Shannon Sent: Thursday, May 30, 2019 6:10 AM To: Scott Stark <sstark@xxxxxxxxxx> Cc: Jakarta specification committee <jakarta.ee-spec.committee@xxxxxxxxxxx> Subject: Re: [jakarta.ee-spec.committee] Incremental vs Big Bang boms
If you have an existing app that's using the Jakarta EE 8 bom and you update part of that app to use the new features in Jakarta EE 9, e.g., the jakarta.ws.rs.Path class, you'll need to add something to your app configuration to get access to the new API, either by adding the entire Jakarta EE 9 bom or by adding the adding the new Jakarta RESTful Web Services API pom.
That's the same with Incremental or Big Bang.
Scott Stark wrote on 5/29/19 1:43 PM:
Let's focus on javax.ws.rs.Path moving to jakarta.ws.rs.Path, and I have updated updated a Jakarta EE 8 app to
Jakarta EE 9 where the only change was in the REST spec. I expect that the Jakarta EE 9 bom will have:
- under incremental, the jakarta.ws.rs.* + all unmodified javax.* spect artifacts. - under Big Bang, the jakarta.ws.rs.* + all jakarta.* spec artifacts that simply had a package name change.
If I am using the incremental bom, I will only be able to compile my updated Jakarta EE 8 app if I have replaced
all of the javax.ws.rs.Path usage.
If I am using the Big Bang bom, and I have only incrementally updated my app to what has functionally changed,
then I also need to include the Jakarta EE 8 bom. Any location where I forgot to update javax.ws.rs.Path usage will be treated as Jakarta EE 8 and the binary compatibility layer will kick
in.
On May 29, 2019, at 12:56 PM, Bill Shannon <bill.shannon@xxxxxxxxxx> wrote:
If I have a Jakarta EE 8 app that is updated to use the new REST apis, it would need to include both Jakarta EE 8 and Jakarta EE 9 boms to compile the app. Do we envision having a compatibly bom such that there is a single bom a user could use to still build from source against? The concern here is that they intended to update all REST api usage to the Jakarta EE 9 apis, but missed some locations. If they have to include both Jakarta EE 8 and Jakarta EE 9 boms, this would be masked. If there was a Jakarta EE 9 compatibility bom, compiling against it would fail on the locations that did not update from JAX-RS to
the Jakarta EE 9 REST apis.
That would only be an issue with the incremental approach where the bom would have the jakarta.rest.* APIs but not the javax.ws.rs.* APIs, right?
If compatibility works by effectively "aliasing" the javax names to the jakarta names, an app, or even a class, could mix and match javax names and jakarta names and still work. (Whether fine grained mixing is a good idea is a separate issue. :-)) And yes, it would need to depend on the appropriate bom(s) or pom(s) to get access to the APIs it needs.
Whether there's a "compatibility bom" and what it's called would seem to depend on whether compatibility is a Jakarta EE spec of some sort or whether it's left completely to products to provide. In any event, there would continue to be the Jakarta EE 8 bom.
_______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
_______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee _______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
_______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
_______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxxTo change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee _______________________________________________ jakarta.ee-spec.committee mailing list jakarta.ee-spec.committee@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
--- Mark Little mlittle@xxxxxxxxxxJBoss, by Red Hat Registered Address: Red Hat Ltd, 6700 Cork Airport Business Park, Kinsale Road, Co. Cork. Registered in the Companies Registration Office, Parnell House, 14 Parnell Square, Dublin 1, Ireland, No.304873 Directors:Michael Cunningham (USA), Vicky Wiseman (USA), Michael O'Neill, Keith Phelan, Matt Parson (USA)
|