apollographql/federation-jvm

Target JVM version

dariuszkuc opened this issue · 1 comments

We are currently building on JDK 8 and targeting Java 8 bytecode (which is the same setup as used by graphql-java). While Java 18 is already out, Java 17 is the current long term support (LTS) version. While the current setup works, it is also limiting as we cannot use any new JVM features and build fails when run on JDK16+ due to a bug in one the plugins (there is a workaround but it relies on new JVM args which are not available in JDK 8).

According to SNYK JVM ecosystem report, 60% of JVM devs still use Java 8 in their production environment (potentially "legacy" systems?).

Starting this issue to hold a discussion on what should be our JVM that is used for the build and what should be our JDK bytecode target, e.g. we could potentially build the libs using Java 11 and still target Java 8 bytecode.

We will follow the JVM version used by graphql-java (which will update to Java 11 starting with v21 release targeting July '23).

https://www.graphql-java.com/blog/java-11-required