Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4288648

Add @serial include and exclude tags to Java 2 SDK to automate Serialized Form

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.3.0
    • 1.2.0
    • tools
    • kestrel
    • sparc
    • solaris_2.6

      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

            dkramersunw Douglas Kramer (Inactive)
            dkramersunw Douglas Kramer (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: