[PROPOSAL] Move trunk to Java 25 before the release26.11 branch

Hi all,

I'd like to propose that we raise trunk's Java source and target level from
17 to 25, the current LTS, before we create the release26.11 branch, so
that the next major release ships on Java 25. release24.09 would stay on
Java 17.

Java 17 is starting to hold us back: we currently ignore Lucene 10 (needs
Java 21), the CAS LDAP support 7.x and 8.x (Java 21 and 25) and
activiti-juel-jakarta 9 (Java 25) in Dependabot for that reason. Moving to
21 would only unblock some of these, and a release cut now will be in use
well past the end of Java 17's support window.

Over the last few weeks I cleaned trunk up on Java 17 so the switch itself
stays small (OFBIZ-13732, OFBIZ-13743, OFBIZ-13786): all this-escape and
varargs warnings are fixed and their lint exclusions are gone. Trunk with
the plugins builds, passes check and javadoc, and runs all 713 integration
tests on JDK 25 at target 25 with only the version changed in build.gradle.
The public API changes from that work are listed in a comment on
OFBIZ-13743.

The upgrade itself would be one short series of PRs: the source/target
level, the CI matrix, the Dockerfile and devcontainer images, replacing the
Java 17 workarounds (new Locale(...) and Thread.getId()), and making the
compiler lint fatal.

I'd really appreciate your thoughts and any concerns about moving to Java
25. If we're broadly in agreement, I'll go ahead and file the tickets for
the upgrade.

Thanks,
Mridul Pathak

Reply via email to