0

我有 2 个捆绑包 A 和 B,使用 Apache ACE 我已在以下步骤中将这些捆绑包配置到目标。

  1. 为目标提供 A(版本 1.0.0)
  2. 为目标提供 B(版本 1.0.0)
  3. 将 B(具有版本 2.0.0)配置到目标(升级先前版本的步骤 2)

当我访问(http://localhost:8080/deployment/gatewayid/versions)

我得到以下结果

1.0.0
2.0.0
3.0.0

管理代理如何确定哪个版本属于哪个软件?

4

2 回答 2

1

每次为目标配置的工件集发生变化时,ACE 都会为目标创建一个新版本。要实际查看版本中的内容,目标上的管理代理需要获取版本。然后您获得的部署包包含您需要的所有元数据(即工件及其版本的列表)。

于 2012-06-28T17:34:29.913 回答
0

当在与目标包相同的 OSGi 框架中运行时,您可以使用BundleContext获取包,并询问它们安装的版本。就像是,

for (Bundle b : bundleContext) {
    System.out.println("Found bundle " + b.getSymbolicName() + " in version " + b.getVersion());
}

如果您还需要知道这个包是否已经从部署包中安装,您可以向它询问它的getLocation(); osgi-dp:根据部署管理规范,这将以 开头。

于 2012-05-31T08:07:34.050 回答