I just raised this issue on the JPMS experts list, but I want to discuss the technical issues here.

On 05/18/2016 08:23 AM, David M. Lloyd wrote:
Related to #MutableConfigurations, in order to support dynamically
changing deployments for containers (including, I believe,
OSGi-compliant containers) where deployments are modules, it is
necessary to allow a module's dependency graph to be mutated at run
time.  The behavior of such things in existing systems is such that any
already-loaded/linked dependency classes remain, thus such action is
usually only guaranteed to be "safe" when adding dependencies, or when
it can be somehow guaranteed that no lingering dependency classes exist,
or that such lingering classes can safely be ignored.

While this operation isn't 100% safe, it is supported by containers in
existence today, so should at least be considered.

The primary obstacle to this request seems to be that module packages declared inside the JVM in Module::define_module, whose purpose I haven't decoded yet but am assuming that it is used to look up the module info for a given package name when constructing exception stack traces (I deduced this from the fact that the module name and version are passed in as strings here). Am I correct about this? Does this code have any other function?

Would it not be possible to instead use the class itself, which already has a reference to the Module, to get this sort of information? The String-ified module version could simply be stored as a field on the Module (as could the String-ified location information, whose purpose I have not yet determined).

--
- DML

Reply via email to