The code base currently is working fine with Java 11. Nowadays I would set Java 21 as basis for new projects. Providing a lower requirement on Java 11 is good for integrators, which might not be able to upgrade Java for whatever reason, but integrators that migrate from Camunda do need to migrate anyway.
Supporting Java 11 would also imply to perform builds on multiple Java versions, which is additional effort and resource consumption.
WDYT? Should the project require Java 21? Or stay with Java 11?
I think this is a great idea. According to the Oracle Java SE Support Roadmap, the “normal” support ended in September 2023. As an open-source project, I believe we should align our supported versions with the standard support terms of the upstream projects, rather than dealing with “enterprise-only” extended support contracts.
I think upgrading the minimal version makes sense. Most companies should have run into higher versions with Spring Boot 3 at least, it requires J17.
I’m not too sure if we should first switch to 17, as I know quite a lot companies who have not made the switch to 21 yet (e.g. my current main customer). That would be a compromise
Perhaps a good way to do it would be to upgrade the minimum version to Java 17 now and put it on the roadmap that some time before 30 Sep 2026 (end of normal support of Java 17) it will be upgraded to Java 21
This is a good compromise. Java 11 is too low, and as @javahippie points out adopters might not be ready for 21 yet.
Anyway, ATM this changes nothing except for raising the enforced level. No code needs to be changed, except for Maven enforcer rules and documentation.