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.