3

前の質問に関連して、OSGiにConfig Adminを介して構成を再利用させる方法について、私はまだEquinoxFrameworkでこの問題を解決しようとしています。

PavolJuhosは次のように書いています。

Equinox Config Admin(org.eclipse.equinox.cm)は、フレームワークによって提供される永続ストレージ領域に構成データを保管します。そして、それはEquinoxのデフォルトの「ローカルバンドルキャッシュ」ディレクトリです。

だから私はこのトピックを読んで、Equinoxにはいくつかのランタイムオプションがあることを発見しました(とりわけosgi.configuration.area)。

ローカルバンドルキャッシュが削除またはクリーンアップされないように構成を変更する必要があるため、次にFrameworkを実行するときに、最後に入力された構成(任意のバンドル)が使用されます。

4

3 に答える 3

5

宿泊施設もありosgi.cleanます。これをtrueに設定すると、OSGiコンテナーは、起動時に既存のバンドル・キャッシュ(および関連するすべてのデータ)を削除し、バンドルをランタイム・キャッシュに再ロードする必要があります。これをfalseに設定すると、バンドルキャッシュは再起動後も存続するはずです。

これは、EclipseSDKEquinoxランタイムオプションに記載されています。

于 2009-08-11T15:39:30.893 に答える
0

CMは、コンテナを停止した後もデータを保持するようには設計されていません。これを行う場合は、設定サービスを使用する必要があります。

したがって、アプリケーションは、初期化時に、PSによって管理されている永続ストアからデータを取得し、CMに「渡す」必要があります。

于 2012-02-01T13:15:43.773 に答える
-1

フレームワークの起動時にバンドルキャッシュをパージするかどうかを指定するためのOSGi標準プロパティは次のとおりです。org.osgi.framework.storage.clean

org.osgi.framework.storage.clean-バンドルキャッシュをフラッシュするかどうかを決定します。値は「none」または「onFirstInit」のいずれかです。「none」はバンドルキャッシュをフラッシュせず、「onFirstInit」はフレームワークインスタンスが最初に初期化されたときにバンドルキャッシュをフラッシュします。デフォルト値は「none」です。

これは比較的新しいものです(実際、まだドラフトです。セクション4.2.2のR4.2ドラフトにあります)が、最近のEquinoxバージョンでは機能するはずです。

于 2009-08-11T13:25:20.717 に答える