Apache MyFaces Orchestra
Apache MyFaces Orchestraという新プロジェクトがスタートしています。公式ページ冒頭の説明によれば「永続化レイヤとWebフレームワークを結びつける単純な方法を提供するのが目的」とのこと。MyFacesのサブ プロジェクトなのでJSFの利用が前提で、永続化レイヤの方が基本的には何でもOKなようですが、JPAを使うケースが多いよう。
- マイコミジャーナル > Apache MyFaces Orchestra発足 - Webアプリ開発の単純化を目指す (2007/06/26)
Orchestraは、「カンバセーション」(複数のリクエストにまたがる可能性のあるスコープ) の間、永続化レイヤのセッション (JPAのEntityManagerなど) をオープンしたままにします。Managed Beanの定義は、JSF仕様で定義されたManaged Bean構文の代わりに、Springの定義を使って、カンバセーション スコープであることと、カンバセーション名を定義しておきます。
カンバセーション スコープのManaged Bean内の@PersistenceContextアノテーションに対して、OrchestraがインジェクトするJPA EntityManagerは、1つのカンバセーションの間では、いつも同じEntityManagerインスタンスになります。メソッドに@Transactionalアノテーションを付けておけば、メソッドの最後にEntityManagerのフラッシュとコミットをやってくれます。
- http://myfaces.apache.org/orchestra/myfaces-orchestra-core/
- http://wiki.apache.org/myfaces/Best_Practices
リクエスト スコープよりも長いカンバセーション/ダイアログを扱うための他のフレームワーク JBoss Seam、Shale Dialog、Spring Annotationsとの比較は、こちらから。