JQual is a general framework for performing type qualifier inference
on Java programs. It allows the user to define a set of qualifiers,
annotate types in a program with those qualifiers and infer the
qualified types for all of the locations in the program. For example,
it can be used to track suspect tainted values through a program and
check that they are not used in sensitive untainted locations.
Another application of JQual is to infer immutability properties
readonly and final in a Java program. JQual produces warnings for
locations that cannot be typed consistently with the given annotations
and lists the set of constraints, i.e. the inference path, used to
infer the inconsistency.
JQual operates on source code and can analyze Java versions 1.4 and
earlier. It does not provide sound analysis of native calls or calls
to classes for which source code is not available, although it
is possible to create annotated stub versions of such code and include
it in the analysis. Calls made via reflection are also not handled
Type Qualifier Inference for Java David Greenfieldboyce and Jeffrey S. Foster
to appear OOPSLA 2007
Type Qualifiers for Java David Greenfieldboyce and Jeffrey S. Foster
Technical Report, August 2007
JQual is available as a plugin for Eclipse 3.2.
Download JQual: jqual_install.tar.gz
For installation instructions, uncompress the tar file and follow
the directions in README. A basic user's guide is included in the
distribution. JQual requires Eclipse 3.2, which is available here. JQual has been
tested under OS/X 10.4 and Linux.