OSGi框架如何设置Bundle ID?

Rez*_*eza 6 osgi

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

BJ *_*ave 6

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