API Errors and Warnings Preferences

The following preferences can be set using the Opens the Console preference page 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:

  1. Usage Problems - restricted code is being called by unauthorized plug-ins.
  2. Binary Incompatibilities - changes between versions are not binary compatible.
  3. Version Problems - plug-in versions or code versions (@since tags) not correct.

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

API Use

API Usage option preference page

General

Option

Description

Default

Unsupported Use of API Javadoc Tags

When enabled the API analysis builder will check for API Javadoc tags used incorrectly.

Ignore

Restrictions

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

Leaks

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

API Compatibility

API Compatibility option preference page

Bundle

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 changes 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

Annotation

Option

Description

Default

A field (annotation not tagged as '@noimplement') has been added

When enabled the API analysis builder will check if any fields have been added to API annotations that have not been tagged as @noimplement.

Error

A method (annotation not tagged as '@noimplement') has been added

When enabled the API analysis builder will check if any methods have been added to API annotations that have not been tagged as @noimplement.

Error

A type member (annotation not tagged as '@noimplement') has been added

When enabled the API analysis builder will check if any member types have been added to API annotations that have not been tagged as @noimplement.

Error

A class bound has been added

When enabled the API analysis builder will check if a new class bound has been added to any API annotation.

Error

An interface bound has been added

When enabled the API analysis builder will check if a new interface bound has been added to any API annotation.

Error

The interface bounds have been added

When enabled the API analysis builder will check if interface bounds have been added to any API annotation where there currently were none.

Error

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

A type parameter has been added

When enabled the API analysis builder will check if type parameters have been added to any API annotations.

Error

A class bound has been modified

When enabled the API analysis builder will check if class bounds have been changed in any API annotations.

Error

An interface bound has been changed

When enabled the API analysis builder will check if interface bounds have been changed on any API annotations.

Error

The interface bounds have been modified

When enabled the API analysis builder will check if all of the interface bounds have been changed on any API annotations.

Error

Converted to a class type

When enabled the API analysis builder will check if any API annotations have been converted to classes.

Error

Converted to an enum type

When enabled the API analysis builder will check if and API annotations have been converted to enums.

Error

Converted to an interface type

When enabled the API analysis builder will check if any PI annotations have been converted to interfaces.

Error

The superinterfaces hierarchy has been reduced

When enabled the API analysis builder will check if any parent interfaces have been removed.

Error

The restrictions have been modified

When enabled the API analysis builder will check if the API restrictions have been changed (e.g. adding an @noimplement when there was not one before).

Error

A type parameter has been removed

When enabled the API analysis builder will check if any type parameters have been removed from API annotations.

Error

The type parameters have been removed

When enabled the API analysis builder will check if all of the type parameters have been removed from any API annotations.

Error

A class bound has been removed

When enabled the API analysis builder will check if a class bound has been removed from any API annotations.

Error

An interface bounds has been removed

When enabled the API analysis builder will check if an interface bound has been removed from any API annotations.

Error

The interface bounds have been removed

When enabled the API analysis builder will check if all of the interface bounds have been removed for any API annotations.

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 with a default value has been removed

When enabled the API analysis builder will check if any public methods with default values have been removed from any API annotations.

Error

A method without a default value has been removed

When enabled the API analysis builder will check if any public methods without default values have been removed from any API annotations.

Error

The annotation default value has been removed

When enabled the API analysis builder will check if the default value has been removed for any public annotation methods in any API annotations.

Error

Interface

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

A type member (interface not tagged as '@noimplement') has been added

When enabled the API analysis builder will check if any member types have been added to any API interfaces.

Error

A class bound has been added

When enabled the API analysis builder will check if a class bound has been added to any API interfaces.

Error

An interface bound has been added

When enabled the API analysis builder will check if any interface bounds have been added to any API interfaces.

Error

The interface bounds have been removed

When enabled the API analysis builder will check if all of the interface bounds have been removed from 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

A class bound has been modified

When enabled the API analysis builder will check if any class bounds have been changed for an API interfaces.

Error

An interface bound has been modified

When enabled the API analysis builder will check if any interface bounds have been changed on any API interfaces.

Error

The interface bound have been modified

When enabled the API analysis builder will check if all of the interface bounds have been changed on any API interfaces.

Error

Converted to a class type

When enabled the API analysis builder will check if any API interfaces have been changed to classes.

Error

Converted to an enum type

When enabled the API analysis builder will check if any API interfaces have been changed to enums.

Error

Converted to annotation type

When enabled the API analysis builder will check if any API interfaces have been changed to annotations.

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

The restrictions have been modified

When enabled the API analysis builder will check if the API restrictions have changed 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

The type parameters have been removed

When enabled the API analysis builder will check if all of the type parameters have been removed from any API interfaces.

Error

A class bound has been removed

When enabled the API analysis builder will check if any class bound have been removed from any API interfaces.

Error

An interface bound has been removed

When enabled the API analysis builder will check if any interface bounds have been removed from any API interfaces.

Error

The interface bounds have been removed

When enabled the API analysis builder will check if all of the interface bounds 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 type member has been removed

When enabled the API analysis builder will check if nay member types have been removed from any API interfaces.

Error

Enum

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 an annotation type

When enabled the API analysis builder will check if any API enums have been changed to annotations.

Error

Converted to a class type.

When enabled the API analysis builder will check if any API enums have been changed to classes.

Error

Converted to an interface type

When enabled the API analysis builder will check if any enums have been changed to interfaces.

Error

The restrictions have been modified

When enabled the API analysis builder will check if the API restrictions have been changed on any API enums.

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 type member has been removed

When enabled the API analysis builder will check if any member types have been removed from any API enums.

Error

Class

Option

Description

Default

A method (class not tagged as '@noextend') has been added

When enabled the API analysis builder will check if any public or protected methods have been added to any API types that have not been tagged @noextend.

Error

A parameter type has been added

When enabled the API analysis builder will check if any parameter types have been added to any API classes.

Error

A class bound has been added

When enabled the API analysis builder will check if a class bound has been added to any API classes.

Error

An interface bound has been added

When enabled the API analysis builder will check if any interface bounds have been added to any API classes.

Error

The interface bounds have been added

When enabled the API analysis builder will check if interface bounds have been added to any API classes that did not previously have interface bounds.

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 superclass hierarchy has been reduced

When enabled the API analysis builder will check if any parent classes have been removed from any API classes.

Error

The superclass has been modified

When enabled the API analysis builder will check if the superclass for any API classes has been changed.

Error

A class bound has been modified

When enabled the API analysis builder will check if any class bounds have been changed on any API classes.

Error

An interface bound has been changed

When enabled the API analysis builder will check if any interface bounds have been changed on 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 an annotation type

When enabled the API analysis builder will check if any API classes have been changed to annotation types.

Error

Converted to an enum type

When enabled the API analysis builder will check if any API classes have been changed into enum types.

Error

Converted to an interface type

When enabled the API analysis builder will check if any API classes have been changed into interface types.

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

The restrictions have been modified

When enabled the API analysis builder will check if the API restrictions have been changed for any API classes.

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

A type member has been removed

When enabled the API analysis builder will check if any type members 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

A class bound has been removed

When enabled the API analysis builder will check if any class bounds have been removed from any API classes.

Error

An interface bound has been removed

When enabled the API analysis builder will check if any interface bounds have been removed from any API classes.

Error

Field

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

The type arguments have bee removed

When enabled the API analysis builder will check if all of the type arguments have been removed from any public or protected fields in any API types.

Error

Method

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 a public or protected method from any API types.

Error

An interface bound has been added

When enabled the API analysis builder will check if an interface bound has been added to any public or protected methods for any API types.

Error

The interface bounds have been added

When enabled the API analysis builder will check if interface bounds have been added to any public or protected methods for any API types.

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

A class bound has been modified

When enabled the API analysis builder will check if a class bound has been changed for any public or protected method for any API types.

Error

An interface bound has been modified

When enabled the API analysis builder will check if an interface bound has been modified for any public or protected methods for any API types.

Error

A type parameter has been modified

When enabled the API analysis builder will check if a type parameter has been modified for 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 type parameters have been removed

When enabled the API analysis builder will check if all of the type parameters have been removed from any public or protected methods for 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 or protected methods for any API types.

Error

A class bound has been removed

When enabled the API analysis builder will check if a class bound has been removed from any public or protected methods for any API types.

Error

An interface bound has been removed

When enabled the API analysis builder will check if an interface bound has been removed from any public or protected methods for any API types.

Error

The interface bounds have been removed

When enabled the API analysis builder will check if all of the interface bounds have been removed from any public or protected methods for any API types.

Error

Constructor

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 public constructors of any API types.

Error

An interface bound has been added

When enabled the API analysis builder will check if an interface bound has been added to any public constructors of any API types.

Error

The interface bounds have been added

When enabled the API analysis builder will check if interfaces bounds have been added to any public constructors for any API types.

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 constructors for any API types.

Error

A class bound has been modified

When enabled the API analysis builder will check if a class bound has been changed on any public constructors for any API types.

Error

An interface bound has been modified

When enabled the API analysis builder will check if an interface bounds has been changed on any public constructors for any API types.

Error

A type parameter has been modified

When enabled the API analysis builder will check if a type parameter has changed for 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

The type parameters have been removed

When enabled the API analysis builder will check if all of the type parameters have been removed from any public constructors for 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

A class bound has been removed

When enabled the API analysis builder will check if a class bound has been removed from any public constructors for any API types.

Error

An interface bound has been removed

When enabled the API analysis builder will check if an interface bound has been removed from any public constructors for any API types.

Error

The interface bounds have been removed

When enabled the API analysis builder will check if all of the interface bounds have been removed for any public constructors for any API type.

Error

Version Management

API Version Management option preference page

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

Ignore minor version increment without API changes

If reporting for incompatible version numbers is enabled, this option can be used to tell the API analysis builder to ignore minor version changes if there has not been an API change compared to the current API baseline.

On

Ignore major version increment without API changes

If reporting for incompatible version numbers is enabled, this option can be used to tell the API analysis builder to ignore major version changes if there has not been an API change compared to the current API baseline.

On


Related reference

API Errors and Warnings Property Page
API Baselines Preferences