Make JLine3Feature usable with image-builer on module-path #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@boris-spas this change allows us to use the JLine3Feature when the image-builer runs on module-path.
In this case
launcher-common.jaris on the module-path and loaded as moduleorg.graalvm.launcher. In this scenarioClassLoader.getSystemResourceAsStreamdoes not work anymore and we have to useJLine3Feature.class.getModule().getResourceAsStream(resourcePath).Unfortunately using that directly would break using
launcher-common.jaron Java 8. Thus this is instead done reflectivity. On Java 8 we are falling back to usingClassLoader.getSystemResourceAsStream(resourcePath)which is safe because on 8launcher-common.jarcan only ever end up on the classpath.