Draft JPMS Public Review specification

Tim Ellison Tim_Ellison at uk.ibm.com
Sun Mar 12 22:54:41 UTC 2017


"jpms-spec-experts" <jpms-spec-experts-bounces at openjdk.java.net> wrote on 
12/03/2017 12:40:00:
> Hi Mark,
> 
> As promised a small set of concrete examples:
> 
> In the JAR File Specification[1] I'm missing the option to add the 
> `Module-Name` attribute to the new JAR-file manifest.[2]
> 
> It is the choice of the jigsaw team that every jar used in a modular 
> project must be specified as a requirement in the module declaration. 
For 
> me a subset of requirements would already be fine, while slowly 
increasing 
> the number of requirements with every release of the project to make it 
> more and more stable. Anyhow, I can live with this decision, but is 
comes 
> at a price.
> 
> Maven won't allow references to automodules in case of libraries for 
> reasons discussed in other threads.
> Our definition of a library is that is has at least 1 export-statement. 
> Referring to named modules, either by the name in the module-info file 
or 
> the `Module-Name` attribute, is fine.
> For applications (without any export-statement) referring to automodules 
 
> can be done with minimal danger.
> 
> For ease of transition, the `Module-Name` is simply a requirement, 
> otherwise libraries can only start adding the module declaration once 
> every required module is named. Until that moment this project could not 
 
> claim a module name, nor can it be referred to by other libraries.
> 
> I have the feeling that VersionsInModuleNames[3], or actually 
modulenames 
> ending with numbers should be allowed. In case of automodules, there are 
 
> cases where this would help, but also a same amount of modules where 
this 
> won't work. The resolution for automodules should not be the (only) 
reason 
> to decline numbers at the end.

I agree that we should drop the proposal addressing 
#VersionsInModuleNames,
that module names must end with a Java letter.  Based on practical 
experience
there are a number of libraries that have attempted to use a number
legitimately (i.e. not as a version identifier) and been caught out by 
this.

There are any number of bad practices that could be accomplished within 
the
current design, and attempting to spec them out of existence is quite 
futile.
This proposal introduces friction to adoption for a very limited gain.

Regards,
Tim

> David suggested to reopen #CyclicDependences and based on his story I 
> agree that this one should be reconsidered. The problem can arise at 
> runtime when a combination of versions of different modules come 
together 
> and create a cycle, whereas at compile time (with a different set of 
> modules) everything looks fine. I don't think that it is the 
> responsibility of the JVM to prevent cycles, there are other tools which 
 
> can detect cycles and warn about it and where you can suppress it, 
because 
> it is intended.
> 
> Based on the Java Platform Module System: Requirements[4] I don't see 
any 
> goal specification regarding cyclic dependencies. It looks more like a 
> bonus you achieved with the JDK/JRE itself to make it possible to link 
> small assemblies, but the outer world sometimes needs this trick.
> 
> best,
> Robert
> 
> [1] http://cr.openjdk.java.net/~mr/jigsaw/spec/jar.html#Modular
> [2] 
> 
http://openjdk.java.net/projects/jigsaw/spec/issues/#ModuleNameInManifest
> [3] 
> 
http://openjdk.java.net/projects/jigsaw/spec/issues/#VersionsInModuleNames
> [4] http://openjdk.java.net/projects/jigsaw/spec/reqs/
> 
> On Tue, 07 Mar 2017 17:50:04 +0100, <mark.reinhold at oracle.com> wrote:
> 
> > At this point in time the draft specification appears to achieve the 
goal
> > of this JSR.  We have a small and shrinking number of open issues on 
the
> > list [1], and I expect the resolution of those issues to require at 
most
> > modest adjustments to the final draft.  I therefore intend to submit 
the
> > following draft to the JCP PMO to be posted for Public Review:
> >
> >     http://cr.openjdk.java.net/~mr/jigsaw/spec/
> >
> > Please let me know by 17:00 UTC next Tuesday, 14 March if you think 
any
> > changes are required, or if you need more time for review.
> >
> > - Mark
> >
> >
> > [1] http://openjdk.java.net/projects/jigsaw/spec/issues
> 

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU


More information about the jpms-spec-observers mailing list