This Maven project produces a single artifact, whose coordinates
are io.thorntail.jdk-specific:thorntail-jdk-specific
. The artifact
is a multi-release JAR (see JEP 238)
and contains several utility classes that are implemented
differently between Java 8 and Java 9+. This is required on a few
places in the Thorntail core, and we build it as a separate
project to make sure that the main Thorntail project can stay
on Java 8.
In addition to the utility classes, a few JBoss Modules classes are overridden here. The main Thorntail codebase already carries a few patches to JBoss Modules, so it's natural to ask why are these overrides present here. The reason is same as above -- these changes need to be built with Java 9+, and we want the main project to stay on Java 8.
This project is only meant for use inside the Thorntail codebase and can't be treated as public API.