package org.foo.shell;
import java.io.PrintStream;
import java.util.*;
import org.osgi.framework.Bundle;
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
public class RefreshCommand extends BasicCommand {
public void exec(String args, PrintStream out, PrintStream err) throws Exception {
if (args == null) {
getPackageAdminService().refreshPackages(null);
} else {
List<Bundle> bundles = new ArrayList<Bundle>();
StringTokenizer tok = new StringTokenizer(args);
while (tok.hasMoreTokens()) {
bundles.add(getBundle(tok.nextToken()));
}
getPackageAdminService().refreshPackages(bundles.toArray(new Bundle[bundles.size()]));
}
PackageAdmin admin = getPackageAdminService();
ExportedPackage[] exports = admin.getExportedPackages((Bundle)null);
Bundle[] bundles = m_context.getBundles();
for (Bundle bundle : bundles) {
System.out.println(bundle.getBundleId());
for (ExportedPackage pack : exports) {
Bundle[] importers = pack.getImportingBundles();
if (importers != null) {
for (Bundle importer : importers) {
if (importer == bundle) {
System.out.println(pack);
}
}
}
}
}
}
private PackageAdmin getPackageAdminService() {
return (PackageAdmin) m_context.getService(m_context.getServiceReference(PackageAdmin.class.getName()));
}
}