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