jakartaee / cdi

CDI specification
Apache License 2.0
214 stars 78 forks source link

Update JakartaEE CDI to Java 17 #729

Closed danilodeLuca closed 9 months ago

danilodeLuca commented 11 months ago

Background: Currently, the Jakarta EE CDI specification relies on Java 11 API. However, in line with the primary objective of Jakarta EE 11, which is to leverage the latest LTS (Long-Term Support) version of Java, it is imperative to upgrade the Jakarta EE CDI to Java 17. This adaptation ensures alignment with the most recent advancements in the Java programming language.

Objective: To seamlessly transition to Java 17 within the JakartaEE CDI specification, the following tasks need to be undertaken:

  1. Update POM.xml:

Amend the POM.xml file to specify the Maven version that accommodates Java 17. This step ensures compatibility with the latest Java release.

  1. GitHub Actions:

Remove the existing GitHub Action targeting Java 11 from the repository. Introduce a new GitHub Action specifically tailored for Java 17. This action will streamline the continuous integration process, ensuring compatibility with the targeted Java version.

Project Impact: Given that our implementation encompasses Jakarta Data and Jakarta NoSQL, it is crucial to align with the advancements in Java SE 17. This strategic move positions our project to seamlessly transition to future Java versions, including Java 21. As an exciting opportunity for community involvement, this issue marks an excellent chance for the first contribution to the Eclipse Jakarta project.

Call to Action: We encourage members of the community to actively participate in this enhancement initiative. Contributions in updating the API to Java 17 are highly valued and will play a pivotal role in keeping the Eclipse JNoSQL specification up-to-date.

Tasks at a Glance:

Update POM.xml to specify Maven version supporting Java 17. Remove Java 11 GitHub action. Add Java 17 GitHub action.

Note: The overarching goal of Jakarta EE 11 is to embrace the latest Java LTS release, exemplified by Java 17. This commitment ensures that the JakartaEE CDI specification remains robust and future-ready, laying the foundation for seamless adaptation to subsequent Java advancements.

Here is a reference on how it was done in Eclipse JNoSQL https://github.com/eclipse/jnosql/issues/347

starksm64 commented 9 months ago

What continues to be a misconception with the notion of alignment is that support a given LTS release does not require API artifacts to be compiled with the LTS bytecode target. It makes no technical sense to force updates in target bytecode level unless a language feature is actually needed. As long as the ratifying compatible implementation supports the latest LTS, the spec supports the latest LTS.