2012-05-08 12 views
1

私は今のところ2つのバンドルからなるOSGiベースのWebアプリケーションを構築しています。そのうちの1つでは、プロセス・エンジンからプロセス・インスタンスをロードしています。各プロセスインスタンスは、最初に割り当てられていた他のバンドルの特定のバージョンに対応しています。OSGiインポートバージョンの制限を動的に設定していますか?

たとえば、バンドルAに1つのプロセスインスタンスをロードし、バージョン1.0のバンドルBのパッケージを使用して作業したいとします。その後、別のプロセスインスタンスを取得し、バージョン2.0のバンドルBのパッケージを使用して作業します。

この機能を実現する方法はありますか?

ありがとうございます! Johannes

答えて

2

バンドルAは、特定の時点でパッケージの単一バージョンにのみ公開できます。バンドルAでは、リフレクションを使用するだけでなく、バ​​ンドルBの異なるバージョンでエクスポートされた同じパッケージの2つのバージョンを使用することはできません。

または、バンドルBの2つのバージョンが同じパッケージを別々に実装することを意味しますか?その後バンドルAは、バンドルBの2つのバージョンとは異なるインプリメンテーションオブジェクトを見ることができます。これは、バンドルAと同じインターフェイスタイプであるためです。この場合、バンドルBがバンドル用にこれらのオブジェクトを公開するには、OSGiサービスが最適です使用するA。

+0

インポートのアドバイスとアドバイスをいただき、ありがとうございます。 Bundle Bの新しいバージョンが登場するたびに、サービスタスクの新しい実装が行われるはずです。そこで、OSGiサービスを使用してバンドルAに提供することを試みます。ありがとう! – Johannes

関連する問題