We need to inspect and rework our calls to JDK internal libs - with JDK 9 this is permitted but throws warnings in logs. In JDK 10 this is to be forbidden and {{Handles}} anr/or {{Unsafe}} needs to be used. Once done, we will likely need to java a multirelease JARs as the new solution won't be available in JDK 8. Note that it does not matter whether you use classpath or module path. One such case of our reflection usage is the way we create proxies by calling {{ClassLoader.defineClass()}} (protected method on CL) in {{ClassFileUtils}}. This could instead be done via either {{Unsafe}} or {{Lookup}}.
There might be some changes required in classfilewriter itself which is to be discovered (likely related to https://github . com/jbossas/jboss-classfilewriter/issues/14)
Another part of this issue is to ensure we are continuously testing on JDK 9 (or 10, doesn't matter) as well as JDK 8.
Goal is to be able to execute all our tests with JDK 9 without any WARN messages related to illegal access. |
|