2009-03-26 6 views
0

J'écris une application qui utilise Equinox comme infrastructure OSGi. J'essaye de découvrir tous les paquets qui sont connus au moment où mon paquet est enregistré. J'ai essayé d'utiliser la ligne suivante pour récupérer tous les paquets disponibles. Toutefois,Obtention de l'ensemble [] dans Eclipse de tous les ensembles

EclipseStarter.getSystemBundleContext(). GetBundles();

me donne un avertissement de ...

accès Découragé: La méthode getSystemBundleContext() à partir du type EclipseStarter n'est pas accessible en raison de restrictions sur la bibliothèque requise D: \ java \ eclipse \ plugins \ org.eclipse. osgi_3.4.0.v20080605-1900.jar

Quelle est l'utilisation appropriée pour obtenir une liste de tous les ensembles disponibles dans le cadre?

Répondre

2

Vous pouvez utiliser votre propre contexte de paquet comme un point d'entrée au lieu de la EclipseStarter - dans votre activateur de plugin:

start(BundleContext context) 
{ 
    context.getBundles(); // what you want 
} 

Regardez les Plugin boîtes AbstractUIPlugin les classes si vous ne savez pas sur eux. Si vous avez vraiment besoin d'un accès singleton, votre plugin est probablement un - n'hésitez pas à exposer YourPlugin.getInstance().getBundleContext().

(Disclaimer: Je n'ai pas essayé - mais il serait compatible avec OSGi/Eclipse)

+0

Merci. Cela m'a amené dans la bonne direction. – Jerry

Questions connexes