Skip to content
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

API and Javadoc for Jakarta EE 10 #107

Closed
kwsutter opened this issue Jul 6, 2021 · 4 comments
Closed

API and Javadoc for Jakarta EE 10 #107

kwsutter opened this issue Jul 6, 2021 · 4 comments
Assignees

Comments

@kwsutter
Copy link
Contributor

kwsutter commented Jul 6, 2021

In Jakarta EE 10, the Platform is requiring Java SE 11 as the minimum class version for the APIs (currently Java SE 8 is the minimum class version). With this desired change, a few questions have rose...

  • Based on the current API jar file build, it's a very easy change to the pom.xml to compile at the Java SE 11 class file version. Even if the component APIs are not at Java SE 11, the Platform API jar file will be built with Java SE 11. This is consistent with how these uber jars (platform, web profile, and now core profile) have always been built.
  • A question was raised about whether we should continue creating these uber API jar files. Since we still have many users that have not upgraded to maven yet, the continued generation of these uber jar files is desired. They are also very useful for initial development efforts (it's very easy to just include a single API jar file in the application instead of all of the individual jar files).
  • A proper bom file is also beneficial, especially for maven and gradle users. The build process currently produces corresponding bom files, so I think we're good there.

A related discussion surrounds the major.minor version of the new dependency on Java SE 11. Jakarta EE 10, will be a new major version for a multitude of reasons -- one of which is the update to Java SE 11 as the base Java version. Individual component specifications should evaluate whether there is a need to update to Java SE 11 and, if not, then should stick with Java SE 8. If they decide to move to Java SE 11, then the major version should be incremented for the component specification and API. Otherwise, if they stick with Java SE 8, then a minor version update is sufficient.

@kwsutter
Copy link
Contributor Author

Lots of discussion on the mailing list as well... https://www.eclipse.org/lists/jakartaee-platform-dev/msg02719.html

Will update this Issue once we come to a solution for the Platform and Component API jar files.

@kwsutter
Copy link
Contributor Author

For those of you unable to attend the Platform call this week (https://docs.google.com/document/d/1EJ2ilaPhMnQqa3aw6AmwjRbBPGL3_np4uuwklgfqPZI/edit?nbsp#), here is the conclusion for this API source/target level...

Minutes:

  • The recommended combining of the two bullets (Major and Minor version) is approved. We will leave this as a “recommendation” and not a “requirement” to allow component APIs to stay at a lower JDK level if the move to Java 11 is not a requirement.

If your component Specification is planning a Major or Minor version update for Jakarta EE 10, then the recommendation would be to recompile and distribute your APIs at the Java SE 11 source/target levels.

  • Any building of the API jar files should use the “--release” option to the compiler (instead of the source/target java levels).
    • <maven.compiler.release>11</maven.compiler.release>

The Platform and Web Profile uber API jar files will all be re-built with the Java 11 target level (consistent with past practices).

  • For Jakarta EE 10, we will keep creating the uber JARs but indicate they are being deprecated
  • Later versions of Jakarta EE may remove these uber JARs
  • BOMs are already being generated and distributed

@kwsutter
Copy link
Contributor Author

kwsutter commented Sep 2, 2021

Updating the build to generate java 11 class files and javadoc via PR #109.

Going to leave this Issue open so that we remember to indicate that these uber jars will be deprecated with Jakarta EE 10 (most likely via the Spec document).

@starksm64
Copy link
Contributor

This seems resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants