ControllerBuddy
ControllerBuddy copied to clipboard
Use the Java Platform Module System (JPMS)
A long term goal is to use the Java Platform Module System (JPMS) and move ControllerBuddy itself and all its dependencies onto the module path in order to let jlink
produce a minimal runtime automatically.
Unfortunately as of right now the JPMS is still not at all or badly supported by some of ControllerBuddy's dependencies and the toolchain:
- Eclipse still has major issues parsing the
module-info.java
of multi-release JARs (bug) - Two JARs on which
batik-swing
depends on (batik-script
andxalan
) cannot be placed on the module path (bug)
The jpms branch contains the necessary modifications and workarounds to use JPMS. However until at least the Eclipse issue is fixed using JPMS is out of the question.
Since jlink
requires us to move ALL dependencies onto the module path in order to take advantage of the JPMS there are currently no benefits in doing the switch. Also we currently already configure jlink
manually to produce a minimal runtime.
JNA has extra packages with a module.info
: https://github.com/java-native-access/jna/blob/master/www/FrequentlyAskedQuestions.md#does-jna-publish-a-module-descriptor-module-infojava-to-support-the-java-module-system-jpms