# Klasse aus PLugin /Fragment anhand von String laden



## Miriam84 (22. Nov 2009)

Hallo,

ich habe ein Eclipse Plugin, welches meine Anwendung darstellt.

Zu diesem Plugin habe ich ein Fragment, in welchem in junit4 Klassen die Anwendung getestet wird.

Außerdem habe ich noch ein anderes Plugin, welches die Grundfunktionalität das Testens inkl. Utility-Klassen bereitstellt. In diesem Plugin befindet sich auch ein TestAdapter welcher von RunListener ableitet und mir den Testdurchlauf und Ergebnisse aufzeichnet um daraus ein PDF zu erstellen.

Das funktioniert auch alles soweit ganz gut. Mein Problem ist wie kann ich von einer Klasse des VaseTestplugins aus mittels reflection auf eine Testklasse aus dem Fragment mittels String zugreifen.

Oder anders wie kann ich auf eine Klasse aus einem derzeit geladenen Plugin /Fragment zugreifen, wenn ich den Package namenn und den Classnamen habe. Ich habe aber nicht den Namen des Plugins.

Geht das irgendwie?

Ich brauche das weil die Klasse eine Annotation besitzt welche den Testfall näher beschreibt und in eine Hierarchie ordnet.

Ich habe es mit 
	
	
	
	





```
Class.forName(testclassName)
```
 versucht, bekomme aber eine ClassNotFountException. testclassName enthält dabei den namen der Klasse inkl. Package.  Also z.b. de.aaa.test.testClass.


----------



## Wildcard (23. Nov 2009)

Es gibt zwei Möglichkeiten wie du in OSGi neue Abhängigkeiten definieren kannst: entweder per require bundle, oder import package. Einfach den Manifest Editor öffnen und bei imported packages eintragen (da du ja sagst das du den Bundle Namen nicht kennst).
Warum eigenlich über Reflection und nicht ganz normal zur Compile Zeit?


----------



## Miriam84 (23. Nov 2009)

Hallo,

die Klassen sind ja eigentlich auch schon geladen. brauche zur Laufzeit  nur eine Instanz davon um mir die Annotationen der Klasse geben zu lassen und bekomme aber nur einen String. Da ich verschiedene Testframente habe, weiß ich zur Laufzeit auch nicht, in welchem Fragment die Klasse liegt. Dachte es gibt sowas wie gebe mir die Klasse mit dem namen aus den geladenen bundels.


----------



## Wildcard (23. Nov 2009)

Das geht nicht, du musst in diesem Fall das entsprechende Package importieren, da alle OSGi Bundles isolierte Classloader haben. Package Importieren, dann kannst du auch per Reflection auf die Klasse zugreifen.


----------

