Reflections-Bibliothek funktioniert nicht, wenn in einer Eclipse-plug-in

Habe ich eine Anwendung entwickelt, mit der Reflexionen Bibliothek für das Abfragen von allen Klassen mit einer bestimmten annotation. Alles arbeitete wie ein Charme, bis ich mich dazu entschloss, ein Eclipse-plug-in aus meiner Anwendung. Dann Reflexionen aufhören zu arbeiten.

Gegeben, dass mein Antrag ist in Ordnung, wenn Sie nicht Teil eines Eclipse-plug-in, ich denke, es sollte eine class-loader-problem.
So habe ich Hinzugefügt, um meine Reflections Klasse den classloadern der plug-in-activator-Klasse, die context-class-loader und alle anderen class loader könnte ich mir vorstellen, ohne Erfolg. Dies ist eine vereinfachte version von meinem code:

ConfigurationBuilder config = new ConfigurationBuilder();
config.addClassLoaders(thePluginActivatorClassLoader);
config.addClassLoaders(ClasspathHelper.getContextClassLoader());
config.addClassLoaders("all the classloaders I could imagine");
config.filterInputsBy(new FilterBuilder().include("package I want to analyze"));

Reflections reflections = new Reflections(config);
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(MyAnnotation.class); //this Set is empty

Ich habe auch versucht, das hinzufügen von URLs, die von den Klassen, die ich laden will, um die ConfigurationBuilder Klasse, aber es hat nicht geholfen.

Könnte mir jemand sagen, ob es einen Weg gibt, um Reflections Arbeit als Teil eines Eclipse-plug-in ?, oder sollte ich besser suchen Sie eine andere alternative ?. Vielen Dank, ich bin wirklich verwundert darüber.

InformationsquelleAutor Sergio | 2011-12-01
Schreibe einen Kommentar