import org.osgi.framework.BundleContext; import org.osgi.framework.BundleException; import org.osgi.framework.ServiceReference; import org.osgi.service.packageadmin.PackageAdmin; public class BundleManager { private BundleContext bundleContext; public void installBundle(String location) throws BundleException { ServiceReference<PackageAdmin> packageAdminRef = bundleContext.getServiceReference(PackageAdmin.class); PackageAdmin packageAdmin = bundleContext.getService(packageAdminRef); synchronized (packageAdmin) { packageAdmin.resolveBundles(null); packageAdmin.installBundle(location); } } public void uninstallBundle(long bundleId) throws BundleException { ServiceReference<PackageAdmin> packageAdminRef = bundleContext.getServiceReference(PackageAdmin.class); PackageAdmin packageAdmin = bundleContext.getService(packageAdminRef); synchronized (packageAdmin) { packageAdmin.resolveBundles(null); packageAdmin.uninstallBundle(bundleId); } } } <config> <packageadmin> <provisionbundles> <provisionbundle> <location>bundle1.jar</location> <startlevel>5</startlevel> </provisionbundle> <provisionbundle> <location>bundle2.jar</location> <startlevel>8</startlevel> </provisionbundle> </provisionbundles> </packageadmin> </config>


上一篇:
下一篇:
切换中文