我正在使用Apache felix,并希望通过框架执行来保持起始级别.我不期望在Manifest中的一个条目中经常更改捆绑的开始级别.MF似乎是最明智的.我要org.osgi.framework.startlevel,但没有看到一个实际的例子.
我也使用maven与maven-bundle-plugin,如果有一个优雅的方式来整合POM中的开始级别,这将是辉煌的.
解决方法
核心框架在第8节中定义了开始级别界面.引用:
The Start Level API provides the following functions:
Controls the beginning start level of the OSGi Framework.
Is used to modify the active start level of the Framework.
Can be used to assign a specific start level to a bundle.
Can set the initial start level for newly installed bundles.
最后两个与您的询问有关.第8.3.4节 – 更改软件包的开始级别 – 指示框架将持续存储分配的启动级别.
如果您使用Apache Felix,则可以通过多种方式安装软件包并分配其启动级别,无论是显式还是允许它们继承已安装软件包的默认启动级别:
> Felix File Install(请参阅felix.fileinstall.start.level属性,尽管它不是每个bundle)
> Felix Bundle Auto-Deploy(见felix.auto.install.<n>
property)
> GoGo Shell Command(见the bundlelevel
command)
另外,请参阅felix.startlevel.bundle
property,它通过上述方式控制捆绑.
至于设置清单属性(例如在构建时使用Maven),以前有一种方法可以在Equinox中执行此操作 – 现在已经被弃用了 – 但是没有一个标准的方法来将一个bundle指示给框架什么是正确的开始级别应该.