#
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# EXCLUDE_PKGS is the list of packages to exclude from the
# Java API Specification. Do not add these to CORE_PKGS.
# The concatenation of EXCLUDE_PKGS and CORE_PKGS
# should make up the list of all packages under the
# src/shared/classes directory of the JDK source tree.
#
EXCLUDE_PKGS = \
    java.awt.peer \
    java.awt.dnd.peer \
    sun.* \
    com.sun.* \
    org.apache.* \
    org.jcp.* \
    org.w3c.dom.css \
    org.w3c.dom.html \
    org.w3c.dom.stylesheets \
    org.w3c.dom.traversal \
    org.w3c.dom.ranges \
    org.omg.stub.javax.management.remote.rmi

#
# ACTIVE_JSR_PKGS are packages that are part of an active JSR process--
# one that is doing its own review. These packages are not included when
# creating diff pages for the platform's JCP process.
#
# (see /java/pubs/apisrc/jdk/6.0/beta/make/docs/active_jsr_pkgs)
# Note:
# This is a list of regular expressions. So foo.* matches "foo" and "foo.bar".
#
ACTIVE_JSR_PKGS= \
    java.lang.invoke \
    java.sql \
    javax.activation \
    javax.annotation.* \
    javax.jws.* \
    javax.lang.* \
    javax.management.* \
    javax.script \
    javax.sql.* \
    javax.tools.* \
    javax.xml.* \
    org.w3c.* \
    org.xml.sax

#
# CORE_PKGS is the list of packages that form the
# Java API Specification.
#
### ***IMPORTANT NOTE***
### There is also a "REGEXP" variable in the docs/makefile that
### determines which table the packages go in on the main page.
### Currently, there is only table ("Platform Packages") and
### everything goes in it, so REGEXP is "*". But if that policy
### changes, packages added will need to be reflected in that
### list of wildcard expressions, as well.
###
CORE_PKGS = \
    java.applet \
    java.awt \
    java.awt.color \
    java.awt.datatransfer \
    java.awt.dnd \
    java.awt.event \
    java.awt.font \
    java.awt.geom \
    java.awt.im \
    java.awt.im.spi \
    java.awt.image \
    java.awt.image.renderable \
    java.awt.print \
    java.beans \
    java.beans.beancontext \
    java.io \
    java.lang \
    java.lang.annotation \
    java.lang.instrument \
    java.lang.invoke \
    java.lang.management \
    java.lang.ref \
    java.lang.reflect \
    java.math \
    java.net \
    java.nio \
    java.nio.channels \
    java.nio.channels.spi \
    java.nio.charset \
    java.nio.charset.spi \
    java.nio.file \
    java.nio.file.attribute \
    java.nio.file.spi \
    java.rmi \
    java.rmi.activation \
    java.rmi.dgc \
    java.rmi.registry \
    java.rmi.server \
    java.security \
    java.security.acl \
    java.security.cert \
    java.security.interfaces \
    java.security.spec \
    java.sql \
    java.text \
    java.text.spi \
    java.time \
    java.time.chrono \
    java.time.format \
    java.time.temporal \
    java.time.zone \
    java.util \
    java.util.concurrent \
    java.util.concurrent.atomic \
    java.util.concurrent.locks \
    java.util.function \
    java.util.jar \
    java.util.logging \
    java.util.prefs \
    java.util.regex \
    java.util.spi \
    java.util.stream \
    java.util.zip \
    javax.accessibility \
    javax.activation \
    javax.activity \
    javax.annotation \
    javax.annotation.processing \
    javax.crypto \
    javax.crypto.interfaces \
    javax.crypto.spec \
    javax.imageio \
    javax.imageio.event \
    javax.imageio.metadata \
    javax.imageio.plugins.jpeg \
    javax.imageio.plugins.bmp \
    javax.imageio.spi \
    javax.imageio.stream \
    javax.jws \
    javax.jws.soap \
    javax.lang.model \
    javax.lang.model.element \
    javax.lang.model.type \
    javax.lang.model.util \
    javax.management \
    javax.management.loading \
    javax.management.monitor \
    javax.management.relation \
    javax.management.openmbean \
    javax.management.timer \
    javax.management.modelmbean \
    javax.management.remote \
    javax.management.remote.rmi \
    javax.naming \
    javax.naming.directory \
    javax.naming.event \
    javax.naming.ldap \
    javax.naming.spi \
    javax.net \
    javax.net.ssl \
    javax.print \
    javax.print.attribute \
    javax.print.attribute.standard \
    javax.print.event \
    javax.rmi \
    javax.rmi.CORBA \
    javax.rmi.ssl \
    javax.script \
    javax.security.auth \
    javax.security.auth.callback \
    javax.security.auth.kerberos \
    javax.security.auth.login \
    javax.security.auth.spi \
    javax.security.auth.x500 \
    javax.security.cert \
    javax.security.sasl \
    javax.sound.sampled \
    javax.sound.sampled.spi \
    javax.sound.midi \
    javax.sound.midi.spi \
    javax.sql \
    javax.sql.rowset \
    javax.sql.rowset.serial \
    javax.sql.rowset.spi \
    javax.swing \
    javax.swing.border \
    javax.swing.colorchooser \
    javax.swing.filechooser \
    javax.swing.event \
    javax.swing.table \
    javax.swing.text \
    javax.swing.text.html \
    javax.swing.text.html.parser \
    javax.swing.text.rtf \
    javax.swing.tree \
    javax.swing.undo \
    javax.swing.plaf \
    javax.swing.plaf.basic \
    javax.swing.plaf.metal \
    javax.swing.plaf.multi \
    javax.swing.plaf.nimbus \
    javax.swing.plaf.synth \
    javax.tools \
    javax.tools.annotation \
    javax.transaction \
    javax.transaction.xa \
    javax.xml.parsers \
    javax.xml.bind \
    javax.xml.bind.annotation \
    javax.xml.bind.annotation.adapters \
    javax.xml.bind.attachment \
    javax.xml.bind.helpers \
    javax.xml.bind.util \
    javax.xml.soap \
    javax.xml.ws \
    javax.xml.ws.handler \
    javax.xml.ws.handler.soap \
    javax.xml.ws.http \
    javax.xml.ws.soap \
    javax.xml.ws.spi \
    javax.xml.ws.spi.http \
    javax.xml.ws.wsaddressing \
    javax.xml.transform \
    javax.xml.transform.sax \
    javax.xml.transform.dom \
    javax.xml.transform.stax \
    javax.xml.transform.stream \
    javax.xml \
    javax.xml.crypto \
    javax.xml.crypto.dom \
    javax.xml.crypto.dsig \
    javax.xml.crypto.dsig.dom \
    javax.xml.crypto.dsig.keyinfo \
    javax.xml.crypto.dsig.spec \
    javax.xml.datatype \
    javax.xml.validation \
    javax.xml.namespace \
    javax.xml.xpath \
    javax.xml.stream \
    javax.xml.stream.events \
    javax.xml.stream.util \
    org.ietf.jgss \
    org.omg.CORBA \
    org.omg.CORBA.DynAnyPackage \
    org.omg.CORBA.ORBPackage \
    org.omg.CORBA.TypeCodePackage \
    org.omg.stub.java.rmi \
    org.omg.CORBA.portable \
    org.omg.CORBA_2_3 \
    org.omg.CORBA_2_3.portable \
    org.omg.CosNaming \
    org.omg.CosNaming.NamingContextExtPackage \
    org.omg.CosNaming.NamingContextPackage \
    org.omg.SendingContext \
    org.omg.PortableServer \
    org.omg.PortableServer.CurrentPackage \
    org.omg.PortableServer.POAPackage \
    org.omg.PortableServer.POAManagerPackage \
    org.omg.PortableServer.ServantLocatorPackage \
    org.omg.PortableServer.portable \
    org.omg.PortableInterceptor \
    org.omg.PortableInterceptor.ORBInitInfoPackage \
    org.omg.Messaging \
    org.omg.IOP \
    org.omg.IOP.CodecFactoryPackage \
    org.omg.IOP.CodecPackage \
    org.omg.Dynamic \
    org.omg.DynamicAny \
    org.omg.DynamicAny.DynAnyPackage \
    org.omg.DynamicAny.DynAnyFactoryPackage \
    org.w3c.dom \
    org.w3c.dom.events \
    org.w3c.dom.bootstrap \
    org.w3c.dom.ls \
    org.w3c.dom.views \
    org.xml.sax \
    org.xml.sax.ext \
    org.xml.sax.helpers
