API Guardian is a
Library that provides the
@APIannotation that is used to annotate public types, methods, constructors, and fields within a framework or application in order to publish their status and level of stability and to indicate how they are intended to be used by consumers of the API.
The heuristic used by bnd to determine which packages to export is as follows:
-export-apiguardian is required (i.e. opt-in is required). The value of the instruction is a package specification like most other bnd instructions. The minimal configuration is -export-apiguardian: * which instructs bnd to scan all classes in all packages with the plugin@API annotationstatus using the highest value of org.apiguardian.api.API.Status (in ordinal order) found on @API annotations in the packagemandatory:=status for any package whose highest value of org.apiguardian.api.API.Status found was INTERNAL . This implies that the package can only be imported by marking the import with the attribute status=INTERNALExport all packages annotated with @API using version 1.2.3:
-export-apiguardian: *;version="1.2.3"
Export only packages annotated with @API named com.acme.foo.* but not com.acme.foo.bar.*
-export-apiguardian:\
!com.acme.foo.bar.*,\
com.acme.foo.*