Exporting - the wrong default?

Andrew Dinn adinn at redhat.com
Mon Aug 1 11:36:34 UTC 2016

On 29/07/16 21:13, Alex Buckley wrote:
> Mark already discussed with Jason how a container can rewrite
> descriptors as modules are being spun up [1] so I'm struggling to see
> the problem unless there is some burning desire to rewrite the
> descriptor by hand prior to run time. I can understand that if Sanne
> takes third party JARs containing no descriptors, and manually creates
> descriptors by spying on the POMs, then sure it's nice to keep the
> descriptors external and the JARs unchanged ... but a Jigsaw modular JAR
> already contains a descriptor that we assume is authoritative unless a
> container is rewriting at run time.

Yes, I had already read that discussion and I am hoping it can continue
to a point where it reaches a more definitive and actionable conclusion.

Firstly, I'll note that it was merely that -- a discussion. It was not a
conclusive investigation (let alone resolution) of the all the problems
that might be involved in providing the functionality required to manage
exports in the way Mark suggested. So, the suggestion that Jigsaw
provides all the functionality that is needed would not (yet) seem to me
to be warranted.

Secondly, the ability to rewrite import export relations at runtime when
constructing module Layers does not of itself remove any of the
complexity resulting from baking module descriptors into deployments. It
merely removes the stopper from the fly bottle -- the fly still needs to
work out how to locate and attain the exit. Now, if the fly was never
led into the fly-bottle in the first place ...

Thirdly, I think there are still outstanding issues on the table which
may invalidate this proposed solution (#CyclicDependences,
#MutableConfigurations). Indeed, Jason's response to Mark referred to
the latter issue (albeit not by name) and I don't think the response
really took into account the potential for problems in this area. In
particular, in a runtime where stopping and restarting of services along
with all their dependents may happen repeatedly and regularly issue
#MutableConfigurations may well transmute into issue
#LazyConfigurationAndInstantiation. Jigsaw really is not built to
support the removal and reinstallation of modules. Whether or not its
Layer concept is adequate to the needs of containers for which this is a
critical capability appears to me still to be an open question.


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander

More information about the jigsaw-dev mailing list