Proposal (revised): #VersionsInModuleNames
mark.reinhold at oracle.com
mark.reinhold at oracle.com
Thu Mar 23 18:15:24 UTC 2017
Issue summary
-------------
#VersionsInModuleNames -- Some have argued that library maintainers
will be tempted to encode major version numbers, or even full version
numbers, in module names. Is there some way we can guide people away
from doing that? [1]
Proposal
--------
Based on extensive feedback, from EG members and others, make two
changes:
- Abandon the current proposal [2] to mandate that module names used
anywhere in source-form module declarations both start and end with
"Java letters".
(This restriction was never implemented in the prototype RI.)
- Revise the algorithm that computes the names of automatic modules so
that it preserves digits at the end of module names [3]. The name
for `commons-lang3-3.0.jar`, e.g., will now be `commons.lang3`.
(Whether that algorithm is changed in other ways, or automatic
modules are abandoned altogether, is the subject of the separate
#AutomaticModuleNames issue [4].)
In order to discourage the encoding of version numbers in module names a
Java language compiler may issue a lint warning when a module with such
a name is compiled, but whether or not a compiler does so is beyond the
scope of this specification.
[1] http://openjdk.java.net/projects/jigsaw/spec/issues/#VersionsInModuleNames
[2] http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-December/000516.html
[3] http://cr.openjdk.java.net/~mr/jigsaw/spec/api/java/lang/module/ModuleFinder.html#of-java.nio.file.Path...-
[4] http://openjdk.java.net/projects/jigsaw/spec/issues/#AutomaticModuleNames
More information about the jpms-spec-experts
mailing list