Javadoc running on the Java 2 SDK is not currently fully automated.
The one manual step is the creation of the Serialized Form page,
which is extremely complex and takes me about three full days
for each release. Josh and I have determined that we can fully
automate this with the addition of the "include" and "exclude"
arguments to the @serial tag. The reasons behind these special
cases are varied and complicated. Setting up a policy like this
for the Standard Edition would allow J2EE and J2ME to follow suit
with their Serialized Form pages.
This is two parts:
1) Add "@serial include" and "@serial exclude" tags to doc comments
as appropriate
2) Modify the standard doclet to include/exclude the classes
Here is the first part:
Add this tag in the doc comments of the following private classes:
/**
* @serial include
*/
Class java.util.Arrays.ArrayList
Class java.util.Collections.ReverseComparator
Class java.util.Collections.SynchronizedCollection
Class java.util.Collections.SynchronizedList
Class java.util.Collections.SynchronizedMap
Class java.util.Collections.SynchronizedSet
Class java.util.Collections.SynchronizedSortedMap
Class java.util.Collections.SynchronizedSortedSet
Class java.util.Collections.UnmodifiableCollection
Class java.util.Collections.UnmodifiableList
Class java.util.Collections.UnmodifiableMap
Class java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet
Class java.util.Collections.UnmodifiableSet
Class java.util.Collections.UnmodifiableSortedMap
Class java.util.Collections.UnmodifiableSortedSet
Class java.util.PropertyPermissionCollection
Class java.io.FilePermissionCollection
Class java.security.AllPermissionCollection
Class java.security.BasicPermissionCollection
Class java.security.PermissionsHash
Class java.security.UnresolvedPermissionCollection
Class java.net.SocketPermissionCollection
Class java.util.Collections.CopiesList
Class java.util.Collections.EmptyList
Class java.util.Collections.EmptySet
Class java.util.Collections.SingletonSet
And add this tag to the following public classes:
/**
* @serial exclude
*/
Package javax.swing
Class java.awt.datatransfer.MimeTypeParseException
Class java.security.AllPermission
Class java.security.BasicPermission
Class java.io.FilePermission
Class java.security.Permissions
Class java.util.PropertyPermission
Class java.net.SocketPermission
The above "exclude" list should also include all javax.swing subpackages:
(this was overlooked in the original request)
Package:
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
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
The one manual step is the creation of the Serialized Form page,
which is extremely complex and takes me about three full days
for each release. Josh and I have determined that we can fully
automate this with the addition of the "include" and "exclude"
arguments to the @serial tag. The reasons behind these special
cases are varied and complicated. Setting up a policy like this
for the Standard Edition would allow J2EE and J2ME to follow suit
with their Serialized Form pages.
This is two parts:
1) Add "@serial include" and "@serial exclude" tags to doc comments
as appropriate
2) Modify the standard doclet to include/exclude the classes
Here is the first part:
Add this tag in the doc comments of the following private classes:
/**
* @serial include
*/
Class java.util.Arrays.ArrayList
Class java.util.Collections.ReverseComparator
Class java.util.Collections.SynchronizedCollection
Class java.util.Collections.SynchronizedList
Class java.util.Collections.SynchronizedMap
Class java.util.Collections.SynchronizedSet
Class java.util.Collections.SynchronizedSortedMap
Class java.util.Collections.SynchronizedSortedSet
Class java.util.Collections.UnmodifiableCollection
Class java.util.Collections.UnmodifiableList
Class java.util.Collections.UnmodifiableMap
Class java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet
Class java.util.Collections.UnmodifiableSet
Class java.util.Collections.UnmodifiableSortedMap
Class java.util.Collections.UnmodifiableSortedSet
Class java.util.PropertyPermissionCollection
Class java.io.FilePermissionCollection
Class java.security.AllPermissionCollection
Class java.security.BasicPermissionCollection
Class java.security.PermissionsHash
Class java.security.UnresolvedPermissionCollection
Class java.net.SocketPermissionCollection
Class java.util.Collections.CopiesList
Class java.util.Collections.EmptyList
Class java.util.Collections.EmptySet
Class java.util.Collections.SingletonSet
And add this tag to the following public classes:
/**
* @serial exclude
*/
Package javax.swing
Class java.awt.datatransfer.MimeTypeParseException
Class java.security.AllPermission
Class java.security.BasicPermission
Class java.io.FilePermission
Class java.security.Permissions
Class java.util.PropertyPermission
Class java.net.SocketPermission
The above "exclude" list should also include all javax.swing subpackages:
(this was overlooked in the original request)
Package:
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
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