src/jdk.compiler/share/classes/module-info.java
changeset 47216 71c04702a3d5
parent 45796 830e16e5eef5
child 47268 48ec75306997
equal deleted inserted replaced
47215:4ebc2e2fb97c 47216:71c04702a3d5
       
     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