2016-04-12 9 views
0

あるアクティベーション方法から別のアクティベーション方法へのフォールバックを何らかの形で作成することができますか? 宣言型サービスによってアクティブ化されたバンドルがありますが、問題のアプリケーションサーバーにSCRがインストールされていないとします。宣言型サービスとBlueprintアクティベータの両方でバンドルを作成し、ロード順を決定することは可能ですか? 例:バンドルを作成し、使用可能であればSCRによってロードするように指定できますか?SCRがインストールされていない場合はBlueprintsを指定できますか?OSGiアクティベーション方法のフォールバック

+0

Blueprintがインストールされていない場合はどうなりますか? –

+0

アクティベータを探すか、あきらめますか? :) –

+2

もう1つのバンドル(SCR)をインストールすることに懸念があるならば、 'BundleActivator'を書いてください。しかし、それは奇妙な問題です。 –

答えて

3

SCR機能を使用したいが、バンドルがSCRを持たないアプリケーションサーバーにインストールされている場合、最も簡単なのはSCRをインストールすることです。これは単一の小さなバンドルです。バンドルの依存関係は、依存しているパッケージなどと同じくらいです。

実際にSCRをインストールできない場合、またはすでに使用可能なSCRに頼っている場合は、BundleActivatorと記述する必要があります。これは、通常、非常に低レベルの「配管」タイプのバンドル、または非常にリソースが制約されたデバイスで実行する場合にのみ必要です。

+0

私の場合、私はちょうどその余分なバンドルをインストールすることはできませんので、私は最低共通の分母を探す必要があります?それで、私がやることは大丈夫です。ありがとう:) –

1

これはできません。ベストプラクティスは、2つのうちの1つを決定することです。あなたが導入している依存関係について懸念しているのであれば、DSを使うほうがいいです。

関連する問題