ControllerBuddy icon indicating copy to clipboard operation
ControllerBuddy copied to clipboard

Use the Java Platform Module System (JPMS)

Open bwRavencl opened this issue 3 years ago • 0 comments

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 and xalan) 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

bwRavencl avatar Mar 18 '21 00:03 bwRavencl