The following preferences can be set using the Plug-in Development > API Errors/Warnings preference page.
API problems are created during project builds (auto and full builds), the tooling breaks down the types of problems reported into one of three categories:
You can also configure the problem severities on a per project basis as well,
by using the API Errors/Warnings property page for a project
Option |
Description |
Default |
---|---|---|
Unsupported use of API Javadoc Tags |
When enabled the API analysis builder will check for API Javadoc tags used incorrectly. |
Ignore |
Reference not defined in specified execution environment |
When enabled the API analysis builder will check for references to system libraries that might be illegal according to the execution environment specified for the bundle. |
Ignore |
Option |
Description |
Default |
---|---|---|
Implementing an interface marked as '@noimplement' |
When enabled the API analysis builder will check for illegal implementation of marked interfaces. |
Warning |
Extending a type marked '@noextend' |
When enabled the API analysis builder will check for classes that extend marked types. |
Warning |
Referencing a field or method marked '@noreference' |
When enabled the API analysis builder will check for field and method references to tagged members. |
Warning |
Instantiating a class tagged '@noinstantiate' |
When enabled the API analysis builder will check that tagged classes are not instantiated. |
Warning |
Overriding a method marked as '@nooverride' |
When enabled the API analysis builder will check that tagged methods in parent classes are not overridden in any child class either by extending (re-implement with a call to the overridden parent) or re-implementing (with no call to the overridden parent). |
Warning |
Option |
Description |
Default |
---|---|---|
Extends a non-API class |
When enabled the API analysis builder will check if any API classes extend non-API types. |
Warning |
Implements a non-API interface |
When enabled the API analysis builder will check if any API classes implement a non-API interface |
Warning |
Field with non-API type |
When enabled the API analysis builder will check if any API types have public or protected fields with non-API types. |
Warning |
Method with a non-API return type |
When enabled the API analysis builder will check if any API types have public or protected methods with non-API return types. |
Warning |
Method with non-API parameter type |
When enabled the API analysis builder will check if any API types have public or protected methods with non-API parameter types. |
Warning |
Option |
Description |
Default |
---|---|---|
Report API breakage even if authorized by major version increment |
When enabled the API analysis builder will report problems for API breakages even if the major version of the bundle has already been incremented. |
Disabled |
Option |
Description |
Default |
---|---|---|
An API type has become non-API |
When enabled the API analysis builder will check if any API types in the current bundle have been changed to non-API types. |
Error |
A type has been removed |
When enabled the API analysis builder will check if any API types have been removed from the API scope in the given bundle. |
Error |
An API re-exported type has become non-API |
When enabled the API analysis builder will check if any API re-exported types in the current bundle have been changed to non-API types. |
Error |
A re-exported type has been removed |
When enabled the API analysis builder will check if any API re-exported types have been removed from the API scope in the given bundle. |
Error |
Option |
Description |
Default |
---|---|---|
A method (that needs to be implemented) has been added: |
When enabled the API analysis builder will check if any public or protected methods that need to be implemented have been added to any API types. |
Error |
Restrictions have been added |
When enabled the API analysis builder will check if API restrictions have been added for any API classes. |
Error |
A type parameter has been added |
When enabled the API analysis builder will check if any type parameters have been added to any API classes. |
Error |
The superinterfaces hierarchy has been reduced |
When enabled the API analysis builder will check if any parent interfaces have been removed from any API classes. |
Error |
The keyword 'abstract' has been added |
When enabled the API analysis builder will check if the 'abstract' keyword has been added to any API classes. |
Error |
The keyword 'final' has been added |
When enabled the API analysis builder will check if the 'final' keyword has been added to any API classes. |
Error |
Converted to annotation, enum, or interface |
When enabled the API analysis builder will check if any API classes have been changed to annotations, enums, or interfaces. |
Error |
The visibility has been reduced |
When enabled the API analysis builder will check if any public API classes have been made private or default scope. |
Error |
A field has been removed |
When enabled the API analysis builder will check if any public or protected fields have been removed from any API classes. |
Error |
A method has been removed |
When enabled the API analysis builder will check if any public or protected methods have been removed from any API classes. |
Error |
A constructor has been removed |
When enabled the API analysis builder will check if any public or protected constructors have been removed from any API classes. |
Error |
The superclass hierarchy has been reduced |
When enabled the API analysis builder will check if any superclasses have been removed from the hierarchy. |
Error |
A member type has been removed |
When enabled the API analysis builder will check if any member types have been removed from any API classes. |
Error |
A type parameter has been removed |
When enabled the API analysis builder will check if any type parameters have been removed from any API classes. |
Error |
Option |
Description |
Default |
---|---|---|
A field (interface not tagged as '@noimplement') has been added |
When enabled the API analysis builder will check if any public fields have been added to any API interfaces. |
Error |
A method (interface not tagged as '@noimplement') has been added |
When enabled the API analysis builder will check if any public methods have been added to any API interfaces. |
Error |
Restrictions have been added |
When enabled the API analysis builder will check if API restrictions have added for any API interfaces. |
Error |
A type parameter has been added |
When enabled the API analysis builder will check if any type parameters have been added to any API interfaces. |
Error |
Converted to class, enum, or annotation |
When enabled the API analysis builder will check if any API interfaces have been changed to classes, enums, or interfaces. |
Error |
The superinterfaces hierarchy has been reduced |
When enabled the API analysis builder will check if any parent interfaces have been removed for any API interfaces. |
Error |
A type parameter has been removed |
When enabled the API analysis builder will check if any type parameters have been removed from any API interfaces. |
Error |
A field has been removed |
When enabled the API analysis builder will check if any public fields have been removed from any API interfaces. |
Error |
A method has been removed |
When enabled the API analysis builder will check if any public methods have been removed from any API interfaces. |
Error |
A member type has been removed |
When enabled the API analysis builder will check if nay member types have been removed from any API interfaces. |
Error |
Option |
Description |
Default |
---|---|---|
The superinterfaces hierarchy has been reduced |
When enabled the API analysis builder will check if any parent interfaces have been removed from any API enums. |
Error |
Converted to annotation, class, or interface |
When enabled the API analysis builder will check if any API enums have been changed to annotations, classes, or interfaces. |
Error |
A field has been removed |
When enabled the API analysis builder will check if any public fields have been removed from any API enums. |
Error |
An enum constant has been removed |
When enabled the API analysis builder will check if any enum constants have been removed from any API enums. |
Error |
A method has been removed |
When enabled the API analysis builder will check if any public methods have been removed from any API enums. |
Error |
A member type has been removed |
When enabled the API analysis builder will check if any member types have been removed from any API enums. |
Error |
Option |
Description |
Default |
---|---|---|
A method without a default value has been added |
When enabled the API analysis builder will check if a method without a default value has been added to API annotations. |
Error |
Converted to class, enum, or interface |
When enabled the API analysis builder will check if any API annotations have been converted to classes, enums or interfaces. |
Error |
A field has been removed |
When enabled the API analysis builder will check if any public fields have been removed from any API annotations. |
Error |
A method has been removed |
When enabled the API analysis builder will check if any public methods have been removed from any API annotations. |
Error |
A member type has been removed |
When enabled the API analysis builder will check if any public member types have been removed from any API annotations. |
Error |
Option |
Description |
Default |
---|---|---|
A constant value has been added |
When enabled the API analysis builder will check if a constant value has been added to any previously un-initialized public or protected field constants for any API types. |
Error |
The type has been modified |
When enabled the API analysis builder will check if the type of any public or protected fields has been changed for any API types. |
Error |
The constant value has been modified |
When enabled the API analysis builder will check if the value of any public or protected field constants has been changed in any API types. |
Error |
The visibility has been reduced |
When enabled the API analysis builder will check if any public or protected fields have been made private in any API types. |
Error |
The keyword 'final' has been removed for static constant |
When enabled the API analysis builder will check if any public or protected fields have had the final keyword removed in any API types. |
Error |
The keyword 'final' has been added |
When enabled the API analysis builder will check if the final keyword has been added to any public or protected fields in any API types. |
Error |
The keyword 'static' has been removed |
When enabled the API analysis builder will check if the static keyword has been removed from any public or protected fields in any API types. |
Error |
The keyword 'static' has been added |
When enabled the API analysis builder will check if the static keyword has been added to any public or protected fields in any API types. |
Error |
The constant value has been removed |
When enabled the API analysis builder will check if the value of a constant field has been removed for any public or protected field constants in any API types. |
Error |
A type argument has been removed |
When enabled the API analysis builder will check if a type argument has been removed from any public or protected fields in any API types. |
Error |
Option |
Description |
Default |
---|---|---|
The @nooverride restriction has been added |
When enabled the API analysis builder will check if the restrictions of any public or protected methods have been changed in any API types by adding the @nooverride tag. |
Error |
A type parameter has been added |
When enabled the API analysis builder will check if a type parameter has been added to any public or protected methods for any API types. |
Error |
Converted variable argument to array type |
When enabled the API analysis builder will check if a varargs argument has been expanded to an object array for any public or protected methods for any API types. |
Error |
The visibility has been reduced |
When enabled the API analysis builder will check if any public or protected methods have been made private for any API types. |
Error |
The keyword 'abstract' has been added |
When enabled the API analysis builder will check if any public or protected methods have been made abstract in any API types. |
Error |
The keyword 'static' has been added |
When enabled the API analysis builder will check if any public or protected methods have been made static in any API types. |
Error |
The keyword 'static' has been removed |
When enabled the API analysis builder will check if any public or protected methods have been made non-static in any API types. |
Error |
The keyword 'final' has been added (type tagged '@noextend') |
When enabled the API analysis builder will check if any public or protected methods have been made final in any API types that have been tagged @noextend. |
Error |
The annotation default value has been removed |
When enabled the API analysis builder will check if the default value associated with any API annotation method has been removed. |
Error |
A type parameter has been removed |
When enabled the API analysis builder will check if a type parameter has been removed from any public or protected methods for any API types. |
Error |
Option |
Description |
Default |
---|---|---|
A type parameter has been added |
When enabled the API analysis builder will check if a type parameter has been added to any public constructors for any API types. |
Error |
Converted variable argument to array type |
When enabled the API analysis builder will check if any varargs parameters have been expanded to object arrays for any public constructors for any API types. |
Error |
The visibility has been reduced |
When enabled the API analysis builder will check if any public constructors have been made non-public in any API types. |
Error |
A type parameter has been removed |
When enabled the API analysis builder will check if a type parameter has been removed from any public constructors for any API types. |
Error |
Option |
Description |
Default |
---|---|---|
A class bound has been added |
When enabled the API analysis builder will check if a class bound has been added to any type parameter of any API types. |
Error |
An interface bound has been added |
When enabled the API analysis builder will check if any interface bounds have been added to any type parameter of any API types. |
Error |
A class bound has been modified |
When enabled the API analysis builder will check if any class bounds have been changed on any type parameter of any API types. |
Error |
An interface bound has been modified |
When enabled the API analysis builder will check if any interface bounds have been changed on any type parameter of any API types. |
Error |
A class bound has been removed |
When enabled the API analysis builder will check if any class bounds have been removed from any type parameter of any API types. |
Error |
An interface bound has been removed |
When enabled the API analysis builder will check if any interface bounds have been removed from any type parameter of any API types. |
Error |
Option |
Description |
Default |
---|---|---|
Report missing '@since' tags |
When enabled the API analysis builder will check if @since tags are missing for types or members added since the version of the API baseline in use. |
Error |
Report malformed '@since' tags |
When enabled the API analysis builder will check if any @since tags currently in use are malformed (incorrect syntax). |
Error |
Report invalid '@since' tag version |
When enabled the API analysis builder will check if any @since tags currently in use have the wrong version. |
Error |
Report incompatible bundle version |
When enabled the API analysis builder will check if the bundle version for the plug-in is incorrect, based on any API changes and the current API baseline in use. |
Error |
Report unnecessary minor or micro version change |
When enabled the API analysis builder will check if the minor or micro version for the plug-in is incorrectly incremented. |
Warning |
Report major version change without API breakage |
When enabled the API analysis builder will check if the major version for the plug-in has changed without a breaking API change. |
Warning |
Report changed execution environment incompatibility |
When enabled the API analysis builder will check if the bundle version for the plug-in requires a minor version change because of the changed execution environment. |
Error |
Option |
Description |
Default |
---|---|---|
Bundle missing required constraint/prerequisite |
When enabled the API analysis builder will report any missing required constraint or prerequisite that prevents the builder from performing a complete analysis. Regardless of the value of this option the analysis is skipped for the corresponding bundle. |
Error |
Unused API problem filters |
When enabled the API analysis builder will report any API problem filters that are no longer being used. |
Warning |
Option |
Description |
Default |
---|---|---|
Unresolved type problem |
When enabled the API analysis builder will report any API types that have been removed that are included in any use scan listed on the API Use Scans prefrence page. |
Error |
Unresolved method problem |
When enabled the API analysis builder will report any methods that have been removed that are included in any use scan listed on the API Use Scans prefrence page. |
Error |
Unresolved field problem |
When enabled the API analysis builder will report any fields that have been removed that are included in any use scan listed on the API Use Scans prefrence page. |
Error |