[GR-47186] Unified native-image classloader for module- and class-path. #7302
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.
This custom class loader is used by the image builder to load the application classes that should be built into a native-image. It can load classes from a user-provided application module- and class-path. This is different from the existing classloaders that the JDK provides. While ModuleLayer.defineModulesWith methods only allow loading modules at runtime, URLClassLoader only allows loading classes on classpath at runtime. This is insufficient for the image builder as it needs to be able to load from both, module- and class-path, with the same loader so that classes on the given class-path are able to access classes from the given module-path.