2Signature Test Tool 2.0 User’s Guide April 2008
When used in a software development environment, SigTesttool can be used to
track and control changes to an API throughout the development process.
What is Tested
The signature test algorithm compares the API implementation under test with a
signature file created fromthe API you are comparing it to — often referred to as a
reference implementation. The signature test checks for mutual binary or source
compatibility by verifying the equality of API member sets. By checking for equality
of API member sets, the test verifies that the following conditions are true:
If an API item is defined in the referencerepresentation of the API, then that item
is implemented in the API under test, and vice versa.
Attributes chosen for comparison are identical in both implementations of the
API. The tool chooses attributes for comparison according to the type of check
being processed. This is described more in the next section.

Mutual Binary Compatibility Check

The signature test binary compatibility check mode verifies that a Java technology
implementation undergoing compatibility testing and its referenced APIs are
mutually binary compatible as defined in Chapter 13, “Binary Compatibility,”of The
Java Language Specification. This assures that any application runs with any
compatible API without any linkage errors.
This check is less strict than the default sourcecompatibility check, described next. It
is for use primarily in the special case of when a technology is developed for Java
technology environments that are purely runtime.Such an environment does not
provide a Java technology-based compiler (Java compiler), nor does it include class
files that could be used to compile applications for that environment. Because of the
limited use of such an environment, the API requirements areslightly relaxed
compared to environments that support application development.
Java application environments can contain several Java technologies. Not all Java
technologies can be combined with each other,and in particular, their sets of API
signatures might be incompatible with each other.Relaxing signature checks to the
levelof mutual binary compatibility allows the developer to combine technologies in
a purely runtime environment that cannot be combined otherwise.