Ich möchte die Binärkompatibilität zwischen 2 JARs überprüfen.
Nach den Vorschlägen in diesem Antwort Ich habe Jboss-Plaudertasche aber es kann nur fehlende Klassen finden.
Wie kann ich herausfinden, ob es fehlende Methoden gibt? Ist das überhaupt möglich?
z.B.
"Hängt ab - von" Klasse Foo hängt von Bar ab (wie viele andere Arbeitnehmer der Mittelschicht)
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
}
}
Klasse "Kompilierzeit"
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);
}
}
Stellen Sie sich nun eine alt Bar jar ersetzt allmählich die kompilierte Zeitleiste:
Klasse "Laufzeit"
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);
}
}
Gibt es eine Möglichkeit, die fehlende Methode zu identifizieren, ohne sie auszuführen und eine NoSuchMethodError
?
Haftungsausschluss : Dies ist eine wesentliche Umformulierung meiner eigenen zugehörige Frage die nicht gelöscht werden kann. Ich habe mich dafür entschieden, eine neue Frage zu stellen, weil die Umformulierung die bisherigen 2 Antworten als völlig themenfremd erscheinen lassen wird.