2017-07-18 4 views
0

私はKarafを実行していて、Karafなどのディレクトリからファイルにアクセスする青写真のxmlファイルを持っています(apache-karaf/etc/SomeProperties.properties) :などでKarafファイルを読む

<ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"> 
    <ext:location>file:etc/SomeProperties.properties</ext:location> 
</ext:property-placeholder> 

<bean id="SomeBean" class="impl.com.package.SomeBean" 
     init-method="init" destroy-method="destroy"> 
    <property name="beanvariable1" value="$[property1key]"/> 
    <property name="beanvariable2" value="$[property2key]"/> 
</bean> 

しかし、私はまた、1つの特定のファイルだけでなく、すべてのプロパティにアクセスしたいのですが、(個別のファイルの任意の名前を付けずに)の.cfgで終わるものと同じなどkaraf /ディレクトリからすべてのファイル。これはできますか?

特に、ファイルの場所ではなくディレクトリの場所を指定する方法はありますか?さらにそのディレクトリ内のファイルタイプをフィルタリングしますか?

また、Karafで実行されているバンドル内のapache-karaf/etcディレクトリ内のすべてのファイル(特定のプロパティだけでなく)にアクセスする方法はありますか(青写真などを使用していますか?

答えて

1

あなたはカップルのオプションがあります(OSGiので永続的なIDは「PID」と呼ばれる)あなたはすべて保存されたコンフィギュレーション・セットによってロールバックすることができ、直接

を設定管理サービスへのハンドルを取得し、あなたが使用してそれを参照することができますあなたのバンドルへの組み込みのビーン参照の青写真(これはConfig Admin Serviceをたどる方法を持っています)。その後に「configAdmin」豆を配線IBM's Blueprint Reference

それとも、参照を設定することができますし、

<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"> 

コンフィグ管理サービスに直接配線されます:青写真での作業へのより完全なリファレンスの一つのために、このリンクを参照してください。あなたの豆。

+0

素晴らしい情報ありがとう!各PID(プロパティのgetProperties()メソッド)のプロパティを反復処理するときに、追加のプロパティservice.pidとfelix.fileinstall.filenameが表示されます。実際にファイルに含まれているプロパティだけを取得することは可能かどうか、またこれらの追加のプロパティは有効ではないように見えますか? –

+0

Anytime =)リストからそれらを削除することはできません。felix/karafはそれらを追跡用に追加します。 –