package org.knopflerfish.bundle.soap.remotefw.client; import org.osgi.framework.*; import org.osgi.util.tracker.*; import java.util.*; import org.knopflerfish.service.log.LogRef; import org.osgi.service.packageadmin.*; import org.knopflerfish.service.soap.remotefw.*; import java.io.*; import java.net.*; public class PackageAdminImpl implements PackageAdmin { RemoteFWClient fw; PackageAdminImpl(RemoteFWClient fw) { this.fw = fw; } public ExportedPackage getExportedPackage(String name) { Map map = fw.getExportedPackage(name); return new ExportedPackageImpl(map); } public ExportedPackage[] getExportedPackages(Bundle b) { Map[] maps = fw.getExportedPackages(b.getBundleId()); if(maps.length == 0) { return null; } ExportedPackage[] pkgs = new ExportedPackage[maps.length]; for(int i = 0; i < maps.length; i++) { pkgs[i] = new ExportedPackageImpl(maps[i]); } return pkgs; } public void refreshPackages(Bundle[] bundles) { } class ExportedPackageImpl implements ExportedPackage { String name; Bundle exporting; Bundle[] importing; String version; boolean pending; ExportedPackageImpl(Map map) { name = (String)map.get("getName"); version = (String)map.get("getSpecificationVersion"); pending = ((Boolean)map.get("isRemovalPending")).booleanValue(); exporting = fw.remoteBC.getBundle(((Long)map.get("getExportingBundle")).longValue()); Object obj = map.get("getImportingBundles"); // System.out.println(obj + ": " + obj.getClass().getName()); // Long[] bids = new Long[0]; long[] bids = (long[])map.get("getImportingBundles"); if(bids.length == 0) { importing = null; } else { importing = new Bundle[bids.length]; for(int i = 0; i < bids.length; i++) { importing[i] = fw.remoteBC.getBundle(bids[i]); } } } public Bundle getExportingBundle() { return exporting; } public Bundle[] getImportingBundles() { return importing; } public String getName() { return name; } public String getSpecificationVersion() { return version; } public boolean isRemovalPending() { return pending; } public Version getVersion() { // TODO Auto-generated method stub return null; } } public Bundle getBundle(Class clazz) { // TODO Auto-generated method stub return null; } public Bundle[] getBundles(String symbolicName, String versionRange) { // TODO Auto-generated method stub return null; } public int getBundleType(Bundle bundle) { // TODO Auto-generated method stub return 0; } public ExportedPackage[] getExportedPackages(String name) { // TODO Auto-generated method stub return null; } public Bundle[] getFragments(Bundle bundle) { // TODO Auto-generated method stub return null; } public Bundle[] getHosts(Bundle bundle) { // TODO Auto-generated method stub return null; } public RequiredBundle[] getRequiredBundles(String symbolicName) { // TODO Auto-generated method stub return null; } public boolean resolveBundles(Bundle[] bundles) { // TODO Auto-generated method stub return false; } }