2012-03-21 23 views
3

私はOSGIを研究して、既存のプロジェクトを更新するための実行可能性を判断しました。プロジェクトは現在、XSL変換を含むモジュール(基本的にはディレクトリのみ)で構成されています。変換には、xsl:importおよびxsl:include文の形式で他のモジュールからの変換に依存します。私がOSGIを検討しているのは、モジュールの数が増えるにつれて、依存関係を把握し、モジュールを効果的にテストすることが難しくなっているからです。OSGIバンドル間のXSLT依存関係

OSGIフレームワークを使用してバンドルに含まれるXML/XSLTリソースを宣言し、これらのリソースを別のバンドルのXSLTトランスフォームのインポートステートメントで参照することは可能ですか?

答えて

2

はい、これはLukaszとして示されています。エクステンダモデルに基づいて単純なURIResolverを記述する必要があります。興味深いアプローチは、Provide-CapabilityヘッダーとRequire-Capabilityヘッダーを使用して依存関係をモデル化することです。これにより、優れた診断機能を使用して依存関係を処理することができ、複数のバージョンを並行して実行することができ、不足している部分を見つけることができるリゾルバであるOBRと連携できます。 http://www.osgi.org/blog/2012/03/requirements-and-capabilities.html

これは、XSLTがXMLであることを初めて知ることでしょう...あなたはRequire-Capabilityヘッダーを生成したシンプルなスタイルシートを書くことができます! :-)

+0

これは既に利用できますか?私はR5が来るとき、またはすでにそこにあるかどうかについての情報を見つけることができませんか? –

+0

R5最終ドラフトは、火曜日の夜、OSGi DevCon BOF(EclipseCon)に表示されます。とにかく、記述されたモデルはすでに4.3フレームワークで動作します。 –

2

あなたの質問は非常に興味深いようです。個人的に、私は2つのバンドルを持つシステムに取り組んでいます。 1つのバンドルにはXSLTプロセッサの実装(Saxonを使用)と2つ目のパッケージには複数のXSLTファイル(xsl:import命令の使用)が含まれています。そしてOSGi環境(実際にはヒューズESB)ではうまく動作しますが、javax.xml.transform.URIResolverインタフェースを実装してコンバータに渡す必要がありました。

同様のアプローチを使用する必要があると思います。お役に立てれば。

+0

ルーカス、これは良いアプローチのように思えます。これを行うためのコード例やリンクがありますか? –

0

私があなたの場合は依存関係管理のためにMavenを使用するだけです。依存関係を設定する方が簡単で、推移的な依存関係は本当にうまく処理されます。 XSLモジュールをランタイムに変更する必要がある場合は、OSGiを使用してください。どちらの場合も、URIResolverを実装する必要があります。

関連する問題