Module naming restrictions
forax at univ-mlv.fr
Tue Apr 25 12:59:32 UTC 2017
I was thinking of (a), an automatic module should not allow Java keywords,
apart all methods ModuleDescriptor.new*Module should checks that each component of the qualified name is not a Java keyword.
The idea is that all variants of ModuleDescriptor.new*Module implements the JLS semantics and ModuleDescriptor.read() implements the JVMS semantics.
----- Mail original -----
> De: "Stephan Herrmann" <stephan.herrmann at berlin.de>
> À: jigsaw-dev at openjdk.java.net
> Envoyé: Mardi 25 Avril 2017 13:49:20
> Objet: Re: Module naming restrictions
> When you say "bug" do you mean
> (a) the name of that automatic module should avoid any Java keyword, or
> (b) Java keywords should be accepted as (part of) a module name?
> Option (a) would require a change in the specification of ModuleFinder
> whereas (b) currently conflicts with JLS 7.7 which clearly states
> A module name consists of one or more Java identifiers (§3.8) separated by "."
> While neither (a) nor (b) is fulfilled, libraries with a Java keyword in their
> simply cannot be used as automatic modules, right?
> On 25.04.2017 09:50, Remi Forax wrote:
>> Seems to be a bug to me.
>> ----- Mail original -----
>>> De: "Rafael Winterhalter" <rafael.wth at gmail.com>
>>> À: "jigsaw-dev" <jigsaw-dev at openjdk.java.net>
>>> Envoyé: Mardi 25 Avril 2017 09:12:04
>>> Objet: Module naming restrictions
>>> I did another update of my libraries to support Java 9 and found out that
>>> Byte Buddy cannot easily be used as an automatic module. It is published as
>>> byte-buddy.jar to Maven Central where its automatic module name would be
>>> byte.buddy. This does however not compile due to "byte" being a keyword in
>>> Java. Here is what javac gives me:
>>> src/module-info.java:2: error: <identifier> expected
>>> requires byte.buddy;
>>> 1 error
>>> I expect that this is not a common problem but not an uncommon one either.
>>> Looking for artifacts named after Java keywords in Maven Central, you can
>>> find quite a few.
>>> I do not know if this is technically feasible but I suggest that module
>>> names should not come with any restrictions due to the historic freedom in
>>> naming which would just cause confusion if some projects had to be renamed
>>> just to satisfy the module descriptors restrictions.
> >> Best regards, Rafael
More information about the jigsaw-dev