API tooling will assist developers in API maintenance by reporting API defects such as binary incompatibilities, incorrect plug-in version numbers, missing or incorrect @since tags, and usage of non-API code between plug-ins. The tooling will be integrated in the Eclipse SDK and will be used in the automated build process. Specifically, the tooling is designed to do the following:
- Identify binary compatibility issues between two versions of a software component or product.
- Update version numbers for plug-ins (bundles) based on the Eclipse versioning scheme.
- Update @since tags for newly added classes, interfaces, methods, etc.
- Provide new javadoc tags and code assist to annotate types with special restrictions:
- @nosubclass - This class is not intended to be subclassed.
- @noinstantiate - This class is not intended to be instantiated.
- @noimplement - This interface is not intended to be implemented by clients.
- @noreference - This type is not intended to be referenced by clients.
- Leverage existing information (in MANIFEST.MF) to define the visibility of packages between bundles.
- Identify usage of non-API code between plug-ins.