Skip to content

Java 21 baseline across all JVM modules #2

Description

@Ugbot

All 13 JVM poms declare Java 17. Moving the baseline to Java 21.

(Java 25 was evaluated and rejected: Flink 2.x supports 17/21, and the pinned Lombok 1.18.38 predates JDK 25 support.)

Scope:

  • Bump the version in one place via the shared parent from Build & release plumbing: make the artifacts consumable #1.
  • Switch the root pom from <source>/<target> to <release>. With source/target, javac links against the host JDK API, so a jar can compile clean and then NoSuchMethodError on a real baseline JVM. Two ports already do this correctly; the flagship module does not.
  • Add maven-enforcer-plugin requireJavaVersion, optionally a toolchain, and commit a Maven wrapper — nothing currently enforces or provisions the JDK.
  • Bump Lombok to keep a future JDK 25 evaluation unblocked.
  • Add the runtime --add-opens flags to the launcher scripts; they exist for surefire but not for java -jar / mvn exec:java.

Verified: the main module builds and all 770 tests pass on JDK 21 today, so the bump is expected to be mechanical.


Roadmap epic. Detailed findings, file:line citations and sub-tasks live in the AI-grind tracker (project AGS), which is the source of truth for this work. Local dev — build, test, tracking, profiling — is managed with AI-grind.


Tracked as AGS-2 in the devtools-mcp tracker.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions