This discussion is
concerning because one of the Jakarta specs that I'm working on and which
is already cutting it too close making the EE 10 release is unfortunately
using jakarta.* package names for TCK classes, and now it's going to need
to change, further compromising our chances of getting into EE 10. The
chosen package name doesn't matter to me, nor does whether or not there
is standardization across TCKs. What does matter (to this spec at
least) is getting a decision made quickly, but I don't foresee a decision
on this being reached anytime soon given the many widely varying opinions
that will likely eventually become a vote, itself with a sufficient period
of time for votes to be collected and all of that. It's just way
too late into EE 10 for adding a new requirement like this, and I'm going
to suggest that it apply to EE 11 instead, with the understanding that
for EE 10, we'll at least get off of the jakarta.* package name in the
tck to something else and then align with whatever you decide in EE 11.
Unless anyone objects, that's what I'll plan on doing.
From:
"Werner
Keil" <werner.keil@xxxxxxx>
To:
"jakartaee-platform
developer discussions" <jakartaee-platform-dev@xxxxxxxxxxx>
Date:
01/06/2022
09:20 AM
Subject:
[EXTERNAL]
Re: [jakartaee-platform-dev] Standardizing new TCK packages (was:package
prefixes for Jakarta Batch TCK-related classes?org.eclipse.ee4j.batch ?)
Sent
by: "jakartaee-platform-dev"
<jakartaee-platform-dev-bounces@xxxxxxxxxxx>
At
least org.glassfish still seems to be used.
Werner
Gesendet
von Mailfür Windows
Von:
Mike
Milinkovich
Gesendet: Donnerstag, 6. Januar 2022 15:24
An: jakartaee-platform-dev@xxxxxxxxxxx
Betreff: Re: [jakartaee-platform-dev] Standardizing new TCK packages
(was:package prefixes for Jakarta Batch TCK-related classes?org.eclipse.ee4j.batch
?)
I would like to point out that we do
not use "org" anywhere with Jakarta at the moment. We do not
own the jakarta.org domain name, for example. We do own and use the jakarta.ee
domain name.
From my perspective, starting to use
the .org TLD with Jakarta for this purpose might be confusing. On
2022-01-06 9:09 a.m., Scott Kurz wrote:
+1 fororg.jakartatck.*
(though OK with the other options)
Thanks David for making that an option and thanks all for giving this some
thought. Even though not too many people look at a TCK relatively
speaking it seemed better to be good Java citizens and use a package of
a domain name we own.
------------------------------------------------------
Scott Kurz
WebSphere / Open Liberty Batch and Developer Experience
skurz@xxxxxxxxxx
--------------------------------------------------------
"Emily
Jiang via jakartaee-platform-dev" ---01/06/2022 05:16:41 AM---Thank
you David for the detailed explanation! I now understood the concern. The
following package na
From: "Emily
Jiang via jakartaee-platform-dev" <jakartaee-platform-dev@xxxxxxxxxxx>
To: "jakartaee-platform
developer discussions" <jakartaee-platform-dev@xxxxxxxxxxx>
Cc: "Emily Jiang"
<emijiang6@xxxxxxxxxxxxxx>
Date: 01/06/2022
05:16 AM
Subject: [EXTERNAL]
Re: [jakartaee-platform-dev] Standardizing new TCK packages (was: package
prefixes for Jakarta Batch TCK-related classes? org.eclipse.ee4j.batch
?)
Sent by: "jakartaee-platform-dev"
<jakartaee-platform-dev-bounces@xxxxxxxxxxx>
Thank you David for the detailed explanation! I now understood the concern.
The following package name might work:
-- tck.jakarta.<spec>.
In all, we could choose one from the list
org.jakartatck.*
ee.jakarta.tck.*
tck.jakarta.*
Thanks
Emily
On Thu, Jan 6, 2022 at 12:09 AM David Blevins <dblevins@xxxxxxxxxxxxx>
wrote:
I
think I finally see what Romain is talking about.
I know in TomEE we have several optimizations to try and speed up deployment
and bytecode scanning. We'll filter out jars that match patterns
like log4j-*, openejb-*, jakarta-*. Those jars are removed from the
list of jars that could potentially contain applications and they'll never
be searched for annotations like @Singleton, etc. Additionally, as
everyone uses somewhat expensive bytecode readers like ASM to parse bytecode
and scan for annotations, we have additional filters to skip non-application
classes, such as javax.* and jakarta.*. There are classloader related
actions as well.
Here's an example we hit in EclipseLink when we tried to use the Eclipse
Transformer to do the javax-to-jakarta change.
- https://github.com/eclipse-ee4j/eclipselink/blame/master/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JavaSECMPInitializer.java#L345
We were transforming EclipseLink 2.x which did not have the `!name.startsWith("jakarta.")`
string check, so jakarta.* classes were getting loaded as application classes
and causing most tests to fail. We hit this in a few different libraries
and ended up having to patch source to ensure "jakarta." and
"Ljakarta/" were factored into any code that checked for "javax."
as a package or "Ljavax/" as bytecode.
If we started putting the TCK tests in "jakarta.tck" and that
also included the test applications we need to deploy and verify, that
definitely will cause issues in a handful of component implementations
we all use.
The only way to handle it would be to update code like this to have an
exclusion that explicitly checks for "jakarta.tck" and ensures
it is treated as user-created application code and bypasses any "javax"
or "jakarta" checks. That's going to mean there'll be code
in our implementations that says essentially "if your code starts
with jakarta.tck, make sure it's treated correctly, otherwise do something
else." That could be a slippery slope.
It's probably better if we don't put ourselves in a situation were we have
to write code to specially handle TCK applications.
It occurs to be in writing this that literally any characters before "jakarta"
solves this issue. If we want a short name, we do own the jakarta.eedomain and can potentially use either of these:
- ee.jakarta.*
- ee.jakarta.tck.*
I also just looked and jakartatck.orgwas available, so I purchased that and we could potentially use:
- org.jakartatck.*
If we wanted to go that direction, I'd just transfer jakartatck.orgto the Working Group like I did when purchased jakarta.ee.
--
David Blevins
http://twitter.com/dblevins
http://www.tomitribe.com
> On Jan 5, 2022, at 1:19 PM, Thomas Watson <tjwatson@xxxxxxxxxx>
wrote:
>
> Just to make sure I understand you. Are you suggesting that
an application class loader for the old Java EE (e.g. Java EE 8) must not
allow not allow an application (WAR) to package and load any classes from
javax.* which they contain. For example, no application server should
allow an application to contain and successfully load javax.foo.Bar? And
now that we are in the jakarta.* namespace no application server should
allow an application to package and load a jakarta.foo.Bar class? What
about javax now that we are jakarta, can applications in Jakarta 9 now
successfully include and load javax.foo.Bar?
>
> I have to say this is news to me, and I do not believe that is the
way most application servers behave.
>
> Tom
>
>
>
> ----- Original message -----
> From: "Romain Manni-Bucau" <rmannibucau@xxxxxxxxx>
> Sent by: "jakartaee-platform-dev" <jakartaee-platform-dev-bounces@xxxxxxxxxxx>
> To: "jakartaee-platform developer discussions" <jakartaee-platform-dev@xxxxxxxxxxx>
> Cc:
> Subject: [EXTERNAL] Re: [jakartaee-platform-dev] Standardizing new
TCK packages (was: package prefixes for Jakarta Batch TCK-related classes?
org.eclipse.ee4j.batch ?)
> Date: Wed, Jan 5, 2022 2:09 PM
>
>
> Le mer. 5 janv. 2022 à 20:37, Thomas Watson <tjwatson@xxxxxxxxxx>
a écrit :
> > If you want one example, servlet 10.7.2 (for v4.0 to take one
example) explicit it and for good technical reasons so it is a "must
stay" but it implies TCK shouldn't reuse the same package by design
and as it always had been so it let you org.eclipse for projects without
an historical package (guess it is more than fine to keep the existing
one when it is there).
>
> In no way do I see how that section of the v4.0 servlet spec says
anything about jakarta.*. That package didn't exist in v4. For
v5 we have: https://jakarta.ee/specifications/servlet/5.0/jakarta-servlet-spec-5.0.html#web-application-class-loader
>
> Here I think you are referring to this sentence:
>
> "Servlet containers that are not part of a Jakarta EE product
should not allow the application to override Jakarta EE platform classes,
such as those in the jakarta.* namespaces, that Jakarta EE does not allow
to be modified."
>
> TCK classes are not considered platform classes, they are TCK classes.
I don't see how this sentence applies to a possible jakarta.tck package.
>
>
> This is true for part of the tck but most of them are *applications*
(servlet for a trivial example, everything in war/ear for another one).
> Just stated what we have and do - and to be honest it is normal otherwise
tck wouldnt validate compliance using a custom packaging ;).
>
>
> Tom
>
>
>
> ----- Original message -----
> From: "Romain Manni-Bucau" <rmannibucau@xxxxxxxxx>
> Sent by: "jakartaee-platform-dev" <jakartaee-platform-dev-bounces@xxxxxxxxxxx>
> To: "Emily Jiang" <emijiang6@xxxxxxxxxxxxxx>
> Cc: "jakartaee-platform developer discussions" <jakartaee-platform-dev@xxxxxxxxxxx>
> Subject: [EXTERNAL] Re: [jakartaee-platform-dev] Standardizing new
TCK packages (was: package prefixes for Jakarta Batch TCK-related classes?
org.eclipse.ee4j.batch ?)
> Date: Wed, Jan 5, 2022 10:09 AM
>
>
>
> Le mer. 5 janv. 2022 à 16:37, Emily Jiang <emijiang6@xxxxxxxxxxxxxx>
a écrit :
> @Romain Manni-Bucau
> I must have misunderstood your question. Let me try again to
clarify this:
> 1. what's the plan about the spec saying jakarta.* should be excluded
from the applications (which means it cant be used by TCK)?
> I disagree with what you said jakarta.* can't be used by TCK because
TCKs are part of specs and do not fall into the application category. Besides,
can you point out which spec has this sentence? We need to discuss this
further to see whether it is correct to say so if it does have this sentence.
>
> Ok so the consequence of you statement is that there is no application
code in TCK, no CDI bean, no EJB, no servlet, no JSP etc... (which is not
true right?) so TCK are mainly a) application code and b) test code (sometimes
c) runner code but let's integrate it in b)).
>
> If you want one example, servlet 10.7.2 (for v4.0 to take one example)
explicit it and for good technical reasons so it is a "must stay"
but it implies TCK shouldn't reuse the same package by design and as it
always had been so it let you org.eclipse for projects without an historical
package (guess it is more than fine to keep the existing one when it is
there).
>
>
> 2. What about user confusion? "not care" :(?
> Not sure what user confusion do you mean? TCKs are pretty much for
implementers. Besides, I am not sure what confusions you are referring
to. I think the namespace with jakarta.tck is clearer as it means the tck
classes from Jakarta.
>
> As soon as you get the dependency in a dependency - you are an user
by definition - then you can get issues if you use jakarta.
> It is also the case for end user - who never use tck package - on
maven if they are released under jakarta groupId so as recommended in java
ecosystem the groupId should be aligned on the package base name so likely
use org.eclipse.jakarta.spec or alike. The risk is users start importing
tck instead of the spec and application will work cause the spec comes
transitively but it is not what jakarta wants, right? Making it clean is
trivial and consistent with everything so I think it is worth not trying
to be more clever than we need to.
>
> HTH
>
>
>
> On Wed, Jan 5, 2022 at 3:02 PM Romain Manni-Bucau <rmannibucau@xxxxxxxxx>
wrote:
> @Emily: i know TCK are part of the spec as well as the API, javadoc
and textual doc (pdf/word) but you didn't solve the 2 issues I mentionned
(not even speaking of the inconsistency between the status and naming which
is something very few will care except eclipse itself maybe) so not sure
how the fact it is delivered as a whole solves the fact it is forbidden
by spec to use this package.
>
> Romain Manni-Bucau
> @rmannibucau | Blog | Old Blog | Github | LinkedIn | Book
>
> Le mer. 5 janv. 2022 à 15:26, Emily Jiang <emijiang6@xxxxxxxxxxxxxx>
a écrit :
> Romain,
> TCKs are part of spec, as spec includes api/spec doc /tck.
> Thanks
> Emily
>
> On Wed, Jan 5, 2022 at 1:48 PM Romain Manni-Bucau <rmannibucau@xxxxxxxxx>
wrote:
> @Emily: what's the plan about the spec saying jakarta.* should be
excluded from the applications (which means it cant be used by TCK)? What
about user confusion? "not care" :(?
>
> Romain Manni-Bucau
> @rmannibucau | Blog | Old Blog | Github | LinkedIn | Book
>
> Le mer. 5 janv. 2022 à 14:31, Emily Jiang via jakartaee-platform-dev
<jakartaee-platform-dev@xxxxxxxxxxx>
a écrit :
> We discussed the various package names including org.eclipse.*. The
feedback is that TCKs should align with the corresponding spec. It is much
nicer to start with jakarta.tck to denote the TCK classes and also easily
to filter out with pattern matching when searching for api classes. Besides
it is much shorter than org.eclipse.jakarta.
> In Jakarta Batch Tcks, you will use jakarta.tck.batch instead of org.eclipse.jakarta.tck.batch.
>
> Thanks
> Emily
>
> On Wed, Jan 5, 2022 at 8:05 AM Romain Manni-Bucau <rmannibucau@xxxxxxxxx>
wrote:
> As written on jbatch list I think it is normal and safe to use org.eclipse.<something
like jakarta.spec or just spec> since jakarta specs are eclipse projects.
It also has the advantage to not use jakarta.* package which is treated
specifically by all implementations (by spec actually ;)) and would need
some specific rules in the impl is used for tcks too which is not the target
of the spec at all. Lastly it makes it obvious it is not part of the API
for users so it is very good too. For me, it looks like a consistent and
good compromise for everyone (foundation, users, vendors and spec contributors/legal).
>
> Romain Manni-Bucau
> @rmannibucau | Blog | Old Blog | Github | LinkedIn | Book
>
> Le mer. 5 janv. 2022 à 08:23, Jean-Louis Monteiro <jlmonteiro@xxxxxxxxxxxxx>
a écrit :
> Sounds like a good improvement to me as well
>
> Le mar. 4 janv. 2022 à 22:00, David Blevins <dblevins@xxxxxxxxxxxxx>
a écrit :
> > On Jan 4, 2022, at 12:23 PM, Emily Jiang via jakartaee-platform-dev
<jakartaee-platform-dev@xxxxxxxxxxx>
wrote:
> >
> > I had this matter discussed in today's platform call. Below is
the suggestion for the naming convention:
> > • [Emily] Package naming convention for
TCKs?
> > • Packages
for TCK starts with various names, e.g. org.ibm, org.jboss, org.eclipse,
jakarta.[spec].tck etc,
> > • Should they
be standardized?
> >
> > • Two things need naming standard:
> > • Packages
> >
• Suggested Naming Standard: jakarta.tck.[spec]
> >
• New classes in existing TCKs should use the new name standard
> > • Artifacts
> >
• Same group id as the spec
> >
• Artifact ids [foo]-tck
> > • Existing TCKs may change if they like
> > New TCKs must use the new name standard
> >
> > The above is the general consensus from the meeting. I will start
a new thread conversation for others to comment on the naming convention.
>
> Others can chime in, but I like the above recommendation. Using
jakarta.tck.[spec] is just as good as org.eclipse.jakarta.tck.[spec], perhaps
better.
>
> Also agree that it should be standard across the various TCKs.
>
>
> -David
>
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
>
>
> --
> Thanks
> Emily
>
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
>
>
> --
> Thanks
> Emily
>
>
>
> --
> Thanks
> Emily
>
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
>
>
>
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
>
>
>
> _______________________________________________
> jakartaee-platform-dev mailing list
> jakartaee-platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
--
Thanks
Emily
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev
mailing list
jakartaee-platform-dev@xxxxxxxxxxxTo
unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
--
Mike
Milinkovich
Executive
Director | Eclipse
Foundation AISBL
Twitter:@mmilinkov
| This
email has been checked for viruses by Avast antivirus software. www.avast.com |
[attachment
"graycol.gif" deleted by Nathan Rauh/Rochester/IBM] _______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev