我正在开发包含Netbeans和OSGi模块的netbeans平台应用程序。我需要为OSGi模块分配起始级别。
我在Netbeans平台上找不到任何解决方案。我找到了类似的东西; OpenIDE-Module-Requires,felix.startlevel.bundle MODULE_START_LEVEL。但要么他们没有工作,要么找不到任何样品申请。
在Eclipse中,通过运行配置很容易为osgi包分配启动级别。但在Netbeans中没有类似的东西。
有什么解决方案吗?
答案 0 :(得分:0)
您无法指定已解决已安装捆绑包的顺序。已解析的包可以具有类加载器,然后可以从中加载类。您可以使用startlevel package来控制捆绑包的起始顺序。
答案 1 :(得分:0)
依赖于OSGi中的起始顺序是一个红色的鲱鱼,因为依赖性可以来来去去。很多人认为startlevel服务可以达到这个目的,但事实并非如此。 startlevel服务的目的是用于特殊功能,如启动画面或提供优化;如果你以某种顺序开始,你有时会阻止额外的工作。
您似乎想要做的就是采取捷径。您作为开发人员决定如果A,B和C正在运行,您可以启动C.而不是正确处理您的依赖关系(这很容易处理),但是当您更新A,B时,它最初会失败,或者C从那时起C仍然假设它的依赖关系是活着的。
总的来说,从长远来看,试图控制启动顺序是一场灾难。使用DS并管理依赖项要容易得多。那么你的代码将适用于所有情况。