2016-12-12 11 views
0

PAX試験を統合テストに使用しています。私がテストしたいバンドルは、いくつかのバンドルに依存しています。残念ながら私はすべての依存関係を自動的に取得することができませんでした。私のテストクラス内PAX試験用のテスト済みバンドルの推移的依存関係の取得方法OSGiテスト実行

私は

@Configuration 
public Option[] config() { 
    return options(
     junitBundles(), 
     mavenBundle("io.moquette", "moquette-broker") 
    ); 
} 

を持っていることは、残念ながら、モケット・ブローカーの依存関係のすべてで1つだけのjar自体を引っ張っていません。

moquette-brokerのすべての依存関係を実行できるようにする方法をテストクラスに設定しますか? exam-maven-pluginのpom.xmlにそれを入れる方法はありますか?確かに私はドキュメントで何も見ていませんでした。あるいは、自分でクラスに列挙する必要がありますか?

答えて

0

プレーンなPAX試験でこの現象を起こす方法はありません。テストする@Configuration要素のすべての依存関係をリストする必要があります。

これを簡単にするには、Apache Karafまたはbndtoolsを使用する2つの方法があります。どちらも非常に異なる方法で助けます。

karafをデプロイメントプラットフォームとして使用する場合、アプリケーションをフィーチャーとして定義できます。この機能では、paxのようなすべてのバンドル依存関係をリストアップする必要がありますが、他のそのような機能を参照することもできます。だから、実際にはそれははるかに少ない仕事です。 Pax試験では、そのようなカラフテストを機能に基づいて実行することもできます。 Aries JPA exampleを参照してください。

もう1つの方法は、最初にインデックスを定義するbndtoolsを使用することです。このインデックスは、pomに基づいていてもよく、推移的な依存関係も含むことができます。 次に、テストのために、展開するトップレベルのバンドルだけを持つbndrunファイルを定義します。リゾルバはランバウンドの有効リストを自動的に決定します。 See this test run definition of Aries jax-rs whiteboard。残念ながら、これはpax試験と一緒には機能しません。 Bndtoolsには独自のランナーがいます。 bndtoolsのmaven統合も、使用されているスナップショットのバージョンでわかるように安定していません。次のバージョンのbndtools(3.4.0)では、ちょうどリリースバージョンでこれを行うことができます。

+0

Ahh、k、ありがとう、クリスチャン。おそらくそうだったと思っていました。残念です。 私はPax試験でこれを残しますが、おそらくBndtoolsに移動すると、Mavenのソートが行われます。これは私がOSGiバンドルとして持っていたがっている他の人のプロジェクト用です。私自身のプロジェクトでは、Gradleをbuildtoolとして使用しています.BndtoolsがGradle内でどのくらいうまく機能するかを見ていきます。 – Keith

+0

カラフは面白そうです。私は通常、私のシステムにはバニラフェリックスを使用しますが、Karafが私のシステムを取り囲むか、クラウドのエンドポイントに使用することは間違いありません。 – Keith

関連する問題