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

[TASK][EASY] Support JDK 21 #5314

Open
2 of 4 tasks
pan3793 opened this issue Sep 20, 2023 · 8 comments · May be fixed by #6306
Open
2 of 4 tasks

[TASK][EASY] Support JDK 21 #5314

pan3793 opened this issue Sep 20, 2023 · 8 comments · May be fixed by #6306

Comments

@pan3793
Copy link
Member

pan3793 commented Sep 20, 2023

Code of Conduct

Search before asking

  • I have searched in the issues and found no similar issues.

Skill requirements

  • familiar with GitHub Action
  • basic knowledge of Apache Maven, including profiles

What would you like to be improved?

Java 21 and the JDK 21 release under a general availability (GA) status occurred Sep 19, 2023, as the newest major update to the Java programming language.

More details on Java 21 (JDK 21) GA release via the JDK-dev mailing list. More details on all of the major improvements with Java 21 can be found via OpenJDK.org.

Kyuubi has supported Java 17 since 1.8, it would be nice if we could support Java 21.

How should we improve?

Step 0: wait for #6293
Step 1: test Kyuubi on JDK 21 and fix errors encountered
Step 2: add CI in GitHub Actions
Step 3(out of scope): leverage new features introduced in JDK 21, e.g. Virtual Thread

Spark 3.5 almost supports Java 21 (except for Arrow, see SPARK-45781), to pass Kyuubi's CI, we need to either

Are you willing to submit PR?

  • Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
  • No. I cannot submit a PR at this time.
@pan3793 pan3793 changed the title Support JDK 21 [TASK][EASY] Support JDK 21 Oct 8, 2023
@Tiakon
Copy link

Tiakon commented Nov 8, 2023

can i work on this issue? please assign me

@pan3793
Copy link
Member Author

pan3793 commented Nov 8, 2023

@Tiakon thanks assigned

@pan3793
Copy link
Member Author

pan3793 commented Nov 8, 2023

@Tiakon some additional context, upgrading arrow to 13+ is required to pass all tests with JDK 21, or we can disable all Arrow tests on JDK 21

@Tiakon
Copy link

Tiakon commented Nov 8, 2023

@pan3793 Thanks for reminding me, I will try to modify it and try to pass more tests

@dupen01
Copy link
Contributor

dupen01 commented Apr 14, 2024

I have recently been tracking this issue and testing the behavior of JDK 21 locally on a branch. The biggest conflict arises from the version of spotless-maven-plugin.
The current version of potless-maven-plugin used in the master branch of the Kyuubi project is 2.30.0.
To support JDK 21, it is necessary to upgrade to a newer version, as per this issue: diffplug/spotless#1819.

Correspondingly, the version of googlejavaformat also needs to be upgraded (currently, the Kyuubi project uses googlejavaformat v1.7, whereas the latest release of the googlejavaformat project is 1.22.0). This will cause some existing code formatting checks to fail.
Furthermore, if upgrading spotless-maven-plugin to a newer version, such as 2.43.0, in order to support JDK 21, it will result in the loss of support for JDK 1.8 (refer to: https://github.com/diffplug/spotless/blob/main/plugin-maven/README.md).

@dupen01
Copy link
Contributor

dupen01 commented Apr 14, 2024

Perhaps we could maintain the current version of the spotless-maven-plugin by skipping the spotless check process in a JDK 21 environment, just as the Apache Flink community has done.

@pan3793
Copy link
Member Author

pan3793 commented Apr 15, 2024

@dupen01 for cases you listed, seems could be addressed by overriding properties in java-21 profile

@dupen01
Copy link
Contributor

dupen01 commented Apr 15, 2024

I will submit a PR for this later.

@dupen01 dupen01 linked a pull request Apr 15, 2024 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants