#
# Copyright 2001-2006 Sun Microsystems, Inc.  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.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.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.*                    \
  sunw.*                   \
  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.w3c.dom.views        \
  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.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.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.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.util                                      \
  java.util.concurrent                           \
  java.util.concurrent.atomic                    \
  java.util.concurrent.locks                     \
  java.util.jar                                  \
  java.util.logging                              \
  java.util.prefs                                \
  java.util.regex                                \
  java.util.spi                                  \
  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.synth                         \
  javax.tools                                    \
  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.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.xml.sax                                    \
  org.xml.sax.ext                                \
  org.xml.sax.helpers
