Me gustaría poder comparar dos versiones de una clase/biblioteca para determinar si ha habido algún cambio que pueda romper el código que lo llama. Por ejemplo considerar algunas Foo clase que tiene un método en la versión A:Herramienta para buscar incompatabilities en las firmas/campos de métodos
public String readWidget(Object widget, Object helper);
y en la versión B el método se convierte en:
public String readWidget(Object widget); //removed unnecessary helper object
o algo similar en el caso de un campo:
version a: public static Object sharedFoo;
version b: static Object sharedFoo; //moved to package private for version b
Me gustaría tener una herramienta que marque estos cambios como posibles incompatibilidades (pero idealmente no al revés, es decir, aumentando la visibilidad de un método). Ahora sé que puedo hacerlo a través de reflexiones o analizando el resultado de javap, sin embargo, parece que debería haber una herramienta existente (preferiblemente no comercial). Así que quería ver si alguien puede recomendar algo antes de cometer el error de rodar el mío/reinventar la rueda innecesariamente.
No estoy seguro de que esto sea exactamente lo que estoy buscando, pero está bastante cerca. También he estado mirando japitools. –