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