コンポーネントのコードにバインドされていない OSGi 設定の読み取り方法

実行中のコンポーネントにバインドされていない OSGi 設定を読み取る方法。

環境

手順

様々な OSGi の設定を読み込みに対する推奨されるアプローチは、アプリケーションの設定ファイルを検索するためではなく、ConfigurationAdmin [1] を使用することです。サンプルコードについてはここ [2] を参照。

[1] https://osgi.org/javadoc/r4v42/org/osgi/service/cm/ConfigurationAdmin.html
[2] http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html

ConfigurationAdmin は OSGi サービスなので、独自の OSGi コンポーネントコードで SCR 注釈経由で取得できます。以下の例(org.sample.PrettyPrinterConfigurator は、設定の PID です):

@Reference
ConfigurationAdmin configAdmin;

@Activate
public void activate(ComponentContext componentContext) {
  Configuration config = configurationAdmin.getConfiguration(
    "org.sample.PrettyPrinterConfigurator");
  Dictionary props = config.getProperties();
}
アドビのロゴ

アカウントにログイン