Parece que quieres hacer esto programáticamente, no en el shell de Gogo ... al menos lo asumiré por la redacción de tu pregunta.
No existe una manera real de decir "qué paquete" exporta un paquete determinado, ya que puede haber muchos paquetes que exportan un paquete dado y muchos paquetes pueden usar ese paquete en muchos paquetes. Si tiene un paquete específico y desea saber qué paquete le proporciona el paquete com.test
, puede obtener el cableado del paquete de importación Bundle.adapt(BundleWiring.class)
y luego usar BundleWiring.getRequiredWires()
para obtener los proveedores de todas las dependencias del paquete.
A partir de ahí sólo tiene que encontrar el hilo de osgi.wiring.package
espacio de nombres para el paquete que desea, entonces el proveedor de dicho alambre habrá un BundleCapability
de un BundleRevision
del paquete le interesa.
Esto es básicamente lo que estaba buscando. Es una pena que tenga que pasar por todos los paquetes y comprobar esto sin embargo. Esperaba un método en el marco que diga, aquí hay un paquete, ¿qué paquete lo satisface? Dado que esto es lo que el marco está haciendo detrás de escena cuando tiene que resolver dependencias de todos modos. Pero de todos modos, gracias por la respuesta. – Boomah