@Target(value={TYPE,FIELD,METHOD,CONSTRUCTOR}) @Retention(value=SOURCE) public @interface PublicApi
PublicApi
but not with ExtensionPoint
are not meant to be
subclassed in extensions. In this case, the annotation simply signifies that the interface is stable for callers.
In particular, since it is not meant to be subclassed, new non-default methods may be added to an interface and
new abstract methods may be added to a class.
If a class or interface is annotated, then all public and protected fields, methods, and constructors that class
or interface are considered stable in this sense. If a class is not annotated, but an individual field, method, or
constructor is annotated, then only that particular field, method, or constructor is considered a public API.
Classes, fields, method, and constructors _not_ annotated with @PublicApi
may be modified or removed
in any Druid release, unless they are annotated with ExtensionPoint
(which implies they are a public API
as well).ExtensionPoint
Copyright © 2011–2018. All rights reserved.