Я хотел бы иметь возможность сравнить две версии класса / библиотеки, чтобы определить, были ли какие-либо изменения, которые могут нарушить код, вызывающий его. Например, рассмотрим некоторый класс Foo, у которого есть метод в версии a:
public String readWidget(Object widget, Object helper);
, а в версии b метод становится:
public String readWidget(Object widget); //removed unnecessary helper object
или что-то подобное в случае поля:
version a: public static Object sharedFoo;
version b: static Object sharedFoo; //moved to package private for version b
Мне нужен инструмент, который будет отмечать эти изменяется как потенциальная несовместимость (но в идеале не наоборот, т. е. увеличивает видимость метода). Теперь я знаю, что могу сделать это с помощью отражений или анализа вывода javap, однако, похоже, должен быть существующий инструмент (желательно некоммерческий). Так что я хотел посмотреть, может ли кто-нибудь что-то порекомендовать, прежде чем я совершу ошибку, катаясь самостоятельно / изобретая колесо без надобности.