Skip to content

Allow incomplete classpath configuration to be more granular #3929

@galderz

Description

@galderz

Is your feature request related to a problem? Please describe.
Having 3rd party libraries define --allow-incomplete-classpath can be very problematic for frameworks such as Quarkus.

When the flag is there, errors start to become more difficult to understand. It would even seem that the native image itself behaves differently enough, that seemingly unrelated errors appear out of nowhere.

Quarkus tries as hard as possible to avoid any 3rd party libraries setting it, but at time some of those are proprietary or closed source, so there's nothing we can do about it.

The worst part of the flag is the fact that it has a global implication.

Describe the solution you'd like.
It would be nice to have an optional way to make the flag not global. That is, find a way to trim the code that is affected by this flag.

For example, could we find an idiomatic way to say: allow these methods/classes/packages to reference bytecode for which classes are not in the classpath. For any other part of the code, throw an error.

Describe who do you think will benefit the most.
Frameworks which depend on GraalVM, e.g. Quarkus.

Describe alternatives you've considered.
We don't see any other alternatives.

Additional context.
Add any other context about the feature request here.
For example, link to the relevant projects, documentation, standards.

Express whether you'd like to help contributing this feature
I'd be happy to implement it once we've found an agreement.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions