apache / apache/fluss

[Feature] Upgrade programing language to Java 17

Open
#203 3 comments 3 reactions 0 assignees View on GitHub
component=build
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.