spring-projects / spring-shell

Spring based shell
http://projects.spring.io/spring-shell/
Apache License 2.0
733 stars 396 forks source link

Support JDK FFM #1131

Closed jvalkeal closed 1 month ago

jvalkeal commented 2 months ago

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.

jvalkeal commented 2 months ago

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).