<dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> <version>1.7.0</version> </dependency> import org.osgi.service.startlevel.StartLevel; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @Component public class StartLevelManager { @Reference private StartLevel startLevel; public void setBundleStartLevel(int bundleId, int startLevel) { startLevel.setBundleStartLevel(bundleId, startLevel); } public void startBundle(int bundleId) { startLevel.setBundleStartLevel(bundleId, StartLevel.BUNDLE_ACTIVE); } public void stopBundle(int bundleId) { startLevel.setBundleStartLevel(bundleId, StartLevel.BUNDLE_RESOLVED); } } import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Deactivate; @Component public class MyApp { private StartLevelManager startLevelManager; @Activate public void activate(BundleContext bundleContext) { startLevelManager = new StartLevelManager(); FrameworkUtil.getBundle(this.getClass()).getBundleContext() .getServiceReference(StartLevel.class); startLevelManager.setBundleStartLevel(1, 5); startLevelManager.startBundle(1); } @Deactivate public void deactivate() { startLevelManager.stopBundle(1); } }


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