Chapter 1 Introduction 3
Mutual Source Compatibility Check
While binary compatibility is important, it cannot guarantee that an application in
binary form as a set of class files can be recompiled without error.
The signaturetest source compatibility check mode verifies that any application that
compiles without error with a compatible API, compiles without error with all other
source compatible APIs.
Mutual source compatibility is a stricter check than the mutual binary compatibility
and SigTesttool performs it by default.
Class and Class Member Attributes Checked
A Java platform API consists of classes, and interfaces, and their member fields,
methods, and constructors, and documented annotations. In turn, all of these API
itemscan have various attributessuch as names,modifiers, a list of parameters, a list
of interfaces, exceptions, nested classes, and so forth. A signature test checks that
certainmembers and attributes belonging to the API under test arethe same as those
defined by the API to which it is being compared. The signature test checks public
and protected API items only and ignores private and package-access items.
The tool checks the following attributes when comparing items in the API
implementation under test:
Classes and interfaces, including nested classes and interfaces:
Set of modifiers except strictfp
Name of the superclass
Names of all superinterfaces, direct plus indirect, where order is insignificant
Constructors:
Set of modifiers
List of argument types
In source compatibility mode only,the normalized list of thrown exceptions
where order is insignificant
Normalizing the throw lists involves removing all superfluous exception
classes. An exception class is superfluous if it is a subclass of either the
java.lang.RuntimeException class, the java.lang.Error class, or
another class from the same list.
Methods:
The set of modifiers, except strictfp,synchronized, and native
The return type
The list of argument types