36 * <em>outside</em> of the Java SE namespaces of {@code java.*} and |
36 * <em>outside</em> of the Java SE namespaces of {@code java.*} and |
37 * {@code javax.*} packages. For example, certain portions of {@code |
37 * {@code javax.*} packages. For example, certain portions of {@code |
38 * com.sun.*} are official parts of the JDK meant to be generally |
38 * com.sun.*} are official parts of the JDK meant to be generally |
39 * usable while other portions of {@code com.sun.*} are not. This |
39 * usable while other portions of {@code com.sun.*} are not. This |
40 * annotation type allows those portions to be easily and |
40 * annotation type allows those portions to be easily and |
41 * programmaticly distinguished. |
41 * programmatically distinguished. |
|
42 * |
|
43 * <p>If in one release a type or package is |
|
44 * <code>@Exported(true)</code>, in a subsequent major release such a |
|
45 * type or package can transition to <code>@Exported(false)</code>. |
|
46 * |
|
47 * <p>If a type or package is <code>@Exported(false)</code> in a |
|
48 * release, it may be removed in a subsequent major release. |
|
49 * |
|
50 * <p>If a top-level type has an <code>@Exported</code> annotation, |
|
51 * any nested member types with the top-level type should have an |
|
52 * <code>@Exported</code> annotation with the same value. |
|
53 * |
|
54 * (In exceptional cases, if a nested type is going to be removed |
|
55 * before its enclosing type, the nested type's could be |
|
56 * <code>@Exported(false)</code> while its enclosing type was |
|
57 * <code>@Exported(true)</code>.) |
|
58 * |
|
59 * Likewise, if a package has an <code>@Exported</code> annotation, |
|
60 * top-level types within that package should also have an |
|
61 * <code>@Exported</code> annotation. |
|
62 * |
|
63 * Sometimes a top-level type may have a different |
|
64 * <code>@Exported</code> value than its package. |
42 * |
65 * |
43 * @since 1.8 |
66 * @since 1.8 |
44 */ |
67 */ |
45 @Documented |
68 @Documented |
46 @Retention(RetentionPolicy.RUNTIME) |
69 @Retention(RetentionPolicy.RUNTIME) |