Netbeans 如何分配osgi模块的起始级别?

Netbeans 如何分配osgi模块的起始级别?,netbeans,module,osgi,Netbeans,Module,Osgi,我正在开发netbeans平台应用程序,其中还包括netbeans和OSGi模块。我需要为OSGi模块分配起始级别 我在Netbeans平台上找不到任何解决方案。我发现了这样的事情;OpenIDE模块需要,felix.startlevel.bundle模块\启动\级别。但要么他们不工作,要么我找不到任何样本申请 在Eclipse中,通过运行配置为osgi捆绑包分配启动级别很容易。但是在Netbeans中没有类似的东西 有什么解决方案吗?您无法指定解析已安装捆绑包的顺序。解析包可以有一个类装入器,

我正在开发netbeans平台应用程序,其中还包括netbeans和OSGi模块。我需要为OSGi模块分配起始级别

我在Netbeans平台上找不到任何解决方案。我发现了这样的事情;OpenIDE模块需要,felix.startlevel.bundle模块\启动\级别。但要么他们不工作,要么我找不到任何样本申请

在Eclipse中,通过运行配置为osgi捆绑包分配启动级别很容易。但是在Netbeans中没有类似的东西


有什么解决方案吗?

您无法指定解析已安装捆绑包的顺序。解析包可以有一个类装入器,然后可以从中装入类。通过使用.

依赖OSGi中的开始顺序是一种危险的做法,因为依赖关系可以来来去去。很多人认为startlevel服务可以达到这个目的,但事实并非如此。startlevel服务的目的是提供特殊功能,如启动屏幕或提供优化;有时候,如果你按照一定的顺序开始,你可以避免额外的工作

你似乎想做的是走捷径。作为一名开发人员,您决定如果a、B和C正在运行,您可以启动C,而不是正确处理您的依赖关系(这对于声明性服务DS来说非常容易)。虽然这在最初是可行的,但在更新a、B或C时它会失败,因为此时C仍然假设其依赖关系是活动的


从长远来看,试图控制启动顺序通常是一场灾难。只使用DS和管理依赖项要容易得多。然后,您的代码将在所有情况下工作。

您不需要分配装载顺序。您可能认为您想确定首先安装哪个模块,但您没有。如果你先解释一下为什么你认为你需要这样做,那么解释起来就容易多了。我只想在其他模块启动之后再启动(BundleActivator.start)一些模块。啊,这和你最初要求的有点不同。好的正如BJ所说,您可以使用startlevel服务。但你还是应该设法管理你的捆绑包,这样他们就不会依赖于某个特定的开始订单。。。太脆弱了!谢谢你的回答。正如你之前所说;我们尝试了声明式服务方法。但是,在netbeans中,嵌入式felix不支持DS。因此,我们如何将felix服务组件运行时添加到netbeans中的嵌入式felix。还要添加ApacheFelix SCR捆绑包。DS不是某种内置功能,它只是另一个捆绑包……我们以前尝试过这种方法。只有当我们在felix中以osgi>run运行项目时,它才起作用。但是当我们通过NETBeBes获得项目的ZIP分发时,它不起作用。我会认为这是NETBeBes中的一个bug吗?您报告了吗?Felix SCR和OSGI CMPN JAR应该作为一个集群添加到项目中,并且可以正常工作。谢谢你的帮助。