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 foundational APIs of the Java SE Platform.
28 *
29 * <dl>
30 * <dt class="simpleTagLabel" style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif">Providers:</dt>
31 * <dd> The JDK implementation of this module provides an implementation of
32 *      the {@index jrt jrt} {@linkplain java.nio.file.spi.FileSystemProvider
33 *      file system provider} to enumerate and read the class and resource
34 *      files in a run-time image.
35 *      The jrt file system can be created by calling
36 *      {@link java.nio.file.FileSystems#newFileSystem
37 *      FileSystems.newFileSystem(URI.create("jrt:/"))}.
38 *      </dd>
39 * <dt class="simpleTagLabel" style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif">Tool Guides:</dt>
40 * <dd style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif"> {@extLink java_tool_reference java launcher},
41 *      {@extLink keytool_tool_reference keytool}</dd>
42 * </dl>
43 *
44 * @provides java.nio.file.spi.FileSystemProvider
45 *
46 * @uses java.lang.System.LoggerFinder
47 * @uses java.net.ContentHandlerFactory
48 * @uses java.net.spi.URLStreamHandlerProvider
49 * @uses java.nio.channels.spi.AsynchronousChannelProvider
50 * @uses java.nio.channels.spi.SelectorProvider
51 * @uses java.nio.charset.spi.CharsetProvider
52 * @uses java.nio.file.spi.FileSystemProvider
53 * @uses java.nio.file.spi.FileTypeDetector
54 * @uses java.security.Provider
55 * @uses java.text.spi.BreakIteratorProvider
56 * @uses java.text.spi.CollatorProvider
57 * @uses java.text.spi.DateFormatProvider
58 * @uses java.text.spi.DateFormatSymbolsProvider
59 * @uses java.text.spi.DecimalFormatSymbolsProvider
60 * @uses java.text.spi.NumberFormatProvider
61 * @uses java.time.chrono.AbstractChronology
62 * @uses java.time.chrono.Chronology
63 * @uses java.time.zone.ZoneRulesProvider
64 * @uses java.util.spi.CalendarDataProvider
65 * @uses java.util.spi.CalendarNameProvider
66 * @uses java.util.spi.CurrencyNameProvider
67 * @uses java.util.spi.LocaleNameProvider
68 * @uses java.util.spi.ResourceBundleControlProvider
69 * @uses java.util.spi.ResourceBundleProvider
70 * @uses java.util.spi.TimeZoneNameProvider
71 * @uses java.util.spi.ToolProvider
72 * @uses javax.security.auth.spi.LoginModule
73 *
74 * @moduleGraph
75 * @since 9
76 */
77module java.base {
78
79    exports java.io;
80    exports java.lang;
81    exports java.lang.annotation;
82    exports java.lang.invoke;
83    exports java.lang.module;
84    exports java.lang.ref;
85    exports java.lang.reflect;
86    exports java.math;
87    exports java.net;
88    exports java.net.spi;
89    exports java.nio;
90    exports java.nio.channels;
91    exports java.nio.channels.spi;
92    exports java.nio.charset;
93    exports java.nio.charset.spi;
94    exports java.nio.file;
95    exports java.nio.file.attribute;
96    exports java.nio.file.spi;
97    exports java.security;
98    exports java.security.acl;
99    exports java.security.cert;
100    exports java.security.interfaces;
101    exports java.security.spec;
102    exports java.text;
103    exports java.text.spi;
104    exports java.time;
105    exports java.time.chrono;
106    exports java.time.format;
107    exports java.time.temporal;
108    exports java.time.zone;
109    exports java.util;
110    exports java.util.concurrent;
111    exports java.util.concurrent.atomic;
112    exports java.util.concurrent.locks;
113    exports java.util.function;
114    exports java.util.jar;
115    exports java.util.regex;
116    exports java.util.spi;
117    exports java.util.stream;
118    exports java.util.zip;
119    exports javax.crypto;
120    exports javax.crypto.interfaces;
121    exports javax.crypto.spec;
122    exports javax.net;
123    exports javax.net.ssl;
124    exports javax.security.auth;
125    exports javax.security.auth.callback;
126    exports javax.security.auth.login;
127    exports javax.security.auth.spi;
128    exports javax.security.auth.x500;
129    exports javax.security.cert;
130
131
132    // additional qualified exports may be inserted at build time
133    // see make/gensrc/GenModuleInfo.gmk
134
135    exports com.sun.security.ntlm to
136        java.security.sasl;
137    exports jdk.internal.jimage to
138        jdk.jlink;
139    exports jdk.internal.jimage.decompressor to
140        jdk.jlink;
141    exports jdk.internal.loader to
142        java.instrument,
143        java.logging;
144    exports jdk.internal.jmod to
145        jdk.compiler,   // reflective dependency
146        jdk.jlink;
147    exports jdk.internal.logger to
148        java.logging;
149    exports jdk.internal.org.objectweb.asm to
150        jdk.jartool,
151        jdk.jlink,
152        jdk.scripting.nashorn,
153        jdk.internal.vm.ci;
154    exports jdk.internal.org.objectweb.asm.tree to
155        jdk.jlink;
156    exports jdk.internal.org.objectweb.asm.util to
157        jdk.scripting.nashorn;
158    exports jdk.internal.org.objectweb.asm.commons to
159        jdk.scripting.nashorn;
160    exports jdk.internal.org.objectweb.asm.signature to
161        jdk.scripting.nashorn;
162    exports jdk.internal.math to
163        java.desktop;
164    exports jdk.internal.misc to
165        java.desktop,
166        java.logging,
167        java.management,
168        java.naming,
169        java.rmi,
170        java.security.jgss,
171        java.sql,
172        java.xml,
173        jdk.attach,
174        jdk.charsets,
175        jdk.compiler,   // reflective dependency
176        jdk.incubator.httpclient,
177        jdk.jdeps,
178        jdk.jlink,
179        jdk.jshell,
180        jdk.net,
181        jdk.scripting.nashorn,
182        jdk.scripting.nashorn.shell,
183        jdk.unsupported,
184        jdk.internal.vm.ci;
185    exports jdk.internal.module to
186        java.instrument,
187        java.management.rmi,
188        jdk.jartool,
189        jdk.jlink;
190    exports jdk.internal.perf to
191        java.desktop,
192        java.management,
193        jdk.management.agent,
194        jdk.internal.jvmstat;
195    exports jdk.internal.ref to
196        java.desktop,
197        jdk.unsupported;
198    exports jdk.internal.reflect to
199        java.logging,
200        java.sql,
201        java.sql.rowset,
202        jdk.dynalink,
203        jdk.scripting.nashorn,
204        jdk.unsupported;
205    exports jdk.internal.vm to
206        jdk.management.agent,
207        jdk.internal.jvmstat;
208    exports jdk.internal.vm.annotation to
209        jdk.unsupported,
210        jdk.internal.vm.ci,
211        jdk.incubator.httpclient;
212    exports jdk.internal.util.jar to
213        jdk.jartool,
214        jdk.jdeps,
215        jdk.jlink;
216    exports sun.net to
217        jdk.incubator.httpclient;
218    exports sun.net.ext to
219        jdk.net;
220    exports sun.net.dns to
221        java.security.jgss,
222        jdk.naming.dns;
223    exports sun.net.util to
224        java.desktop,
225        jdk.jconsole,
226        jdk.incubator.httpclient;
227    exports sun.net.www to
228        java.desktop,
229        jdk.incubator.httpclient,
230        jdk.jartool;
231    exports sun.net.www.protocol.http to
232        java.security.jgss;
233    exports sun.nio.ch to
234        java.management,
235        jdk.crypto.cryptoki,
236        jdk.sctp,
237        jdk.unsupported;
238    exports sun.nio.cs to
239        java.desktop,
240        jdk.charsets;
241    exports sun.nio.fs to
242        jdk.unsupported;
243    exports sun.reflect.annotation to
244        jdk.compiler;
245    exports sun.reflect.generics.reflectiveObjects to
246        java.desktop;
247    exports sun.reflect.misc to
248        java.desktop,
249        java.datatransfer,
250        java.management,
251        java.management.rmi,
252        java.rmi,
253        java.sql.rowset,
254        java.xml;
255    exports sun.security.action to
256        java.desktop,
257        java.security.jgss;
258    exports sun.security.internal.interfaces to
259        jdk.crypto.cryptoki;
260    exports sun.security.internal.spec to
261        jdk.crypto.cryptoki;
262    exports sun.security.jca to
263        java.smartcardio,
264        jdk.crypto.ec,
265        jdk.crypto.cryptoki,
266        jdk.naming.dns;
267    exports sun.security.pkcs to
268        jdk.crypto.ec,
269        jdk.jartool;
270    exports sun.security.provider to
271        java.rmi,
272        java.security.jgss,
273        jdk.crypto.cryptoki,
274        jdk.policytool,
275        jdk.security.auth;
276    exports sun.security.provider.certpath to
277        java.naming;
278    exports sun.security.rsa to
279        jdk.crypto.cryptoki;
280    exports sun.security.ssl to
281        java.security.jgss;
282    exports sun.security.timestamp to
283        jdk.jartool;
284    exports sun.security.tools to
285        jdk.jartool;
286    exports sun.security.util to
287        java.desktop,
288        java.naming,
289        java.rmi,
290        java.security.jgss,
291        java.security.sasl,
292        java.smartcardio,
293        java.xml.crypto,
294        jdk.crypto.ec,
295        jdk.crypto.cryptoki,
296        jdk.jartool,
297        jdk.policytool,
298        jdk.security.auth,
299        jdk.security.jgss;
300    exports sun.security.x509 to
301        jdk.crypto.ec,
302        jdk.crypto.cryptoki,
303        jdk.jartool,
304        jdk.security.auth;
305    exports sun.security.validator to
306        jdk.jartool;
307    exports sun.text.resources to
308        jdk.localedata;
309    exports sun.util.cldr to
310        jdk.jlink;
311    exports sun.util.locale.provider to
312        java.desktop,
313        jdk.jlink,
314        jdk.localedata;
315    exports sun.util.logging to
316        java.desktop,
317        java.logging,
318        java.prefs;
319    exports sun.util.resources to
320        jdk.localedata;
321
322
323    // the service types defined by the APIs in this module
324
325    uses java.lang.System.LoggerFinder;
326    uses java.net.ContentHandlerFactory;
327    uses java.net.spi.URLStreamHandlerProvider;
328    uses java.nio.channels.spi.AsynchronousChannelProvider;
329    uses java.nio.channels.spi.SelectorProvider;
330    uses java.nio.charset.spi.CharsetProvider;
331    uses java.nio.file.spi.FileSystemProvider;
332    uses java.nio.file.spi.FileTypeDetector;
333    uses java.security.Provider;
334    uses java.text.spi.BreakIteratorProvider;
335    uses java.text.spi.CollatorProvider;
336    uses java.text.spi.DateFormatProvider;
337    uses java.text.spi.DateFormatSymbolsProvider;
338    uses java.text.spi.DecimalFormatSymbolsProvider;
339    uses java.text.spi.NumberFormatProvider;
340    uses java.time.chrono.AbstractChronology;
341    uses java.time.chrono.Chronology;
342    uses java.time.zone.ZoneRulesProvider;
343    uses java.util.spi.CalendarDataProvider;
344    uses java.util.spi.CalendarNameProvider;
345    uses java.util.spi.CurrencyNameProvider;
346    uses java.util.spi.LocaleNameProvider;
347    uses java.util.spi.ResourceBundleControlProvider;
348    uses java.util.spi.ResourceBundleProvider;
349    uses java.util.spi.TimeZoneNameProvider;
350    uses java.util.spi.ToolProvider;
351    uses javax.security.auth.spi.LoginModule;
352
353    // JDK-internal service types
354
355    uses jdk.internal.logger.DefaultLoggerFinder;
356    uses sun.security.ssl.ClientKeyExchangeService;
357    uses sun.text.spi.JavaTimeDateTimePatternProvider;
358    uses sun.util.spi.CalendarProvider;
359    uses sun.util.locale.provider.LocaleDataMetaInfo;
360    uses sun.util.resources.LocaleData.CommonResourceBundleProvider;
361    uses sun.util.resources.LocaleData.SupplementaryResourceBundleProvider;
362
363    // Built-in service providers that are located via ServiceLoader
364
365    provides java.nio.file.spi.FileSystemProvider with
366        jdk.internal.jrtfs.JrtFileSystemProvider;
367}
368