apache / bookkeeper

Apache BookKeeper - a scalable, fault tolerant and low latency storage service optimized for append-only workloads
https://bookkeeper.apache.org/
Apache License 2.0
1.9k stars 901 forks source link

[BP-52] Build and Run Bookkeeper on Java11 #3313

Open shoothzj opened 2 years ago

shoothzj commented 2 years ago

Motivation

Currently, bookkeeper keeps the compatible with java8. Java11, a lts version of jdk, provides new features and performance optimization. And Java11 was released in 2018 and is now mature. I think it's time to migrate to java11.

Breaking Changes

java8 is not supported

Release plan

Including this in bookkeeper 4.16.0

nicoloboschi commented 2 years ago

Unfortunately most of the Java users are still on JDK8. We must keep the JDK8 compatibility for BK clients. The client and the server are in the same module so we cannot enforce different JDK compatibility rules.

A first approach would be to split into different modules server and client but it would require a big effort

nicoloboschi commented 2 years ago

Anyway, instead of targeting JDK11, I believe we can go with JDK17 and move the CI to JDK17. I did some work on that direction but there's still this issue with powermockito: https://github.com/apache/bookkeeper/issues/3257