Wygląda na to, że chcesz to zrobić programowo, a nie na powłoce Gogo ... Przynajmniej przyjmuję to z tekstu twojego pytania.
Nie ma sposobu, aby powiedzieć "który pakiet" eksportuje dany pakiet, ponieważ może istnieć wiele pakietów eksportujących dowolny pakiet, a pakiet ten może być używany z wielu pakietów przez wiele pakietów. Jeśli masz konkretny pakiet i chcesz się dowiedzieć, który pakiet udostępnia mu pakiet com.test
, możesz pobrać wiązkę pakietu importującego Bundle.adapt(BundleWiring.class)
, a następnie użyć BundleWiring.getRequiredWires()
, aby uzyskać dostawców wszystkich zależności pakietu.
Stamtąd po prostu trzeba znaleźć przewód osgi.wiring.package
nazw dla pakietu chcesz, to operator tego przewodu będzie BundleCapability
z BundleRevision
wiązki jesteś zainteresowany.
Jest to w zasadzie to, czego szukałem. Szkoda, że muszę przejrzeć wszystkie pakiety i sprawdzić to. Miałem nadzieję na metodę w ramce, która mówi, oto pakiet, który pakiet go spełnia? Zważywszy, że tak właśnie działa framework, a mimo to musi rozwiązywać zależności. Ale w każdym razie, dzięki za odpowiedź. – Boomah