1 /*
   2  * Copyright (c) 2014, 2016, 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 javax.security.auth.spi.LoginModule;
 112 
 113 
 114     // additional qualified exports may be inserted at build time
 115     // see make/gensrc/GenModuleInfo.gmk
 116 
 117     // CORBA serialization needs reflective access
 118     exports sun.util.calendar to
 119         java.corba;
 120 
 121     exports com.sun.security.ntlm to
 122         java.security.sasl;
 123     exports jdk.internal.jimage to
 124         jdk.jlink;
 125     exports jdk.internal.jimage.decompressor to
 126         jdk.jlink;
 127     exports jdk.internal.logger to
 128         java.logging;
 129     exports jdk.internal.org.objectweb.asm to
 130         jdk.jartool,
 131         jdk.jlink,
 132         jdk.scripting.nashorn,
 133         jdk.vm.ci;
 134     exports jdk.internal.org.objectweb.asm.tree to
 135         jdk.jlink;
 136     exports jdk.internal.org.objectweb.asm.util to
 137         jdk.jlink,
 138         jdk.scripting.nashorn;
 139     exports jdk.internal.org.objectweb.asm.tree.analysis to
 140         jdk.jlink;
 141     exports jdk.internal.org.objectweb.asm.commons to
 142         jdk.scripting.nashorn;
 143     exports jdk.internal.org.objectweb.asm.signature to
 144         jdk.scripting.nashorn;
 145     exports jdk.internal.loader to
 146         java.instrument,
 147         java.logging;
 148     exports jdk.internal.math to
 149         java.desktop;
 150     exports jdk.internal.module to
 151         java.instrument,
 152         java.management,
 153         jdk.dynalink,
 154         jdk.jartool,
 155         jdk.jlink;
 156     exports jdk.internal.misc to
 157         java.corba,
 158         java.desktop,
 159         java.logging,
 160         java.management,
 161         java.naming,
 162         java.rmi,
 163         java.security.jgss,
 164         java.sql,
 165         java.xml,
 166         jdk.charsets,
 167         jdk.compiler,
 168         jdk.jartool,
 169         jdk.jdeps,
 170         jdk.jlink,
 171         jdk.jshell,
 172         jdk.net,
 173         jdk.scripting.nashorn,
 174         jdk.scripting.nashorn.shell,
 175         jdk.unsupported,
 176         jdk.vm.ci;
 177     exports jdk.internal.perf to
 178         java.desktop,
 179         java.management,
 180         jdk.jvmstat;
 181     exports jdk.internal.ref to
 182         java.desktop;
 183     exports jdk.internal.reflect to
 184         java.corba,
 185         java.logging,
 186         java.sql,
 187         java.sql.rowset,
 188         jdk.dynalink,
 189         jdk.scripting.nashorn,
 190         jdk.unsupported;
 191     exports jdk.internal.vm.annotation to
 192         jdk.unsupported,
 193         jdk.vm.ci;
 194     exports jdk.internal.util.jar to
 195         jdk.jartool,
 196         jdk.jdeps;
 197     exports jdk.internal.vm to
 198         java.management,
 199         jdk.jvmstat;
 200     exports sun.net to
 201         java.httpclient;
 202     exports sun.net.ext to
 203         jdk.net;
 204     exports sun.net.dns to
 205         java.security.jgss,
 206         jdk.naming.dns;
 207     exports sun.net.util to
 208         java.desktop,
 209         jdk.jconsole,
 210         jdk.naming.dns;
 211     exports sun.net.www to
 212         java.desktop,
 213         jdk.jartool;
 214     exports sun.net.www.protocol.http to
 215         java.security.jgss;
 216     exports sun.nio.ch to
 217         java.management,
 218         jdk.crypto.pkcs11,
 219         jdk.sctp;
 220     exports sun.nio.cs to
 221         java.desktop,
 222         jdk.charsets;
 223     exports sun.nio.fs to
 224         jdk.unsupported;
 225     exports sun.reflect.annotation to
 226         jdk.compiler;
 227     exports sun.reflect.generics.reflectiveObjects to
 228         java.desktop;
 229     exports sun.reflect.misc to
 230         java.corba,
 231         java.desktop,
 232         java.datatransfer,
 233         java.management,
 234         java.rmi,
 235         java.sql.rowset,
 236         java.xml,
 237         java.xml.ws;
 238     exports sun.security.action to
 239         java.desktop,
 240         java.security.jgss,
 241         jdk.crypto.pkcs11;
 242     exports sun.security.internal.interfaces to
 243         jdk.crypto.pkcs11;
 244     exports sun.security.internal.spec to
 245         jdk.crypto.pkcs11;
 246     exports sun.security.jca to
 247         java.smartcardio,
 248         java.xml.crypto,
 249         jdk.crypto.ec,
 250         jdk.crypto.pkcs11,
 251         jdk.naming.dns;
 252     exports sun.security.pkcs to
 253         jdk.crypto.ec,
 254         jdk.jartool;
 255     exports sun.security.provider to
 256         java.rmi,
 257         java.security.jgss,
 258         jdk.crypto.pkcs11,
 259         jdk.policytool,
 260         jdk.security.auth;
 261     exports sun.security.provider.certpath to
 262         java.naming;
 263     exports sun.security.rsa to
 264         jdk.crypto.pkcs11;
 265     exports sun.security.ssl to
 266         java.security.jgss;
 267     exports sun.security.tools to
 268         jdk.jartool;
 269     exports sun.security.util to
 270         java.desktop,
 271         java.naming,
 272         java.rmi,
 273         java.security.jgss,
 274         java.security.sasl,
 275         java.smartcardio,
 276         jdk.crypto.ec,
 277         jdk.crypto.pkcs11,
 278         jdk.jartool,
 279         jdk.policytool,
 280         jdk.security.auth,
 281         jdk.security.jgss;
 282     exports sun.security.x509 to
 283         jdk.crypto.ec,
 284         jdk.crypto.pkcs11,
 285         jdk.jartool,
 286         jdk.security.auth;
 287     exports sun.text.resources to
 288         jdk.localedata;
 289     exports sun.util.cldr to
 290         jdk.jlink;
 291     exports sun.util.locale.provider to
 292         java.desktop,
 293         jdk.jlink,
 294         jdk.localedata;
 295     exports sun.util.logging to
 296         java.desktop,
 297         java.logging,
 298         java.prefs;
 299     exports sun.util.resources to
 300         jdk.localedata;
 301 
 302     // JDK-internal service types
 303     uses jdk.internal.logger.DefaultLoggerFinder;
 304     uses sun.security.ssl.ClientKeyExchangeService;
 305     uses sun.util.spi.CalendarProvider;
 306     uses sun.util.locale.provider.LocaleDataMetaInfo;
 307     uses sun.util.resources.LocaleData.CommonResourceBundleProvider;
 308     uses sun.util.resources.LocaleData.SupplementaryResourceBundleProvider;
 309 
 310 
 311     // Built-in service providers that are located via ServiceLoader
 312 
 313     provides java.nio.file.spi.FileSystemProvider with
 314         jdk.internal.jrtfs.JrtFileSystemProvider;
 315 }