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