2010-03-09 62 views

回答

2

你可以用不同的方法做到这一点。首先,您可能会看看Bundle接口类的开始方法。有了它,你可以开始一个特定的包。你也可以看一下Declarative Services或Start Level Specification。

作为一个开始,你应该(在www.osgi.org免费提供)读了OSGi核心规范的第4.4.5节(开始包)。

4

如果你的意思是:启动包的顺序。

作为启动一个OSGi应用程序时,我怎么能确保通过其他包提供较低水平的服务,可用于更高级别的服务(/其他bundle)。那么你应该读入动态服务。

有来解决这个问题(因为它在不同版本的OSGi的改变)的几种方法。如果你是新来的OSGi和动态服务,最合乎逻辑的解决方案可能是声明式服务,但至少你也应该阅读有关服务激活工具包,因为它也有它自己的优势&缺点。

有一个很好的在线Chapter 6, Dynamic Services,这正好说明这个问题,有什么解决方案,有解决这个问题(至少3种溶液中描述)。

总的来说,我可以推荐的书OSGi and Equinox,任何人想要了解/应用的OSGi(春分)。

1

你试过BundleContext.install()? (BundleContext传入启动器启动和停止方法)