|
1 /* |
|
2 * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. Oracle designates this |
|
8 * particular file as subject to the "Classpath" exception as provided |
|
9 * by Oracle in the LICENSE file that accompanied this code. |
|
10 * |
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
|
15 * accompanied this code). |
|
16 * |
|
17 * You should have received a copy of the GNU General Public License version |
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 * |
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 * or visit www.oracle.com if you need additional information or have any |
|
23 * questions. |
|
24 */ |
|
25 |
|
26 /** |
|
27 * Defines the implementation of the |
|
28 * {@linkplain javax.tools.ToolProvider#getSystemJavaCompiler system Java compiler} |
|
29 * and its command line equivalent, <em>{@index javac javac tool}</em>, |
|
30 * as well as <em>{@index javah javah tool}</em>. |
|
31 * |
|
32 * <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javac</h2> |
|
33 * |
|
34 * <p> |
|
35 * This module provides the equivalent of command-line access to <em>javac</em> |
|
36 * via the {@link java.util.spi.ToolProvider ToolProvider} and |
|
37 * {@link javax.tools.Tool} service provider interfaces (SPIs), |
|
38 * and more flexible access via the {@link javax.tools.JavaCompiler JavaCompiler} |
|
39 * SPI.</p> |
|
40 * |
|
41 * <p> Instances of the tools can be obtained by calling |
|
42 * {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst} |
|
43 * or the {@linkplain java.util.ServiceLoader service loader} with the name |
|
44 * {@code "javac"}. |
|
45 * |
|
46 * <p> |
|
47 * In addition, instances of {@link javax.tools.JavaCompiler.CompilationTask} |
|
48 * obtained from {@linkplain javax.tools.JavaCompiler JavaCompiler} can be |
|
49 * downcast to {@link com.sun.source.util.JavacTask JavacTask} for access to |
|
50 * lower level aspects of <em>javac</em>, such as the |
|
51 * {@link com.sun.source.tree Abstract Syntax Tree} (AST).</p> |
|
52 * |
|
53 * <p>This module uses the {@link java.nio.file.spi.FileSystemProvider |
|
54 * FileSystemProvider} API to locate file system providers. In particular, |
|
55 * this means that a jar file system provider, such as that in the |
|
56 * {@code jdk.zipfs} module, must be available if the compiler is to be able |
|
57 * to read JAR files. |
|
58 * |
|
59 * <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javah</h2> |
|
60 * |
|
61 * <p> |
|
62 * <em>javah</em> only exists as a command line tool, and does not provide any |
|
63 * direct API. As of JDK 9, it has been deprecated. |
|
64 * Use the {@code -h} option in <em>javac</em> instead.</p> |
|
65 * |
|
66 * <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif"> |
|
67 * <dt class="simpleTagLabel">Tool Guides: |
|
68 * <dd>{@extLink javac_tool_reference javac}, |
|
69 * {@extLink javah_tool_reference javah} |
|
70 * </dl> |
|
71 * |
|
72 * @provides java.util.spi.ToolProvider |
|
73 * @provides com.sun.tools.javac.platform.PlatformProvider |
|
74 * @provides javax.tools.JavaCompiler |
|
75 * @provides javax.tools.Tool |
|
76 * |
|
77 * @uses javax.annotation.processing.Processor |
|
78 * @uses com.sun.source.util.Plugin |
|
79 * @uses com.sun.tools.javac.platform.PlatformProvider |
|
80 * |
|
81 * @moduleGraph |
|
82 * @since 9 |
|
83 */ |
|
84 module jdk.compiler { |
|
85 requires transitive java.compiler; |
|
86 |
|
87 exports com.sun.source.doctree; |
|
88 exports com.sun.source.tree; |
|
89 exports com.sun.source.util; |
|
90 exports com.sun.tools.javac; |
|
91 |
|
92 exports com.sun.tools.doclint to |
|
93 jdk.javadoc; |
|
94 exports com.sun.tools.javac.api to |
|
95 jdk.javadoc, |
|
96 jdk.jshell; |
|
97 exports com.sun.tools.javac.code to |
|
98 jdk.javadoc, |
|
99 jdk.jshell; |
|
100 exports com.sun.tools.javac.comp to |
|
101 jdk.javadoc, |
|
102 jdk.jshell; |
|
103 exports com.sun.tools.javac.file to |
|
104 jdk.jdeps, |
|
105 jdk.javadoc; |
|
106 exports com.sun.tools.javac.jvm to |
|
107 jdk.javadoc; |
|
108 exports com.sun.tools.javac.main to |
|
109 jdk.javadoc; |
|
110 exports com.sun.tools.javac.model to |
|
111 jdk.javadoc; |
|
112 exports com.sun.tools.javac.parser to |
|
113 jdk.jshell; |
|
114 exports com.sun.tools.javac.platform to |
|
115 jdk.javadoc; |
|
116 exports com.sun.tools.javac.tree to |
|
117 jdk.javadoc, |
|
118 jdk.jshell; |
|
119 exports com.sun.tools.javac.util to |
|
120 jdk.jdeps, |
|
121 jdk.javadoc, |
|
122 jdk.jshell; |
|
123 exports jdk.internal.shellsupport.doc to |
|
124 jdk.jshell, |
|
125 jdk.scripting.nashorn.shell; |
|
126 |
|
127 uses javax.annotation.processing.Processor; |
|
128 uses com.sun.source.util.Plugin; |
|
129 uses com.sun.tools.javac.platform.PlatformProvider; |
|
130 |
|
131 provides java.util.spi.ToolProvider with |
|
132 com.sun.tools.javac.main.JavacToolProvider; |
|
133 |
|
134 provides com.sun.tools.javac.platform.PlatformProvider with |
|
135 com.sun.tools.javac.platform.JDKPlatformProvider; |
|
136 |
|
137 provides javax.tools.JavaCompiler with |
|
138 com.sun.tools.javac.api.JavacTool; |
|
139 |
|
140 provides javax.tools.Tool with |
|
141 com.sun.tools.javac.api.JavacTool; |
|
142 } |
|
143 |