Skip to content

Use and require Java 22 #20980

@mosabua

Description

@mosabua

This issues aims to detail and track the progress towards adopting Java 22 as build and runtime requirement for Trino.

Background and motivation

Trino completely adopted Java 21 as of Trino 436. See https://trino.io/blog/2023/11/03/java-21 and https://trino.io/docs/current/release/release-436.html. Java 21 is a LTS release of Java.

Java 22 brings considerable improvements and additional APIs that enable further progress in terms of performance work done in Project Hummingbird.

Java 22 is a STS Java release and scheduled to ship in March 2024. Adoption timing in Trino will depend on testing results and feedback, as well as the time for implementation and collaboration with Trino community members.

Specifically, for Java 22, these are some features that we want to be able to leverage:

Implementation

Following steps are roughly in order:

  • CI build with Java 22 EA in parallel to Java 21
  • Blog post about plan to adopt Java 22, @mosabua and @dain, https://trino.io/blog/2024/03/13/java-22
  • Update dependencies as required to support Java 22, @wendigo
  • Update JVM in docker container to Java 22, @wendigo
  • Wait for official release of Java 22 and Eclipse Temurin binaries (if necessary in terms of timing)
  • Ship a release with the updated container image, and solicit user feedback - done with Trino 444
  • Update build, docs, and runtime to require Java 22, PR from @wendigo ready
  • Ship Trino 445
  • Ship Trino 446
  • Merge PR to require Java 22
  • Announce for developers
  • Ship Trino 447, announce, and update blog post

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions