2012-08-11 16 views
7

Come si trova il pacchetto che esporta un pacchetto?Trova il bundle OSGI che esporta un pacchetto?

Sto usando felix e ho una stringa come "com.test", come faccio a sapere quale pacchetto esporta quel pacchetto?

Non voglio utilizzare PackageAdmin poiché è stato deprecato e non desidero veramente ottenere l'intestazione del pacchetto di esportazione per ogni pacchetto e analizzarlo.

Qualche idea?

risposta

11

Sembra che tu voglia farlo a livello di codice, non nella shell Gogo ... almeno assumerò quello dalla formulazione della tua domanda.

Non esiste un modo reale per dire "quale pacchetto" esporta un dato pacchetto poiché ci possono essere molti pacchetti che esportano un determinato pacchetto e quel pacchetto può essere utilizzato da molti pacchetti per molti pacchetti. Se si dispone di un pacchetto specifico e si desidera sapere quale pacchetto fornisce il pacchetto com.test, è possibile ottenere il cablaggio del pacchetto di importazione Bundle.adapt(BundleWiring.class) e quindi utilizzare BundleWiring.getRequiredWires() per ottenere i provider di tutte le dipendenze del pacchetto.

Da lì è solo bisogno di trovare il filo di osgi.wiring.package spazio dei nomi per il pacchetto desiderato, quindi il fornitore di quel filo sarà una BundleCapability di una BundleRevision del fascio che ti interessa.

+0

Questo è fondamentalmente quello che stavo cercando. È un peccato che devo passare attraverso tutti i pacchetti e controllare questo però. Speravo in un metodo sul framework che dicesse, ecco un pacchetto, che bundle lo soddisfa? Dato che questo è ciò che il framework sta facendo dietro le quinte quando deve risolvere comunque le dipendenze. Ma comunque, grazie per la risposta. – Boomah

2

Hai provato: esportazioni | grep com.test?

+0

dispiace, avrei dovuto dire che volevo fare questo programmazione – Boomah

3

versioni recenti di la console OSGA di Apache Felix include un plugin "finder finder" che elenca i bundle che esportano un determinato pacchetto o classe. Ci sono alcuni screenshot su http://www.6dlabs.com/blog/dklco/2012-05-04/new-cq-55-dependency-finder (che citano CQ5 ma il plugin non dipende da questo).

che è utile a livello di amministrazione, e se avete bisogno di scoprire che nel codice che potrebbe avere uno sguardo al codice sorgente che del plugin, vedere https://issues.apache.org/jira/browse/FELIX-3045

Problemi correlati