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 */