spring-projects/spring-shell

Support JDK FFM

jvalkeal opened this issue · 1 comments

With JDK22 a Foreign Function and Memory API came out from a preview which is supposed to be a replacement for JNI which we heavily rely via JLine as that's only way to have better terminal features. JLine's terminal provider system has a support for FFM together with JNI/JNA which are more or less deprecated to get removed at some time in a future.

Spring Shell will always follow JDK baseline(JDK17) from boot/framework but order to add FFM support we need to start compiling some new modules with JDK22+.

Up until JDK25(next LTS) we need to be a relatively aggressive to use latest JDK(22,23,24) or at least we could not fall behind what JLine uses for its FFM parts.

This issue tracks work for this particular use case.

#1132 changed how javadocs are generated as at some point we also need to handle that via toolchain and it was difficult if aggregated javadocs are in a root project(we can't change main jdk).