Quiero verificar la compatibilidad binaria entre 2 JAR.Cómo identificar un método faltante (compatibilidad binaria) en un JAR estáticamente
Siguiendo las sugerencias en este answer utilicé jboss tattletale pero puede encontrar las clases que faltan.
¿Cómo puedo saber si faltan métodos? ¿Es posible?
E.g.
"Depende - en la" clase Foo depende de Bar (al igual que muchos otros trabajadores de la clase media)
import org.overlyusedclassnames.Bar
public class Foo{
public void someMethod(){
Bar tender = new Bar();
tender.getJohnnyRedLabel();
tender.getJohnnyBlueLabel(); //this method is new in the Bar class
}
}
"tiempo de compilación" clase
package org.overlyusedclassnames;
/**
* @Since 1992
* Changes: added blue and gold Johnny Walker labels
*/
public class Bar {
public Drink getJohnnyRedLabel(){
return new JohnyWalkerFactory.get(RedLabel.class);
}
public Drink getJohnnyBlackLabel(){
return new JohnyWalkerFactory.get(BlackLabel.class);
}
public Drink getJohnnyGoldLabel(){
return new JohnyWalkerFactory.get(GoldLabel.class);
}
public Drink getJohnnyBlueLabel(){
return new JohnyWalkerFactory.get(BlueLabel.class);
}
}
Ahora imaginemos una de edad La jarra de barras está reemplazando cada vez más la barra de tiempo compilada:
"tiempo de ejecución" clase
package org.overlyusedclassnames;
/**
* @Since 1909
* Changes: added red and black Johnny Walker labels
*/
public class Bar {
public Drink getJohnnyRedLabel(){
return new JohnyWalkerFactory.get(RedLabel.class);
}
public Drink getJohnnyBlackLabel(){
return new JohnyWalkerFactory.get(BlackLabel.class);
}
}
¿Hay una manera de identificar el método que falta sin ejecutarlo y conseguir un NoSuchMethodError
?
Negación: Se trata de una reformulación importante de mi propia related question, que es imborrable. Elegí hacer una nueva pregunta porque la reformulación hará que las 2 respuestas actuales no tengan ninguna relación con el tema.
se puede comentar sobre la otra cuestión que debe ser cerrado, y superusuarios puede cerrarla para que – Yoni
@Yoni - ya lo ha hecho –
"sin ejecutarlo" == "estática" (en el título de que se trate) – aponomarenko