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:Deployment Admin の仕様に従って、これは で始まります。

于 2012-05-31T08:07:34.050 に答える