3

私の Karaf コンテナーでは、通常、etc/*.cfg ファイルを使用してサービスを構成します。ただし、メタタイプを使用するサービスを継承し、プロパティの 1 つが String ではなく Long であることを期待しています (文字列でクラッシュします)。そのようなプロパティを提供するには、どのようなテクニックを使用すればよいですか?

潜在的な解決策を1つ発見しましたが、行き詰まりました。Felix には、次のような構文を持つ .config ファイルの代替構文があります。

key = type "value"

ここで、「type」はタイプを表す 1 文字のコードです (たとえば、Long の場合は「L」)。フィルターを次のように変更しました。

felix.fileinstall.filter = .*\\.(cfg|config)

ここまでは順調ですね。デバッガーを介して、Felix がファイルを読み取っていることを確認できますが、結果の辞書はエラーなしで空の状態に戻ります。(org.apache.felix.fileinstall-3.2.2-sources.jar には、別の jar からシェーディングされた ConfigurationHandler.java がないため、簡単にデバッグできません...)

私は正しい道を進んでいますか? .config 構文を修正するだけでよいでしょうか? それとも、これは回避して代わりに他の手法を使用する必要がある従来の構文ですか?

更新: .config ファイルの構文エラーを修正することで、「空の辞書」の問題を部分的に解決しました (予想よりも厄介です)。私の他の質問はまだ残っています:これは良いアプローチですか、それとももっと良い方法がありますか?

4

0 に答える 0