9.6. OSGi 設定を機能追加


アプリケーションが OSGi Configuration Admin サービスを使用する場合は、機能定義の config 子要素を使用して、このサービスの設定を指定できます。たとえば、prefix プロパティーの値が MyTransform であることを指定するには、以下の config 子要素を機能の設定に追加します。

<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
  <feature name="example-camel-bundle">
    <config name="org.fusesource.fuseesb.example">
      prefix=MyTransform
    </config>
  </feature>
</features>

config 要素の name 属性は、プロパティー設定の永続 ID を指定します (永続 ID は実質的にプロパティー名の名前スコープとして機能します) 。config 要素の内容は、Java プロパティーファイル と同じ方法で解析されます。

config 要素の設定は、以下のように、永続 ID にしたがって命名される InstallDir/etc ディレクトリーにある Java プロパティーファイルの設定によって、オプションで上書きできます。

InstallDir/etc/org.fusesource.fuseesb.example.cfg

前述の設定プロパティーを実際に使用する方法の例として、OSGi 設定プロパティーにアクセスする次の Blueprint XML ファイルについて考えてみます。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">

    <!-- osgi blueprint property placeholder -->
    <cm:property-placeholder id="placeholder"
                             persistent-id="org.fusesource.fuseesb.example">
        <cm:default-properties>
            <cm:property name="prefix" value="DefaultValue"/>
        </cm:default-properties>
    </cm:property-placeholder>

    <bean id="myTransform" class="org.fusesource.fuseesb.example.MyTransform">
      <property name="prefix" value="${prefix}"/>
    </bean>

</blueprint>

この Blueprint XML ファイルが example-camel-bundle バンドルにデプロイされると、プロパティー参照 ${prefix} は、feature リポジトリーの config 要素で指定される値 MyTransform に置き換えられます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.