2010-11-11 4 views
5

Comment un ensemble Eclipse (par exemple, dans le code de l'activateur) peut-il trouver les instances de groupe dépendantes lors de l'exécution? Je voudrais trouver les paquets qu'Eclipse a choisis pour satisfaire les exigences de dépendance, je ne veux pas interpréter moi-même le manifeste. Exemple: Je voudrais trouver toutes les ressources nommées "marker.txt" dans tous les bundles dont dépend mon bundle actuel. Aussi les dépendances transitives. Pour ce faire, je dois être en mesure de trouver tous ces faisceaux pour commencer.Recherche des ensembles dépendants dans Eclipse au moment de l'exécution

Répondre

4

Il n'existe aucun moyen simple de déterminer la dépendance. Le meilleur moyen est de passer par l'interface PackageAdmin. Voir les spécifications OSGi pour PackageAdmin et getImportingBundles en particulier: http://www.osgi.org/javadoc/r4v42/org/osgi/service/packageadmin/ExportedPackage.html#getImportingBundles()

Vous devez déterminer pour tous les groupes installés, lequel exporte un ou plusieurs paquets que votre groupe est en train d'importer. Le moyen le plus simple d'y parvenir est d'appeler PackageAdmin.getExportedPackages (Bundle bundle) avec bundles = null. Cela retourne un tableau de tous les paquets exportés. Vous devez ensuite itérer de ce tableau et appeler ExportPackage.getImportingBundles().

0

Vous pouvez ouvrir une console OSGi et les commandes suivantes:

ss 

Pour la liste des paquets, y compris l'identifiant numérique

bundle <id> 

pour obtenir plus d'informations, y compris les dépendances.

Vous devriez aussi essayer

help 

pour obtenir plus de commandes

+1

Il veut le faire par programme. –

1

S'il vous plaît voir ma réponse à this question. 4.3 aura une nouvelle API de câblage de bundle qui permettra des choses comme ça.

Questions connexes