Osgi Bundle 更新和 ResourceBundle
Osgi Bundle update and ResourceBundle
假设我们有两个 osgi 包:bundleA 和 bundleB。在 bundleB 中,我们有一些 texts.properties
。所以,在 bundleA 中我们做
ResourceBundle rb=
ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader());
现在,我们更新 bunldeB 或完全删除它并安装并启动包含新版本 texts.properties
的新版本 bundleB。还有两个问题:
- 现有 'rb' 会怎样?必须有效吗?
- 如果在新版本的 bundleB 出现后我们执行与上面相同的代码 - 我们会在
rb
中看到 texts.properties
的新版本吗?或者我们需要为此做额外的操作?
由于bundleA有对classFromBundleB的引用,除非bundleA被刷新,否则会从原来的bundleB继续维护classFromBundleB。而且由于 ResourceBundle 维护着一个缓存,你会一直得到相同的 rb。因此,在更新 bundleB 之后,您将需要刷新依赖于 bundleB.
的 类 的捆绑包
假设我们有两个 osgi 包:bundleA 和 bundleB。在 bundleB 中,我们有一些 texts.properties
。所以,在 bundleA 中我们做
ResourceBundle rb=
ResourceBundle.getBundle("com/foo/texts",locale, classFromBundleB.getClassLoader());
现在,我们更新 bunldeB 或完全删除它并安装并启动包含新版本 texts.properties
的新版本 bundleB。还有两个问题:
- 现有 'rb' 会怎样?必须有效吗?
- 如果在新版本的 bundleB 出现后我们执行与上面相同的代码 - 我们会在
rb
中看到texts.properties
的新版本吗?或者我们需要为此做额外的操作?
由于bundleA有对classFromBundleB的引用,除非bundleA被刷新,否则会从原来的bundleB继续维护classFromBundleB。而且由于 ResourceBundle 维护着一个缓存,你会一直得到相同的 rb。因此,在更新 bundleB 之后,您将需要刷新依赖于 bundleB.
的 类 的捆绑包