2

ここで尋ねられる質問は、バンドルのファイルをなどのURLを介してどのように参照できるかを示していますplatform:/plugin/de.vogella.rcp.plugin.filereader/files/test.txt

同じバンドルの2つのバージョンを同時に実行したいのですが、取得するファイルはバージョンによって異なります。正しいバージョンのファイルを取得できるように、バージョン情報を使用して上記のURLスキームでバンドルを参照することは可能ですか?

これが不可能な場合、バンドルの特定のバージョンを別の方法で取得できますか?

4

3 に答える 3

2

いくつかのオプションがあります。プラグイン名にアンダースコアで区切ってバージョンを追加すると、機能するはずですが、フォームがプラットフォームのURLハンドラーで機能することを確認するために、今は試してみることができません。例:platform://my.bundle_3.1/some/file.txt

それができない場合は、OSGiAPIを直接使用できます。がある場合はBundleContext、それを使用して必要なバンドルを正確に検索し、を呼び出して必要なbundle.getResource()リソースを取得できます。

于 2012-04-21T14:48:09.127 に答える
1

BundleTrackerを見てください。これにより、バージョンに関係なくバンドルを追跡するのが簡単になります。一般に、バンドルの名前やバージョンを確認するのではなく、バンドルに含まれるリソースに反応することをお勧めします。つまり、OSGiエクステンダーパターンを検索します。

于 2012-04-23T06:58:42.600 に答える
0

同じバンドルの2つのバージョンを同時に実行することはできません。OSGiの起動時に、バンドル解決と呼ばれるプロセスがあり、利用可能なすべてのバージョンからバンドルの単一バージョンを選択して、そのすべての依存関係を最もよく満たすようにします。本当に2つのバージョンが必要な場合は、バージョン番号をバンドルIDにプッシュして、何らかの方法で偽造する必要があります。その時点で、それらを区別する方法が明確になります。

于 2012-04-21T12:58:48.693 に答える