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. Rémi ----- Mail original ----- > De: "Stephan Herrmann" <stephan.herrm...@berlin.de> > À: jigsaw-dev@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 > "." > tokens. > > While neither (a) nor (b) is fulfilled, libraries with a Java keyword in their > name > simply cannot be used as automatic modules, right? > > Stephan > > > On 25.04.2017 09:50, Remi Forax wrote: >> Seems to be a bug to me. >> >> Rémi >> >> ----- Mail original ----- >>> De: "Rafael Winterhalter" <rafael....@gmail.com> >>> À: "jigsaw-dev" <jigsaw-dev@openjdk.java.net> >>> Envoyé: Mardi 25 Avril 2017 09:12:04 >>> Objet: Module naming restrictions >> >>> Hello, >>> >>> 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