On 28/07/2016 09:47, Andrew Dinn wrote:
:
I believe you are missing an important point here -- one of scale. Large
middleware suites like containers currently comprise many hundreds of
component jars, many of them released independently by a proportionately
large number of 3rd party developers. That means something is always in
flux between one release and the next of the middleware suite. Your
pretty picture of Jigsaw imposing a nice clean mechanism to control
dependencies at the level of each individual released component does not
scale to this sort of circumstance.
A descriptor (module-info.class) baked into a 3rd party jar at release
cannot be altered without getting the 3rd party to update and re-release
the jar -- at which point other components then also need to change and
be re-released in consequence. Meanwhile further components will have
had to change to patch bugs or security issues and the whole cycle
starts all over again.
By contrast a descriptor (or suite of descriptors) independent from the
described components can be updated without having to get multiple 3rd
parties to be involved in re-creating the described components. This
latter route has indeed been followed by those who have had to build
systems at this scale for exactly this reason.
What you present as an advantage - having the linkage descriptor tightly
coupled with the linked component -- is, in fact, already known to
present significant problems. I find it bizarre that you seem to think
that your assumptions about the benefits offered by Jigsaw's mode of
operation can be blithely retained - not even allowing that they might
have some drawbacks -- in the face of repeated warnings from those who
have experience in these matters.
There is nothing in the module system that forces anyone to package a
module as a modular JAR. Also nothing that requires the compiled form of
the module declaration to be in the same artifact as the module
contents. Maybe it would better to start another thread on your
concerns, it otherwise feels like we are hijacking Stephen's thread.
-Alan.