Fabric で JBoss Fuse 6.2 を使用しています。OSGI バンドルにコンパイルされたアプリケーションがあります。アプリケーションには非 OSGI jar ファイル (multiplier.jar) への依存関係があり、これは別の非 OSGI jar ファイル (adder.jar) への推移的な依存関係があります。
アプリケーション バンドルと 2 つの依存関係はすべて、ローカルの Maven リポジトリにあります。
次のような features.xml ファイルを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<features name="CamelLogRepo" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
<feature name="multiplier-logger">
<bundle>mvn:org.jboss.quickstarts.fuse/beginner-camel-log/6.2.0.redhat-133</bundle>
<bundle>wrap:mvn:com.acme.math.multiply/multiplier/1.0</bundle>
<bundle>wrap:mvn:com.acme.math.add/adder/1.0</bundle>
</feature>
</features>
次に、Fuse コンソールで次のコマンドを実行します。
fabric:profile-create --parent feature-camel logger-profile
fabric:profile-edit --repository file:C:/Tools/jboss-fuse-6.2.0.redhat-133/quickstarts/beginner/camel-log/features.xml logger-profile
fabric:profile-edit --feature multiplier-logger logger-profile
fabric:container-create-child --profile logger-profile root logger
これは機能します。
ただし、すべての推移的な依存関係を features.xml ファイルにリストする必要があります。これを回避する方法はありますか?
私は、Fuse が Maven 依存関係ルックアップを実行できるという印象を持っていたので、依存関係が別の依存関係をリストするリポジトリに pom.xml を持っていた場合、Fuse はその依存関係を自動的にロードします。これを実現し、Fusewrap:
が OSGI 以外の依存関係にプロトコルを自動的に使用するようにする方法はありますか?
2 つの依存関係を含む完全なテスト アプリケーションは、https ://www.dropbox.com/s/rm1kcctvnwlvb2d/transitive2.zip?dl=0 にあります。