Use GraalVM Native Image module introspection to eliminate the need for atomos_lib folder or bundles.index
- 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
Assessment
This issue has not been assessed yet.