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

[Feature] Upgrade programing language to Java 17 #203

Open
1 of 8 tasks
wuchong opened this issue Dec 16, 2024 · 1 comment
Open
1 of 8 tasks

[Feature] Upgrade programing language to Java 17 #203

wuchong opened this issue Dec 16, 2024 · 1 comment
Labels
component=build feature New feature or request

Comments

@wuchong
Copy link
Member

wuchong commented Dec 16, 2024

Search before asking

  • I searched in the issues and found nothing similar.

Motivation

Currently, the default programming language of Fluss is still Java 8. We would like to upgrade the programming language used in this project to Java 17. This upgrade will provide several benefits, including using the latest version of spotless, Google Java Format, and dependencies, and using new language features, and long-term support.

However, we can't directly upgrade to Java 17, because most Flink users are still using Java 8 (Flink 2.0 turns to default Java 11), this requires Fluss release client/connector jars in Java 8 or Java 11 to be compatible with Flink.

Solution

Therefore, this is going to be a long work, and I would break it down into several phases:

Phase 1

Upgrade the local development environment to Java 17, but still compile and release the project in Java 8.

Phase 2

Release for Java 8 & 11 & 17.

  • CI build test on Java 8 & 11 & 17
  • Release binary distribution for only Java 17
  • Release maven artifacts for both Java 8 and Java 11 and Java 17

Phase 3

Drop the legacy Java version support for Flink. Upgrade the language level to Java 17.

  • Remove CI build for Java 8 and Java 11

Anything else?

No response

Willingness to contribute

  • I'm willing to submit a PR!
@simonsssu
Copy link

Just one comment for phase-1, some new features like Pattern Matching for switch in JDK17 may be involved in local dev environment while compile and release will fail with jdk8.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component=build feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants