This modifies the manifests of all executable jars we produce to
include the appropriate Add-Opens and Enable-Native-Access flags:
* /core's jruby-base jar, executable but without any shaded
dependencies
* /shaded's jruby-core jar, executable and used as the main dist
jar
* /maven/jruby-complete's fully-shaded jar
Normal JRuby use will go through our launcher and apply these
flags at the command line, but this allows these jars to be run
with -jar at the command line without producing warnings about
unopened packages or native library access.
Relates to the following issues that mention the native access
warning or our warnings about certain IO packages not being open:
* jruby#8727: JRuby being launched
from within a Gradle plugin. Fixed by adding the opens flags, but
probably also fixed by this commit.
* jruby#6721: Warnings about our
native process and IO subsystems being unable to access the core
JDK classes needed. May not be fixed by this issue, since JRuby
appears to be used as a library, not as the main jar.
* jruby#8910: Not directly an issue
related to these flags, but these flags will eliminate the
warning for e.g. the SQLite JDBC driver when JRuby is not being
run in the typical way.
* https://github.com/jruby/jruby/issues/8932: More issues with
native IO and process management not working properly on Windows
due to the native launcher not yet including the necessary flags.
May be fixed by this commit if the launcher is also still loading
JRuby on classpath and not as a module.
This modifies the manifests of all executable jars we produce to include the appropriate Add-Opens and Enable-Native-Access flags:
Normal JRuby use will go through our launcher and apply these flags at the command line, but this allows these jars to be run with -jar at the command line without producing warnings about unopened packages or native library access.
Relates to the following issues that mention the native access warning or our warnings about certain IO packages not being open: