8026984: Clarity intended use of jdk.Exported

Mon, 21 Oct 2013 15:37:11 -0700

author
darcy
date
Mon, 21 Oct 2013 15:37:11 -0700
changeset 2153
b82982ac3ca2
parent 2152
9f876bd43f55
child 2154
ac839d6f4953

8026984: Clarity intended use of jdk.Exported
Reviewed-by: psandoz, mr, alanb

src/share/classes/jdk/Exported.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/jdk/Exported.java	Mon Oct 21 15:55:02 2013 +0100
     1.2 +++ b/src/share/classes/jdk/Exported.java	Mon Oct 21 15:37:11 2013 -0700
     1.3 @@ -38,7 +38,30 @@
     1.4    * com.sun.*} are official parts of the JDK meant to be generally
     1.5    * usable while other portions of {@code com.sun.*} are not.  This
     1.6    * annotation type allows those portions to be easily and
     1.7 -  * programmaticly distinguished.
     1.8 +  * programmatically distinguished.
     1.9 +  *
    1.10 +  * <p>If in one release a type or package is
    1.11 +  * <code>@Exported(true)</code>, in a subsequent major release such a
    1.12 +  * type or package can transition to <code>@Exported(false)</code>.
    1.13 +  *
    1.14 +  * <p>If a type or package is <code>@Exported(false)</code> in a
    1.15 +  * release, it may be removed in a subsequent major release.
    1.16 +  *
    1.17 +  * <p>If a top-level type has an <code>@Exported</code> annotation,
    1.18 +  * any nested member types with the top-level type should have an
    1.19 +  * <code>@Exported</code> annotation with the same value.
    1.20 +  *
    1.21 +  * (In exceptional cases, if a nested type is going to be removed
    1.22 +  * before its enclosing type, the nested type's could be
    1.23 +  * <code>@Exported(false)</code> while its enclosing type was
    1.24 +  * <code>@Exported(true)</code>.)
    1.25 +  *
    1.26 +  * Likewise, if a package has an <code>@Exported</code> annotation,
    1.27 +  * top-level types within that package should also have an
    1.28 +  * <code>@Exported</code> annotation.
    1.29 +  *
    1.30 +  * Sometimes a top-level type may have a different
    1.31 +  * <code>@Exported</code> value than its package.
    1.32    *
    1.33    * @since 1.8
    1.34    */

mercurial