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. API Incompatibilities - changes between versions are not compatible
  3. Version Problems - plug-in versions or code versions (@since tags) not correct
  4. Analysis Options - general options

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

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

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

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

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

Class

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

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

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

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

Annotation

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

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

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

Method

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

Constructor

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

Type Parameter

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

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

Analysis Options

Analysis options preference page

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

API Use Scans Options

API use scans options preference page

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


Related reference

PDE Preferences
API Errors and Warnings Property Page
API Baselines Preferences
API Use Scans Preferences