Kacheck/J is an encapsulation checker for Java. It infers which types are confined according to the definition given in Encapsulating Objects with Confined Types. Objects of confined type do not escape their enclosing package. Confined types allow you to increase the modularization of your code. Since objects of confined type to not escape their defining package, it is certain that no code outside of the package will directly depend on the interface or implementation of the confined type. Kacheck/J allows you to analyze your code for confinement and can print a list of statements that lead to confinement violations. Confined types are also interesting from a security perspective since they can guarantee that access to certain data-structures is only possible for code in the same package.
Release Notes: This release adds support for "@Confined" meta-data annotations. Such annotations can now be statically verified or automatically added to class files by Kacheck/J. Kacheck/J now requires and supports Java 5.0.
Release Notes: This release is mostly an update of the framework supporting Kacheck/J, resulting in simpler code. Some options were added.
Release Notes: The performance of the parser was improved by 30%. A minor bug in the processing of exception handlers was fixed. The start script in the RPM was fixed.
Release Notes: The dead-code elimination capability of the Java Access Modifier Inference Tool (JAMIT) can now be used by Kacheck/J. Various small bugs were fixed and the analysis was made more precise. The output of confinement violations was made more precise and verbose. In particular, it now contains the exact position and instruction at which the violation occured.