Hello Arrow Java developers,

I would wonder if the community would be okay to change the minimum Java
version used by the build toolchain to at least Java 17 or 21 (or even 22).
This is different from changing the minimum Java version used at runtime
which would still be 8 (following the vote from last september).

Concretely it would mean:
* Java 21 would be required to build Arrow Java
* But Arrow would still be compatible with Java 8
* Unit tests should keep running with Java 8 and higher.

Reasons for changing the toolchain would be:
- More and more tools and plugins now require at least Java 11, forcing the
project to keep using older/unsupported versions
- We hacked our way to support Java modules with
https://github.com/apache/arrow/tree/main/java/maven/module-info-compiler-maven-plugin
- There are several new features which we could conditionally include in
the Arrow project like VarHandle (Java 9) and Foreign Function and Memory
API (Java 22) to move away from Unsafe support which require more and more
workarounds (Apache Lucene is a project which has managed to introduce
support for multiple Java incubator and final API while maintaining
compatibility with previous Java versions). But doing it from Java 8
creates a higher barrier.

Laurent

Reply via email to