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