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