私は、Java EE コンテナのサービスと非常によく似たサービスをサード パーティの拡張コードに提供する必要があるアプリケーションを計画しています。基本的に、このアプリが行うことは、一連の作業項目を見つけ (現在は Hibernate を使用する予定です)、それらを作業項目のコンシューマーにディスパッチすることです。
作業項目のコンシューマーは、項目の詳細をロードし、サード パーティの拡張コードを呼び出します。サード パーティのコードが失敗しなかった場合は、作業項目の状態を更新し、完了したすべての作業をコミットします。
これを Java EE アプリケーションとして書いているわけではありません。ただし、基本的に、私のアプリケーションはコンテナーの多くのサービスを提供する必要があります。トランザクション管理、接続プーリングと管理、およびある程度の展開サポートを提供する必要があります。A) これらを直接提供するか、B) それらを提供するサードパーティのライブラリを選択するにはどうすればよいですか。大規模なプロジェクトの要件により、拡張機能の作成者は Hibernate を使用します (それが違いを生む場合)。
私が言及したすべての機能の中で、私が最もよく知らないのはトランザクション管理であることに注意してください。コンテナーで実行されている拡張コードにこのサービスを提供するにはどうすればよいですか?