8008662: Add @jdk.Supported to JDK-specific/supported API (original) (raw)

Joe Darcy joe.darcy at oracle.com
Fri Feb 22 19:19:48 UTC 2013


Hi Martin,

On 2/22/2013 6:06 AM, Martin Buchholz wrote:

On Thu, Feb 21, 2013 at 6:16 PM, Joe Darcy <joe.darcy at oracle.com_ _<mailto:joe.darcy at oracle.com>> wrote: However, the com.sun.* subpackages are a mix of APIs that are supported as described above as well as APIs that are not supported. I was under the impression that the general rule was that all of com.sun.* fell under the "jdk supported" umbrella, and the level of support was the distinction between sun.com.* and sun.* .

Alan has previously replied on the varied supported-ness found in com.sun.*.

In any case, it would be good if there was a single canonical place that documented the various levels of support with subtle distinctions, including java.* vs. javax.*, endorsed standards, com.sun.* vs. sun.* vs. jdk.*, and recommendations for where non-Oracle vendor extensions should go. Is the jdk.Supported annotation itself part of Java SE?

No, the jdk.Supported annotation type is part of the JDK (currently living in the langtools repo):

http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/56dfafbb9e1a/src/share/classes/jdk/Supported.java

As you can see, the jdk.Supported type itself has a @jdk.Supported annotation :-)

Should third-party vendor extensions that are "supported" for public use by the third-party use jdk.Supported?

No; as I envision it, the jdk.Supported annotation is only meant to convey supported-ness in the JDK of parts of the JDK.

What about the X's in hotspot flags and the java tools command line interfaces?

The policy around command line interfaces is unchanged; the interfaces are mostly stable, but the more X's are in a flags name, the less stable it can be.

-Joe



More information about the core-libs-dev mailing list