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