0

我正在开发包含 Netbeans 和 OSGi 模块的 netbeans 平台应用程序。我需要为 OSGi 模块分配起始级别。

我在 Netbeans 平台上找不到任何解决方案。我发现了类似的东西;OpenIDE-Module-Requires,felix.startlevel.bundle MODULE_START_LEVEL。但要么他们不工作,要么我找不到任何样本来申请。

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

有什么解决办法吗?

4

2 回答 2

0

您不能指定解决已安装捆绑包的顺序。解析的包可以有一个类加载器,然后可以从中加载类。您可以使用startlevel 包对捆绑包的启动顺序进行一些控制。

于 2013-09-30T12:01:32.343 回答
0

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

你似乎想做的是走捷径。作为开发人员,您不需要正确处理您的依赖关系(这对于声明式服务 DS 来说非常容易),而是决定如果 A、B 和 C 正在运行,您可以启动 C。虽然这最初有效,但当您更新 A、B、或 C 因为在那一刻 C 仍然假设它的依赖项是活动的。

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

于 2013-10-01T06:50:36.040 回答