Fuse / OSGi捆绑包和依赖项

时间:2017-01-19 20:24:42

标签: java maven dependencies osgi bundle

良好的当地时间社区,

首先是免责声明,我是Maven和OSGi的新手,虽然我已经阅读了这个主题的六个主题。我们正在从当前的RESTful架构迁移到Apache的Fuse(ESB),当然这需要我们整理我们的依赖关系并为每个bundle /容器精心设计我们的POMS。一般来说,每个容器将包含3个内部依赖包:

  1. 特定于容器的捆绑包,需要接下来的两个内部捆绑包。)
  2. 我们所有内部容器都需要的处理包(尽管它们可能需要不同的版本),并且需要下面的包。
  3. 我们所有容器都需要的实用程序包(尽管它们可能需要不同的版本)。
  4. 此外,每个容器可能需要一个或多个(可能多达100个)第三方罐子,这些罐子通常在容器之间重复使用(但不能保证版本是否相同)。

    我们已经(或将很快)拥有每个容器和整个ESB的配置文件。我想知道的是:

    1. 我们可以在容器之间重复使用第三方罐子的最佳(最干净)方法是什么?
    2. 我已经读过,如果我们可以避免它,我们就永远不应该使用它,但是当我们尝试显式导入我们的三个包所需的jar /包时,我们正在前往jarmageddon。我已经读过*;分辨率:=可选不是要去的方式(对于它的价值,这对我们来说似乎并不适用)。有什么想法吗?
    3. 我在一些论坛上看到捆绑第三方罐子是要走的路(虽然这看起来有点过分),而且我已经阅读过其他有点挫败OSGi目的的内容。有什么想法吗?
    4. 我们的内部捆绑包通常需要许多相同的第三方罐子/版本。这只是以正确的顺序(实用程序,处理和特定于容器)构建/安装我们的bundle并导出可以被下一个bundle重用的jar吗?
    5. 如果我们做一些我们不想做的事情(导出所有东西,导入*),我们可以让我们的集装箱工作,但我们希望尽可能干净地处理这个,因为我们将拥有重复许多容器的过程(增加依赖性),因为我们必须支持/更新我们的实现。

      提前感谢您的指导。

0 个答案:

没有答案