We are about migrating our application to latest LTS release. My own code is not compiling with Java 17 because Orekit uses some internal classes.
The error is :
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project orekit: Fatal error compiling: java.lang.IllegalAccessError: class org.orekit.compiler.plugin.DefaultDataContextPlugin$AnnotationTreeScanner (in unnamed module @0x5c92f780) cannot access class com.sun.tools.javac.tree.JCTree (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.tree to unnamed module @0x5c92f780 -> [Help 1]
I suspect that Java 17 compiler is more restrictive on this kind of uses, based on modules concept.
Perhaps @sdinot has a clue about this? If I remember correctly, he told me some weeks ago that this would require an update in our infrastructure, which is probably not a trivial task.
It looks like you have the same kind of errors, ie Java forbidding stuffs:
java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @4cefa0be
We don’t have any dependencies in the Hipparchus library itself (only Java) and have only dependency to Junit (and of course its transitive dependencies) in the tests parts.
This branch was also intended to use recent versions of many build tools plugins (tools, not dependencies), so it should already be reasonably up to date.
I think an upgrade of Sonar is planned by @sdinot, but I can’t tell you when exactly.
This can be a pain sometimes because Sonar can change the rules’ definition between 2 versions without maintaining compatibility. We’ll see how it goes.