jar 依存関係 (エンティティークラス、EJB リポジトリー、persistence.xml) としてパッケージ化された持続性ユニットを使用する Java-ee Web アプリケーションがあります。
Web アプリケーションの受け入れテストを実行するには、パッケージ化された persistence.xml のプロパティをオーバーライドする必要があります。具体的には、次のプロパティを設定して、デフォルトでアクティブな eclipselink共有オブジェクト キャッシュを無効にする必要があります。
<property name="eclipselink.cache.shared.default" value="false"/>
これが必要なのは、受け入れテストが dbunit を使用してデータベースを直接準備/クリーンアップするためです。これらの変更により、eclipselink キャッシュが失効状態になります (これらの変更には永続性ユニットが関与していないため)。
java-ee (または Glassfish 固有) で、jar にある persistence.xml のプロパティをオーバーライドする方法はありますか (テストの実行時にデプロイされる Web アプリケーションの war ファイルから開始)?
たとえば、テスト展開に固有のjar依存関係を構築するなど、他の方法があるかもしれませんが、このルートは、persistence.xmlの1つのプロパティのみをオーバーライドするため、複雑に思えます。