You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We generate all of our classes into one big bucket, with no link between the class and the artifact it is augmenting. This causes problems with modules, which require a strong association between package and module. We should link up each class to its corresponding host artifact. This could be done in a few different ways (with different pros/cons):
Link to the artifact coordinates from the generated class BI
Link to a host class from the generated class BI (this is somewhat similar to how defining classes via Lookup works)
Some external mapping of generated class package to artifact (this falls down if we start allowing multiple instances of an artifact in the run time image e.g. two versions of Kafka)
It's not clear which (if any) of these ideas is practical.
This is affecting all modes when launching a modular app (which I'm developing out of tree right now). Essentially, if you're using modules, you cannot split packages.
We generate all of our classes into one big bucket, with no link between the class and the artifact it is augmenting. This causes problems with modules, which require a strong association between package and module. We should link up each class to its corresponding host artifact. This could be done in a few different ways (with different pros/cons):
Lookup
works)It's not clear which (if any) of these ideas is practical.
References:
io.quarkus.deployment.builditem.GeneratedClassBuildItem
java.lang.Module#getPackages
java.lang.invoke.MethodHandles.Lookup#defineClass
java.lang.invoke.MethodHandles.Lookup#defineHiddenClass
java.lang.invoke.MethodHandles.Lookup#defineHiddenClassWithClassData
The text was updated successfully, but these errors were encountered: