sebastianb
Erfahrenes Mitglied
Hallo zusammen,
ich habe mal eine grundsätzliche Frage, wie man am besten folgendes Szenario bewerkstelligt.
Ich entwickle gerade ein JIRA-Plugin, welches der Integration zu SalesForce (Chatter) dient. Die Schnittstelle zu SalesForce ist ein gewöhnlicher SOAP-Webservice. Wer bereits schonmal mit der SalesForce-API gearbeitet hat, weiß, dass die WSDL aber immer automatisch/dynamisch erzeugt wird. Diese wiederrum wird durch ein kleines SalesForce-Progrämmchen gesparst und hinten raus kommt dann die fertige API als JAR.
Wenn ich nun mein JIRA-Plugin verteiben will, brauche ich also eine Möglichkeit die API-Jar dynamisch zu linken, bzw., dass der Kunde die Möglichkeit hat seine eigene einzubinden.
Da es sich hier also um ein fertig geschnürtes Paket von Salesforce handelt, kann ich nicht wie sonst einfach eine Abstrakte Oberklasse definieren und diese dann als Schnittstelle im Plugin verwenden. Als Alternative sehe ich also nur, dass ich im Plugin die Jar (zB aus einer Datenbank) lade und dann die jeweiligen Klassen manuell in den Classpath nachlade und dann weiter mit Reflection arbeite.
z.B.
Irgendwie scheint mir das aber recht böse
. Falls jemand also einen guten Tipp hat, wäre ich sehr dankbar! 
Sebastian
ich habe mal eine grundsätzliche Frage, wie man am besten folgendes Szenario bewerkstelligt.
Ich entwickle gerade ein JIRA-Plugin, welches der Integration zu SalesForce (Chatter) dient. Die Schnittstelle zu SalesForce ist ein gewöhnlicher SOAP-Webservice. Wer bereits schonmal mit der SalesForce-API gearbeitet hat, weiß, dass die WSDL aber immer automatisch/dynamisch erzeugt wird. Diese wiederrum wird durch ein kleines SalesForce-Progrämmchen gesparst und hinten raus kommt dann die fertige API als JAR.
Wenn ich nun mein JIRA-Plugin verteiben will, brauche ich also eine Möglichkeit die API-Jar dynamisch zu linken, bzw., dass der Kunde die Möglichkeit hat seine eigene einzubinden.
Da es sich hier also um ein fertig geschnürtes Paket von Salesforce handelt, kann ich nicht wie sonst einfach eine Abstrakte Oberklasse definieren und diese dann als Schnittstelle im Plugin verwenden. Als Alternative sehe ich also nur, dass ich im Plugin die Jar (zB aus einer Datenbank) lade und dann die jeweiligen Klassen manuell in den Classpath nachlade und dann weiter mit Reflection arbeite.
z.B.
Java:
// Jar laden...
Class cl = Class.forName("Foo");
Object o = cl.getConstructor(Integer.TYPE, Integer.TYPE).newInstance(1,2);
Method m = cl.getMethod("add", Integer.TYPE, Integer.TYPE);
System.out.println(m.invoke(o, 5,10));
Irgendwie scheint mir das aber recht böse


Sebastian