-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Module names for Jakarta EE specifications #34
Comments
Since the Specification Process has just been released for its first public draft review, maybe we need to clarify what a Specification Project is... Link to the Draft Spec Process: https://docs.google.com/document/d/1ongNUyGvZPtrcuxA7RQNV2qBESFcAphQbzdk3pUIQ5s/edit# Specification Project: An Eclipse Foundation Project operating under the EDP and EFSP that is constituted to deliver Specification Versions. Thus, for this issue, we are talking specifically about module names for the Jakarta EE APIs. HTH, Kevin |
There is one problem with the module name: JAX-RS (and possibly other specifications) already has published under a different module name already since Java EE 8. So if we change to the new module name, applications have to be recompiled. This is a no-go for just a minor version. So we only can switch to the new module name in our next major version, which is planned for 2019. For Jakarta EE 8 this means, it MUST contain JAX-RS still with old module name, OR we will force some existing applications to fail unless recompiled. |
Isn't this a bit of a no-brainer or am I missing something? What would be the alternative? ee.jakarta.? org.eclipse.jakarta.ee? |
org.eclipse.jakarta is good for me. |
Here are some useful articles on the topic of module naming conventions: Best practice recommends reverse-DNS naming, just like package names. This means we should be starting with Regarding JAX-RS, it seems they have jumped the gun with module naming. It would be nice if all JEE specs followed a common pattern, but they have chosen @Deprecated
module java.ws.rs {
requires transitive org.jakarta.ws.rs; // or whatever the official name for JAX-RS module is
} |
I'm okay with jakarta.* .For me, that's the best option. It is equally good as javax.* .I don't know but that is more appealling than org.eclipse.jakarta.*. |
Right. The proposed package name prefix for new Jakarta EE specifications will be jakarta., so it should follow that the JPMS module names should also start with jakarta.. This also follows the Maven Group and Artifact ID convention of prefixing with jakarta.*. Consistency is good. As far as JAX-RS... Since there was no defined module naming convention for Java EE 8, it looks like JAX-RS jumped the gun. So, whatever is decided via this discussion will need to be applied across the board with all Jakarta EE components. JAX-RS may need to follow the deprecation route described earlier... BTW, we can not use java.* nor javax.* as the module name prefix. |
@kwsutter Nobody jumped the gun. It was an active decision of the JCP's JSR 370 expert group to include a module name in JAX-RS 2.1 contained in Java EE 8, and it was Oracle that decided about that name, and Oracle had all rights to use it. For backwards compatibility we MUST NOT change it in 2.x, and we have all rights to keep it unless Oracle explicitly forbids it, which they have not so far. So there is no actual technical or legal need to change it. I propose to change it in 3.x contained in Jakarta EE 9 to be least disruptive. Anyways, such a change has to be agreed upon by the committers, so the PMC should file a PR ASAP. |
FYI, I am reposting here email from @bshannon with the original proposal:
The first option has PMC preference. |
I like jakarta.* since it matches what is established for maven coordinates and package names. On the JAX-RS question I think it could be argued that changing the module name in a . release is ok. There is a way to map the old to new names and updating a module-info wouldn’t be a significant undertaking. To me it is a bit like changing your maven dependencies, which I expect people will be doing if they are upgrading. |
Let's assume that the prefix does indeed become I'd like to discuss the suffix. There have been several different patterns for suffix over the years. And there's some level of consistency between the artifact names (particularly; maven Just consider the aforementioned
The most recent and prolific pattern seems to be One point to consider is the implication that the |
Ray, I agree that the artifact name need not match the module name. But I think we must consider having the Bundle-SymbolicName match the module name as much as possible since require-bundle semantics closely match the semantics of Java module requires. |
As the author of this document on module naming referenced above, let me make a quick comment. The use of However, given the importance of Jakarta EE to the Java landscape, I think it is reasonable to have a special case. In particular, I note that this issue hasn't discussed package names. I'd prefer to see the package names for specifications to also be |
@rotty3000 @jodastephen |
PMC, what's the plan for closing this issue? How long do you want to leave it open for additional comments? Or is there some specific event that needs to occur before this can be closed? |
We will close it on Tuesday at our pmc meeting...
On Wed, 31 Oct 2018, 19:53 Bill Shannon, ***@***.***> wrote:
PMC, what's the plan for closing this issue? How long do you want to leave
it open for additional comments? Or is there some specific event that needs
to occur before this can be closed?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAJGxNtIA0Q6PtKMUFFKUN8Z0JLDAt92ks5uqfGqgaJpZM4XkHh8>
.
--
Java Champion, JCP EC/EG Member, EE4J PMC, Jakarta EE WG Member, JUG Leader
|
According to discussions in the PMC following this thread, the PMC will issue a statement saying that |
Practically this seems to have changed though, as Tycho and p2 demand Jakarta.*. |
Maybe a misconfigured or buggy plugin? |
I'm one of OWASP's esapi-java-legacy co-leads. Could you expand on this a bit more? Our library has extreme requirements for backwards compatibility. (We just updated in the last year to minimally support JDK 1.8) We are currently trying to assess how best to move forward here: just yesterday we had a slew of developer complaints come in, it's important to note that our library averages 350k downloads/month. The current ESAPI version is incompatible with the namespace issue and this puts us into a terrible bind. Switching our library to use jakarta will break it for tens of thousands of applications that aren't ready to run with a new servlet-api. Frameworks like Spring mandate jakarta (now) and to be truthful, changing a package name like this shouldn't be taken lightly. We have to be able to support javax and jakarta, but this hard change... usually you deprecate something and allow several years of warnings to build. We've been coding to the servlet standard and if that is suddenly switching then there should be some sort of a grace period to allow library maintainers like us to do something that isn't a kludgey hack (like creating a separate release just for jakarta.) WHY can we no longer use the javax.* package name? |
The PMC recommends using
jakarta.*
as module names for the Jakarta EE specification projects.Please add comments and/or suggestions to this issue.
The text was updated successfully, but these errors were encountered: