問題タブ [pax-exam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
testing - Pax試験テストは時々失敗します
PaxExamを使用してKarafでCXFRESTサービスをテストしています。ほとんどの場合、テストは私のマシンで問題なく実行されます。Jenkins(Mavenビルドの下)で実行すると、通常は失敗します。失敗はランダムで予測できないようです。失敗中に私が受け取るエラーは、Karafコマンドを実行しようとする試みを扱っています。コマンドは、次のスニペットによって実行されます。
これらは、テストのセットアップ方法で実行しようとしているコマンドです。
これは例外です:
org.apache.felix.gogo.runtime.CommandNotFoundException: Command not found: features:addurl
明らかに、Karafが正しく起動せず、これらのコマンドを処理できない場合があります。このようなエラーは、さまざまなKarafコマンドのさまざまなテストでランダムに発生します。私のマシンでは、マシンに負荷がかかっている場合に発生する可能性が高くなります。
Karafがそのように動作する原因は何ですか?これらのエラーの発生を防ぐ方法は?
ありがとうございました、
マイケル
osgi - pax-exam の問題を使用した OSGi バンドルのインストール
spock pax 試験拡張機能を作成しようとしていますが、サーバー モードを使用したバンドルのインストールに問題があることがわかりました。
これが私のコードです
遅延を増やしても、インストールされているバンドルが見つかりません。オプション mavenBundle が karaf の開始に影響しないことがわかります。間違ったバージョンまたは artifactId を配置すると、pax はそれについて通知しないためです。
誰でもこの問題について手がかりを持っていますか?
osgi - pax 試験でシステム パッケージのエクスポートを指定する方法
Pax 試験は、Apache CXF 分散 OSGi をテストするために使用されます。最近、apache felix 4.2.1 に更新しました。新しいバージョンの felix では、cxf 仕様バンドルおよびシステム バンドルによってエクスポートされたパッケージで問題が発生します。古い felix 3.x でこれが発生しなかった理由がわかりません。
ディストリビューションでは、これを felix 構成で制御します (使用する構成テンプレートを参照してください)。そこで、「org.osgi.framework.system.packages」プロパティを使用して、システム パッケージのエクスポートを定義します。
pax 試験を使用して同じことを行うにはどうすればよいですか。karaf 試験を使用してこれを行う方法は知っていますが、純粋なフェリックスに対して明示的にテストしたいので使用できません。
私はすでに CoreOptions.systemPackage をテストしましたが、エクスポートを追加して再定義することはできません。
osgi - pax 試験: 断片化されたバンドルを解決する
解決しました!クラスパスの問題でした。ありがとう
断片化されたバンドルをデプロイして解決したいと考えています。メソッド noStart() を使用すると、バンドル フラグメントの状態は INSTALLED のままですが、状態は RESOLVED になるはずです。したがって、バンドル ホストはそのリソースを認識できません。Apache Felix では、すべて正常に動作します。
私は何を間違っていますか?
よろしくお願いします!ローランド
osgi - Pax Exam 3.3.0 - ユーティリティ jar をロードするには?
OSGi テストに最新の Pax Exam (3.3.0) を使用しています。Pax Exam を立ち上げて実行し、バンドルを展開して開始しています。生活は良好です。
また、複数のテスト プロジェクトで再利用できるようにしたい、さまざまなファクトリやその他の便利な機能を含むユーティリティ プロジェクトもあります。Pax Exam pom.xml の依存関係として含まれている Maven プロジェクトです。
しかし、ユーティリティ jar 内に含まれるいずれかのクラスにアクセスしようとするとすぐに、ClassNotFoundException が発生します。クラスローダーをいじってみたところ、URLClassLoader を介してクラスを直接ロードできることがわかりました。それでも、ClassNotFoundException がスローされます。
ユーティリティ プロジェクトをバンドルにすることはできません。@BeforeClass アノテーション付きメソッドでユーティリティ コードを使用する必要があり、BundleContext インスタンスはまだ注入されていません。
Pax Exam 内でユーティリティ プロジェクトを取得するための最良/最も簡単な方法を誰か教えてもらえますか?
java - PAX-Exam テストでの ClassNotFound 問題のデバッグ
私は PAX-Exam テストを作成し、テスト対象のバンドルのすべての依存関係とその推移的な依存関係がすべて mavenBundle として追加されていることを確認しました。現在、「未解決のバンドル」タイプのエラーは発生していません。
また、クラスパスを出力して、テスト対象のバンドルの jar がクラスパスに追加されていることを確認しました。私はクラスパスを取得し、単純に java -cp com.my.namespace.Interface を実行しました。クラスパスでクラスが見つかるようです。
ただし、テストでそのバンドルからインターフェイスにアクセスしようとすると、実行時に ClassNotFoundException で失敗します。
これをさらにデバッグする方法についてのアイデアが必要です。
java - Pax Exam / Karaf - テスト セットアップでの機能のインストール
Karaf 機能を Pax Exam と統合テストしようとしていますが、config()メソッドに機能をインストールする方法がわかりません。
Pax Exam はバージョン 2.6.0 および Apache Karaf 2.3.2 です。
これは私の設定方法です:
個々のバンドルをインストールできますがmavenBundle("group", "artifact", "version")、Pax Exam で Karaf 機能をインストールするメカニズムはないようです。
Junit でアノテーションを付けたセットアップ メソッドで機能を実用的にインストールできます@Beforeが、@Inject でサービスを注入するには遅すぎます。
config()Pax Exam Testの方法で Apache Karaf Features をインストールすることはできますか?