# HG changeset patch # User darcy # Date 1382395031 25200 # Node ID b82982ac3ca228a8dc78c3998fec2cf56524c9ea # Parent 9f876bd43f5553e1441dee15d94e845efe7757a1 8026984: Clarity intended use of jdk.Exported Reviewed-by: psandoz, mr, alanb diff -r 9f876bd43f55 -r b82982ac3ca2 src/share/classes/jdk/Exported.java --- a/src/share/classes/jdk/Exported.java Mon Oct 21 15:55:02 2013 +0100 +++ b/src/share/classes/jdk/Exported.java Mon Oct 21 15:37:11 2013 -0700 @@ -38,7 +38,30 @@ * com.sun.*} are official parts of the JDK meant to be generally * usable while other portions of {@code com.sun.*} are not. This * annotation type allows those portions to be easily and - * programmaticly distinguished. + * programmatically distinguished. + * + *

If in one release a type or package is + * @Exported(true), in a subsequent major release such a + * type or package can transition to @Exported(false). + * + *

If a type or package is @Exported(false) in a + * release, it may be removed in a subsequent major release. + * + *

If a top-level type has an @Exported annotation, + * any nested member types with the top-level type should have an + * @Exported annotation with the same value. + * + * (In exceptional cases, if a nested type is going to be removed + * before its enclosing type, the nested type's could be + * @Exported(false) while its enclosing type was + * @Exported(true).) + * + * Likewise, if a package has an @Exported annotation, + * top-level types within that package should also have an + * @Exported annotation. + * + * Sometimes a top-level type may have a different + * @Exported value than its package. * * @since 1.8 */