in gshell/gshell-packages/src/main/java/org/apache/servicemix/kernel/gshell/packages/ImportsCommand.java [36:69]
protected void doExecute(PackageAdmin admin) throws Exception {
Map<Long, List<ExportedPackage>> packages = new HashMap<Long, List<ExportedPackage>>();
ExportedPackage[] exported = admin.getExportedPackages((Bundle) null);
for (ExportedPackage pkg : exported) {
Bundle[] bundles = pkg.getImportingBundles();
if (bundles != null) {
for (Bundle b : bundles) {
List<ExportedPackage> p = packages.get(b.getBundleId());
if (p == null) {
p = new ArrayList<ExportedPackage>();
packages.put(b.getBundleId(), p);
}
p.add(pkg);
}
}
}
if (ids != null && !ids.isEmpty()) {
for (long id : ids) {
Bundle bundle = getBundleContext().getBundle(id);
if (bundle != null) {
printImports(io.out, bundle, packages.get(bundle.getBundleId()));
} else {
io.err.println("Bundle ID " + id + " is invalid.");
}
}
}
else {
List<ExportedPackage> pkgs = new ArrayList<ExportedPackage>();
for (List<ExportedPackage> l : packages.values()) {
pkgs.addAll(l);
}
printImports(io.out, null, pkgs);
}
}