[Feature] Upgrade programing language to Java 17
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/alibaba/fluss/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 default language to Java 11 and release in Java 11, but still can compile with Java8.
- https://github.com/apache/fluss/issues/1195
## Phase 2
- [ ] Drop Java 8 Support
## Phase 3
Support compilation with Java 17 and Java 21, but still default and release with Java11
- [ ] CI build test on Java 17 & 21
## Phase 4
Drop Java 11, and upgrade the default and release with Java 17
- [ ] Remove CI build for Java11 and default to Java 17
### Anything else?
_No response_
### Willingness to contribute
- [ ] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the linked Phase 1 issue (#1195) and reviewing the four-phase checklist in this issue. Done means the remaining Java 8 and Java 11 support is dropped as planned, Java 17 becomes the default and release version, and the listed CI compatibility work is complete.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, ci-cd
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100