0

我正在 Eclipse 中研究 server-allinone。我想让一些自定义包成为目标上运行的基本包的一部分。有没有办法从配置中做到这一点?

4

1 回答 1

0

从概念上讲,目标上运行的内容由三个逻辑部分组成:

  1. 实际的 OSGi 框架实现(Apache Felix、Equinox、...)。
  2. Apache ACE 提供的“管理代理”。
  3. 构成您的应用程序的所有捆绑包。

ACE 可以轻松安装、更新和卸载 #3 中的任何内容。ACE 还具有允许管理代理(#2)自我更新的机制(这显然是一种特殊情况)。这就是 ACE 停止的地方,它没有更新 #1 的内置机制,尽管也有一些关于为此提供机制的讨论。不过,您必须在某个时候划清界限,因为除此之外,您还可以问自己谁将更新 JVM、操作系统和引导加载程序。

无论如何,回到你的问题。如果您想让这些自定义捆绑包成为在目标上运行的基本捆绑包的一部分,从概念上讲,它们将成为框架的一部分,并且您无法在 ACE 中更新它们。如果没问题,只需创建一个自定义启动器,它除了安装管理代理之外,还安装这些包。如果这不合适,您需要将这些捆绑包添加到实际的管理代理捆绑包中,以便它们成为其中的一部分。这样您就可以将它们作为该捆绑包的一部分进行更新。但是,我想挑战您并问您为什么这些捆绑包不能成为应用程序的一部分?是否有特殊原因必须预先安装它们(可更新或不可更新)?

于 2015-08-20T05:38:16.163 回答