Karaf捆绑加载优先级

时间:2016-09-19 18:27:46

标签: java osgi apache-karaf karaf

我有一个关于karaf和功能加载的问题。我有一个kar文件,其中包含我的应用程序的所有包。它在PROD环境中发布。它是基于版本4.0.4的自定义构建离线版Karaf - 并且KAR文件位于deploy文件夹中。我想做一个覆盖一个或多个相同捆绑的补丁。由于某些政策,没有选择发布新版本的kar。我的问题是:

  1. 引用特定版本的bundle的要素文件。如果我使用相同版本将它们放入/部署,将使用JAR,还是不确定?
  2. 当我将bundle的更新版本(次要版本更改)更新到/ deploy时,是使用它还是特定功能定义版本?或者这种行为可能是非确定性的?
  3. 当1或2没有确定性解决方案时,还有其他吗?

1 个答案:

答案 0 :(得分:2)

1a上。将从可用存储库(通常是maven存储库)加载要素文件中的引用包。 deploy /文件夹不是存储库。部署/文件夹中的任何内容都会立即加载。

1b中。如果已加载具有匹配的符号名称+版本的包,则如果要素文件指定了它,则Karaf将不会加载第二个版本。考虑要加载哪些功能和捆绑包的功能定义,如果它不存在则加载它#34;

  1. 如果是第二个文件,它将被部署为第二个文件包。独特的关键"所以说捆绑是基于MANIFEST.MF中的值的符号名称+版本。

  2. N / A。这是确定性的。