8182416: Clean up module-info.java like move requires transitive adjacent to exports

Reviewed-by: alanb
This commit is contained in:
Mandy Chung 2017-06-17 11:50:45 -07:00
parent beba252b47
commit 960807e246
6 changed files with 75 additions and 44 deletions

View file

@ -23,12 +23,14 @@
* questions.
*/
/**
/**
* Defines the Language Model, Annotation Processing, and Java Compiler APIs.
* <P>
* <p>
* These APIs model declarations and types of the Java programming language,
* and define interfaces for tools such as compilers which can be invoked
* from a program.
* <p>
* This module is upgradeble.
*
* @moduleGraph
* @since 9

View file

@ -88,6 +88,7 @@ module jdk.compiler {
exports com.sun.source.tree;
exports com.sun.source.util;
exports com.sun.tools.javac;
exports com.sun.tools.doclint to
jdk.javadoc;
exports com.sun.tools.javac.api to
@ -127,16 +128,16 @@ module jdk.compiler {
uses com.sun.source.util.Plugin;
uses com.sun.tools.javac.platform.PlatformProvider;
provides java.util.spi.ToolProvider
with com.sun.tools.javac.main.JavacToolProvider;
provides java.util.spi.ToolProvider with
com.sun.tools.javac.main.JavacToolProvider;
provides com.sun.tools.javac.platform.PlatformProvider
with com.sun.tools.javac.platform.JDKPlatformProvider;
provides com.sun.tools.javac.platform.PlatformProvider with
com.sun.tools.javac.platform.JDKPlatformProvider;
provides javax.tools.JavaCompiler
with com.sun.tools.javac.api.JavacTool;
provides javax.tools.JavaCompiler with
com.sun.tools.javac.api.JavacTool;
provides javax.tools.Tool
with com.sun.tools.javac.api.JavacTool;
provides javax.tools.Tool with
com.sun.tools.javac.api.JavacTool;
}

View file

@ -58,9 +58,10 @@
* @since 9
*/
module jdk.javadoc {
requires java.xml;
requires transitive java.compiler;
requires transitive jdk.compiler;
requires java.xml;
exports com.sun.javadoc;
exports com.sun.tools.doclets;
@ -69,13 +70,13 @@ module jdk.javadoc {
exports jdk.javadoc.doclet;
provides java.util.spi.ToolProvider
with jdk.javadoc.internal.tool.JavadocToolProvider;
provides java.util.spi.ToolProvider with
jdk.javadoc.internal.tool.JavadocToolProvider;
provides javax.tools.DocumentationTool
with jdk.javadoc.internal.api.JavadocTool;
provides javax.tools.DocumentationTool with
jdk.javadoc.internal.api.JavadocTool;
provides javax.tools.Tool
with jdk.javadoc.internal.api.JavadocTool;
provides javax.tools.Tool with
jdk.javadoc.internal.api.JavadocTool;
}

View file

@ -203,12 +203,30 @@ public class ModuleInfoBuilder {
writer.format("%smodule %s {%n", open ? "open " : "", md.name());
Map<String, Module> modules = configuration.getModules();
// first print the JDK modules
md.requires().stream()
.filter(req -> !req.name().equals("java.base")) // implicit requires
// first print requires
Set<Requires> reqs = md.requires().stream()
.filter(req -> !req.name().equals("java.base") && req.modifiers().isEmpty())
.collect(Collectors.toSet());
reqs.stream()
.sorted(Comparator.comparing(Requires::name))
.forEach(req -> writer.format(" requires %s;%n",
toString(req.modifiers(), req.name())));
if (!reqs.isEmpty()) {
writer.println();
}
// requires transitive
reqs = md.requires().stream()
.filter(req -> !req.name().equals("java.base") && !req.modifiers().isEmpty())
.collect(Collectors.toSet());
reqs.stream()
.sorted(Comparator.comparing(Requires::name))
.forEach(req -> writer.format(" requires %s;%n",
toString(req.modifiers(), req.name())));
if (!reqs.isEmpty()) {
writer.println();
}
if (!open) {
md.exports().stream()
@ -218,6 +236,10 @@ public class ModuleInfoBuilder {
})
.sorted(Comparator.comparing(Exports::source))
.forEach(exp -> writer.format(" exports %s;%n", exp.source()));
if (!md.exports().isEmpty()) {
writer.println();
}
}
md.provides().stream()
@ -230,6 +252,9 @@ public class ModuleInfoBuilder {
";")))
.forEach(writer::println);
if (!md.provides().isEmpty()) {
writer.println();
}
writer.println("}");
}

View file

@ -59,6 +59,7 @@
module jdk.jdeps {
requires java.compiler;
requires jdk.compiler;
exports com.sun.tools.classfile to jdk.jlink;
provides java.util.spi.ToolProvider with

View file

@ -65,27 +65,28 @@
* @since 9
*/
module jdk.jshell {
requires transitive java.compiler;
requires transitive jdk.jdi;
requires transitive java.prefs;
requires java.logging;
requires jdk.compiler;
requires jdk.internal.le;
requires jdk.internal.ed;
requires jdk.internal.le;
requires jdk.internal.opt;
requires transitive java.compiler;
requires transitive java.prefs;
requires transitive jdk.jdi;
exports jdk.jshell;
exports jdk.jshell.spi;
exports jdk.jshell.execution;
exports jdk.jshell.spi;
exports jdk.jshell.tool;
uses jdk.jshell.spi.ExecutionControlProvider;
uses jdk.internal.editor.spi.BuildInEditorProvider;
provides javax.tools.Tool
with jdk.internal.jshell.tool.JShellToolProvider;
provides jdk.jshell.spi.ExecutionControlProvider
with jdk.jshell.execution.JdiExecutionControlProvider,
provides javax.tools.Tool with
jdk.internal.jshell.tool.JShellToolProvider;
provides jdk.jshell.spi.ExecutionControlProvider with
jdk.jshell.execution.JdiExecutionControlProvider,
jdk.jshell.execution.LocalExecutionControlProvider,
jdk.jshell.execution.FailOverExecutionControlProvider;
}