osgi - OSGi框架如何设置Bundle ID?

标签 osgi

我正在尝试在 main 方法中运行 OSGi 框架(Equinox)。 每次启动框架时,当我打印 BundleContext.getBundles().length 时,它表示该框架仅安装了 1 个 Bundle(这肯定是系统包)。 当我安装第一个 bundle 时, bundle ID 将从上一个 session 继续。假设我上次 session 有 4 个 bundle (并且在停止系统 bundle 之前我已停止并卸载了所有 bundle ),则第一个 bundle ID 设置为 5。 现在,我想知道框架如何选择bundle ID?即使我已经卸载了所有 bundle ,框架为什么以及如何记住最后一个 session ?是因为 Bundle Cache 的原因吗?如果是的话,如何清除缓存(从 1 重新开始编号)?

最佳答案

框架在其管理的持久存储中的某个位置有最后使用的包 ID。这个商店看起来是一个框架实现细节。启动框架时,您可以指定 org.osgi.framework.storage.clean 框架配置属性。这将清除所有已安装的 bundle ,但我不确定它是否会重置上次使用的 bundle ID。

关于osgi - OSGi框架如何设置Bundle ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521421/

相关文章:

scala - Karaf Unresolved JDBC 约束

java - 关于Spring DM、OSGi和web应用的问题

java - 在 OSGi 包中添加第三方 Maven 依赖项的最佳方法

java - OSGi 与 jboss 热部署

java - 多线程捆绑和服务实例

java - 由于类加载器问题导致的 ClassCastException

java - 从 OSGI 命令提示符运行 OSGI bundle :Import-package missing constraint

java - 好的 OSGi 教程

java - 运行 JavaFX 应用程序 : JFXPanel vs Application. 启动

java - AEM 6.3 使用 OSGi R6 注释和 Sling 模型