私は休止状態に裏打ちされた春データJPAを使用して実装されているデータアクセス層を使用していますRCPベースのアプリケーションを開発しています。アノテーションされたドメインクラスは1つのjar/bundleにあり、SpringリポジトリとSpringのconfigはデータソース、エンティティマネージャ、トランザクションマネージャをインスタンス化するために別のバンドルに入っています。これらのjarファイルはプロジェクト全体で他の非RCPアプリケーションによって使用されます。私のプラグインまたはOSGIバンドル(jta、antlr、commons collectionsなど)を介してターゲットプラットフォーム内でラップされ公開されているhibernate 3.6.8 jarおよび依存関係Eclipse Gemini Blueprintを使用して、RCPアプリ内でバンドルスプリングコンテキストを管理しています。のEclipse RCP、春、Hibernateのクラスローディング問題
DALバンドル春のコンテキストはジェミニエクステンダーによって初期化されて、私はorg.hibernate.ejb.HibernatePersistenceまたはjavax.persistence.spi.Persistenceproviderに通常関連ClassDefNotFound例外、どちらかを休止得ます。私は、すべてのhibernate jarと依存関係を、javaxパッケージとhibernateパッケージをエクスポートする単一のプラグインに入れてみました。私は制御しているプラグインのマニフェストにEclipse Buddyポリシーを設定しようとしました。
Geminiを使用してEclipse RCP環境でSpringとHibernateの間のこのクラスのロードに関する問題を見つけることができませんでした。 。私はすべてのHibernate JARをドメインとDAOクラスと同じプラグインに入れることで、RCP内の過去の休止状態のDAOプロジェクトを実行しました。そのため、クラスだけがエクスポートされます。
この時点で私は、OpenJPAのかEclipseLinkのような、よりOSGI優しいJPAプロバイダーに移動すると、オプションではないと思います。
春のジャーと依存関係を1つのプラグインに入れ、バウンダリーポリシーを設定した別のプラグインに休止状態のジャーと依存関係を入れることを示唆していました。関連するjarファイルのほとんどがOSGiバンドルであると、これは汚れているようです。
私は、DALの瓶を保持しているプラグインを作成瓶、及びスプリングORMの瓶を休止状態なので、彼らはすべてお互いを見ることができる可能性があるとします。
この作業を取得するためにきれいな方法はありますか?あなたはそれを所有している場合
ありがとうDuncan。私はHibernateで動作するJPA DAOソリューションを取得するために同様のアプローチをとっていましたが、Hibernate jarと依存関係を1つのプラグインにバンドルし、ドメインモデルプラグインとDAOプラグインでバディロードを使用することでSpring Data JPAはありませんでした。私はそれが良いメンテナンスオプションではないので、第三者のマニフェストを変更したくなかった。結論として、クラスローダーの問題のためEclipse RCP環境でSpring Data JPAを使用して放棄しました。 – KWilson