What tools are out there to audit changes to Java interfaces?
java
Solution
Clirr is a tool that checks Java libraries for binary and source compatibility with older releases.
Apache Commons use it, it creates reports like this (for Commons Lang).
Problem
Does anyone know of any tools out there which can summarize changes to Java interfaces between different versions? (By interface I mean the exposed functionality of types in general, not the specific language construct.) What I would like is some program which takes two versions of the same package or package tree and outputs something like: - Constructor (String, int) removed on class Thing - Constructor (String) deprecated on class OtherThing - Method void setId(String) added on class SomethingElse or something more sophisticated, the above is just my initial thoughts. A solution could work on bytecode or on source, I don't mind.