2008-05-23

控制Bundle的启动

在开放RCP程序时, 由于ActivationPolicy的存在(这是个优点, 保证OSGi只加载需要的Bundle), spring的osgi-extender并不能自动start, 这导致所有基于spring-osgi的bundle只能愣在那起不了作用.

启动osgi-extender的方法是: 在config.ini里的osgi.bundles项里, 加入

org.springframework.bundle.osgi.extender@start

这个OSGi能识别并且确保会执行Activator.start()方法.
目前, 俺仅找到这么一个方式被证明是正确的, 之前也尝试过写另一个Bundle来激活它, 可那个bundle本身都没被激活...
小发现: osgi.extender被start过一次后(通过console), 之后每次都会自动启动.
小小发现: org.eclipse.update.configurator不依赖于org.eclipse.update.core, 并且, 是它负责启动plugins/目录下的所有插件, 这就是为啥它的启动顺序排第三:

org.eclipse.update.configurator@3:start


No comments: