apache / apache/felix-atomos

Use GraalVM Native Image module introspection to eliminate the need for atomos_lib folder or bundles.index

Open
#50 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
44
Forks
19
PR merge metrics
No merged PRs in 30d

Description

The substrate [documentation](https://github.com/apache/felix-atomos/blob/master/atomos.examples/SUBSTRATE.md) states that Atomos Module support expects to have full introspection of the Java Platform Module System. Because this was not available in older versions of GraalVM, workarounds were introduced in Atomos which reads bundle information at runtime from an extra atomos_lib folder with copies of all bundle JARs or from a bundles.index file which gets generated by the atomos-maven-plugin.
With the [ongoing effort](https://github.com/oracle/graal/issues/3935) GraalVM Native Image [version 22](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.0.0.2) brings functionality for required introspection at runtime. If Atomos makes use of the information provided by [ModuleLayer API ](https://docs.oracle.com/javase/9/docs/api/java/lang/ModuleLayer.html) the workarounds can be eliminated.
I have created a demo that [shows](https://github.com/joerg-wille/NativeImageUsingJPMS/blob/main/README.md) possible runtime information for modules from a native application.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.