1/*
2 * Copyright (c) 2015, 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 <em>{@index jlink jlink tool}</em> tool for creating run-time
28 * images, the <em>{@index jmod jmod tool}</em> tool for creating and manipulating
29 * JMOD files, and the <em>{@index jimage jimage tool}</em> tool for inspecting
30 * the JDK implementation-specific container file for classes and resources.
31 *
32 * <p> This module provides the equivalent of command-line access to the
33 * <em>{@extLink jlink_tool_reference jlink}</em> and
34 * <em>{@extLink jmod_tool_reference jmod}</em> tools via the
35 * {@link java.util.spi.ToolProvider ToolProvider} SPI.
36 * Instances of the tools can be obtained by calling
37 * {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst}
38 * or the {@link java.util.ServiceLoader service loader} with the name
39 * {@code "jlink"} or {@code "jmod"} as appropriate.
40 *
41 * <p> <em>{@extLink jimage_tool_reference jimage}</em> only exists
42 * as a command-line tool, and does not provide any direct API.
43 *
44 * <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif">
45 * <dt class="simpleTagLabel">Tool Guides:
46 * <dd>{@extLink jlink_tool_reference jlink},
47 *     {@extLink jmod_tool_reference jmod},
48 *     {@extLink jimage_tool_reference jimage}
49 * </dl>
50 *
51 * @provides java.util.spi.ToolProvider
52 *
53 * @moduleGraph
54 * @since 9
55 */
56module jdk.jlink {
57    requires jdk.internal.opt;
58    requires jdk.jdeps;
59
60    uses jdk.tools.jlink.plugin.Plugin;
61
62    provides java.util.spi.ToolProvider with
63        jdk.tools.jmod.Main.JmodToolProvider,
64        jdk.tools.jlink.internal.Main.JlinkToolProvider;
65
66    provides jdk.tools.jlink.plugin.Plugin with
67        jdk.tools.jlink.internal.plugins.StripDebugPlugin,
68        jdk.tools.jlink.internal.plugins.ExcludePlugin,
69        jdk.tools.jlink.internal.plugins.ExcludeFilesPlugin,
70        jdk.tools.jlink.internal.plugins.ExcludeJmodSectionPlugin,
71        jdk.tools.jlink.internal.plugins.LegalNoticeFilePlugin,
72        jdk.tools.jlink.internal.plugins.SystemModulesPlugin,
73        jdk.tools.jlink.internal.plugins.StripNativeCommandsPlugin,
74        jdk.tools.jlink.internal.plugins.OrderResourcesPlugin,
75        jdk.tools.jlink.internal.plugins.DefaultCompressPlugin,
76        jdk.tools.jlink.internal.plugins.ExcludeVMPlugin,
77        jdk.tools.jlink.internal.plugins.IncludeLocalesPlugin,
78        jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin,
79        jdk.tools.jlink.internal.plugins.ReleaseInfoPlugin,
80        jdk.tools.jlink.internal.plugins.ClassForNamePlugin;
81 }
82