cowboyBebop
Grünschnabel
Hallo zusammen,
ich bin fast am Ende meiner Diplomarbeit und bin auch leider am Ende mit meinem Latein, deshalb brauche ich euere Hilfe.
Ich schreibe ein Plug-In für ein bestimmtes RCP-CASE-Tool.
Innerhalb des Tools können zur Laufzeit Metriken berechnet werden mit Hilfe von Java-Code. Der wird dann kompiliert und ausgeführt.
Die berechneten Outputwerte sind normalerweise standard-Typen wie Integer, Double und String usw. Damit ich die Outputwerte besser verwalten kann habe Ich in dieses Tool eine jar-Datei mit meinen eigenen Klassen eingebunden. Mit meinem Plug-In, das die selben Klassen aus der selben jar-Datei verwendet muss ich die Outputwerte auslesen.
Dabei ensteht das folgende Problem.
In meinem Plug-In kann ich das Outputobjekt, das scheinbar das selbe ist, nicht initialisieren, weil es im Tool von einem anderen Classloader geladen wurde.
Das einzige was ich weiss ist von welchem Classloader das Outputobjekt geladen wurde. Ich weiss leider nicht von welchem Plug-In aus. Es würde mir sowieso nichts nutzen, weil dieses Plug-In ein fester bestandteil des Tools isT und deshalb nicht geändert werden kann.
Also wie kann ich ein fremdes Objekt initialisieren nur mit dem Wissen, dass er von einem bestimmten Classloader geladen wurde?
Vllt kann ich in meinem Plug-In kurzzeitig den Classloader des Outputobjekts als ContextClassloader setzen und die Klasse zunächst von ihm laden lassen?
Gibt es irgendeine gemeinsame Schnittstelle? oder würde es vllt über RMI gehen oder sowas ähnliches?
Ich würde mich über anregende Tipps sehr freuen!
Vielen Dank im Voraus!
Gruß, Andreas
ich bin fast am Ende meiner Diplomarbeit und bin auch leider am Ende mit meinem Latein, deshalb brauche ich euere Hilfe.
Ich schreibe ein Plug-In für ein bestimmtes RCP-CASE-Tool.
Innerhalb des Tools können zur Laufzeit Metriken berechnet werden mit Hilfe von Java-Code. Der wird dann kompiliert und ausgeführt.
Die berechneten Outputwerte sind normalerweise standard-Typen wie Integer, Double und String usw. Damit ich die Outputwerte besser verwalten kann habe Ich in dieses Tool eine jar-Datei mit meinen eigenen Klassen eingebunden. Mit meinem Plug-In, das die selben Klassen aus der selben jar-Datei verwendet muss ich die Outputwerte auslesen.
Dabei ensteht das folgende Problem.
In meinem Plug-In kann ich das Outputobjekt, das scheinbar das selbe ist, nicht initialisieren, weil es im Tool von einem anderen Classloader geladen wurde.
Das einzige was ich weiss ist von welchem Classloader das Outputobjekt geladen wurde. Ich weiss leider nicht von welchem Plug-In aus. Es würde mir sowieso nichts nutzen, weil dieses Plug-In ein fester bestandteil des Tools isT und deshalb nicht geändert werden kann.
Also wie kann ich ein fremdes Objekt initialisieren nur mit dem Wissen, dass er von einem bestimmten Classloader geladen wurde?
Vllt kann ich in meinem Plug-In kurzzeitig den Classloader des Outputobjekts als ContextClassloader setzen und die Klasse zunächst von ihm laden lassen?
Gibt es irgendeine gemeinsame Schnittstelle? oder würde es vllt über RMI gehen oder sowas ähnliches?
Ich würde mich über anregende Tipps sehr freuen!
Vielen Dank im Voraus!
Gruß, Andreas
Zuletzt bearbeitet: