On 28/07/2016 10:42, Andrew Dinn wrote:
:
Well, that is a complete surprise to me. I have not seen this explained
or documented anywhere.
Could you point me at the relevant documentation so I can understand
how I need to configure such a split deployment or at least provide me
with more details?
(I've changed the subject line).
OOTB, the JDK supports modular JARs and exploded modules at compile-time
and run-time. There is also a niche format called JMOD for packaging
modules that are only consumed at link time, interesting when creating
custom run-time images with jlink, probably not interesting in this thread.
If you want to use alternative packaging, or store the module
declarations separate to the module contents, then you will need to
develop your own ModuleFinder. There are are a number of classes in the
API that need to be implemented but it shouldn't be too difficult. One
method to point out is ModuleDescriptor.read to read the binary form and
combine it with the set of packages in the module. All the docs are
online [1]. This all assumes you are doing dynamic configuration and
creating your own layer of modules of course, there is nothing that
allows using custom packaging formats during startup (chicken 'an egg
issue of course). I don't have a suggestion for compile-time but from
your other mail then it sounds more like patching, no mention of
recompiling modules.
BTW: One thing that would be useful is to provide one or two examples.
If my module `exports foo.math` and `exports foo.math.function` for
example, then it's hard to see why you would be changing it, at least
not if you aren't shading it. Ditto for `uses` and `provides`. So I
think/assume you are mostly thinking about `requires`.
-Alan
[1] http://download.java.net/java/jigsaw/docs/api/index.html