I don't know if that's what Alasdair meant but you could parse the Import-Package header and using PackageAdmin check if one of the bundles that exports a given import package is actually wired to the importing bundle. That should be more efficient than going through all bundles and all exports. However, if bundle has DynamicImport-Package might as well do the full scan.
Jarek On Fri, Jan 8, 2010 at 4:40 PM, Alan Keane <[email protected]> wrote: > This would be somewhat static and would not give any indication of the > runtime > resolution of optional imports etc. > The bundle headers are available through another method on the > BundleStateMBean. > > Alan > > On Fri, Jan 8, 2010 at 9:26 PM, Alasdair Nottingham <[email protected]> wrote: > >> Can you not call Bundle.getHeaders().get("Import-Package")? >> >> That will return a them all as a single string, but we have code in >> the application component that can correctly split this up in the >> individual packages. We could move this into the util package so it >> can be shared. >> >> Alasdair >> >> 2010/1/8 Alan Keane <[email protected]>: >> > I'm looking for a standard way through the Framework API to inspect a >> > bundle's resolved bundle dependencies and imported packages. >> > The BundleStateMBean defines a #getImportedPackages(long bundleId) & >> > #getRequiredBundles(long) method. >> > >> > The processing used for getImportedPackages >> > (FrameworkUtils#getBundleImportedPackages) >> > in particular will iterate through all bundles in the framework, query >> for >> > ExportedPackages on each one and check for a match on the importing >> bundles. >> > >> > Any ideas on a more efficient (standard) way of doing this? >> > >> > Cheers, >> > Alan >> > >> >> >> >> -- >> Alasdair Nottingham >> [email protected] >> >
