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.
fonte
2012-08-12 03:45:34
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