Hello,

As you might know, JDK now offers "LTS" releases. The latest LTS release
was Java 17, one year ago.
To prepare Apache SIS for the future, I propose to upgrade its Java
requirements to Java 17+.

I suggest the following plan of action:

 1. Make a java 8 compatible 1.3 release (as I understand it, it is already
planned).
 2. Upgrade maven compiler configuration to require java 17 source and
target compatibility. As the build already succeed on Java 17, I expect
this task to be trivial.
 3. Update project README to clarify Apache SIS compatibility regarding
Java versions. (i.e: 1.0 to 1.3 included: java 8 compatible. Going further:
Java 17 compatible).
 4. Start discussing / experimenting JPMS (Jigsaw) modularization in the
long-term.

Who is in favor of such migration ? Is there any objection, remarks or
questions ?

Some additional information:

 - The switch to Java 17 would bring the following features to developers:
     - improved instanceof (also refered as pattern matching for
instanceof) -> since Java 16
     - Java records -> Since Java 14
     - Sealed classes and interfaces -> Since Java 15
     - "var" keyword for local variable definitions -> Since Java 11
     - JDK Http Client  -> Since Java 11
     - Many new methods / improvements in StdLib, amongst others :
VarHandles, new utility methods on Stream (mapMulti, toList, takeWhile,
toList, etc.), new utilities on Optional (or, stream, etc.)
 - I advocate for a jump from Java 8 directly to Java 17, without stopping
by Java 11, because:
     - Java 11 "premier" support will end very soon (september 2023).
     - Jjava 11 does not offers some of the most usefuls features stated
above (records, improved instanceof, sealed interfaces).
     - Other well-known open-source projects already decided to discard
Java 11. For example, Spring framework 6.0 (released this month) requires
java 17.

Regards,

Reply via email to