Where can I find the authoritative definition of the Java SE 9 module
dependencies and relationships?

When I'm looking at the "Modular platform" [1] section of the "Java SE
9 Public Review Specification", I can see the "module graph". Its
module dependencies seem to correspond to the Java 9 API documentation
[2]. For the "java.desktop" package for example, both define
"java.datatransfer" and "java.xml" as its transitive dependencies.
However when I'm looking at the source code [3], I can see that
"java.desktop" also requires "java.prefs" (non-transitively). Why is
this dependency not recorded in the module graph and the API
documentation?

For "java.corba" it seems even more confusing. The API documentation
list "java.desktop" and "java.rmi" as transitively required, but also
explicitly "java.datatransfer" and "java.xml" as "additionally
required" modules, although they are implicitly reachable trough
"java.desktop" anyway. On the other hand, the module-info of
"java.corba" [5] only lists "java.desktop" and "java.rmi" as
transitively required but not "java.datatransfer" and "java.xml".
Additionally "java.logging", "java.naming" and "java.transaction" are
required non-transitively (but these requirements are not recorded,
neither in the module graph nor in the API documentation).

So to keep a long story short:

1. What of these module relationships and dependencies is mandated by
the Java SE 9 standard and what is implementation specific?

2. Where can I find the authoritative definition of the module
relationships and dependencies mandated by the Java SE 9 standard?

3. Is it acceptable for an "independent implementation" to add
additional "requires" and/or "requires transitive" edges from a
standard module to another standard module?

4. Were can I find the authoritative package to module mapping
mandated by the Java SE 9 standard? Is this just the current Java 9
API documentation?

Thank you and best regards,
Volker

[1] 
http://cr.openjdk.java.net/~iris/se/9/java-se-9-pr-spec-01/java-se-9-spec.html#s7
[2] http://download.java.net/java/jdk9/docs/api
[3] 
http://hg.openjdk.java.net/jdk9/dev/jdk/file/3bffd193a3a5/src/java.desktop/share/classes/module-info.java
[4] http://download.java.net/java/jdk9/docs/api/java.corba-summary.html
[5] 
http://hg.openjdk.java.net/jdk9/dev/corba/file/493011dee80e/src/java.corba/share/classes/module-info.java

Reply via email to