Seam3によるWebプログラミング

2011年3月28日(月)
皆本 房幸

Seam3のモジュール

Seam3は、CDI Portable Extensions仕様の上で開発されたポータブルな拡張モジュールであり、特定ベンダーのJava EEサーバーに依存しません。Seam3では、各モジュールが独立して開発されているので、アプリケーションは必要なモジュールだけを選択して使うことができます。

モジュール開発者がモジュールを公開する方法としては、Mavenリポジトリに登録しておくのが便利です。アプリケーションのpom.xmlにおいてdependenciesに登録しておくだけで、CDIコンテナの初期化時に、自動的にその拡張モジュールがロードされ、利用可能になります。以下は、Seam3のSeam Facesモジュールの設定例になります。

以下に示す表1にSeam 3.0.0が提供するモジュールの概要を、表2にSeam3/CDI向けの開発ツールをまとめます。詳細は、表中のリンクを参照してください。

表1: Seam 3のモジュール
モジュール名概要説明
Seam SolderCDIベースのアプリケーションや拡張モジュール、フレームワークのための汎用ライブラリ
  • CDIのプログラミング・モデルの強化
  • CDIの抽象基底クラスの提供
  • CDIで定義されたアノテーションリテラルのセット
  • EL式の評価
  • リソースのロード
  • ロギング
  • BeanManagerの取得
  • プロパティの操作
  • Default Beans
  • Generic Beans
Seam ConfigurationCDI BeanのメタデータをXMLで記述する
  • タイプセーフな設定
  • 拡張可能
Seam PersistenceCDI Beanに対してトランザクション管理と永続性を提供する
  • 非EJBに対して簡易トランザクション・アノテーションを提供
  • Seam管理永続コンテキストの提供
Seam ServletServletとCDIプログラミングモデルの統合
  • ServletイベントをCDイベントへ変換して通知
    Servlet Contextライフサイクル・イベント、リクエスト・ライフサイクル・イベントなど
  • Servletオブジェクトのインジェクション
  • HTTPエラーの例外処理
Seam Securityセキュリティ関連の機能を提供する
  • 認証
  • ID管理
  • 外部認証サービス(OpenID、SAML)
  • 認可
Seam FacesJSFとCDIプログラミングモデルの統合
JSFと他のSeamモジュールとの統合
  • @RenderScopedの提供
  • JSF Flashオブジェクトのインジェクション
  • @ViewScopedの提供
  • JSF Messageのインジェクション
  • バリデータ
  • ビュー・アクション
  • JSFフェーズ・イベントのCDIイベント化
Seam Internationalロケール、タイムゾーン、言語を設定する統一的な方法を提供する
  • ロケールのインジェクション
  • タイムゾーンのインジェクション
  • メッセージのインジェクション
Seam Catch統一的な例外処理の基盤を提供する
  • 例外をCDIイベントとしてキャッチ
Seam RemotingWebページがCDI Beanと連携できるようなAjaxベースの技術を提供する
  • Javaスクリプトでサーバー側のBeanにアクセス
  • クライアント側でのBeanバリデーション・サポート
Seam RESTJava EEやサードパーティの技術を統合する軽量なモジュール
特定のCDIやJAX-RS実装とは独立でJava EE 6実装上でポータブル
  • Beanバリデーション
  • テンプレートを使ったHTTPレスポンスの生成
  • RESTEasyクライアント・フレームワークとの統合
Seam ValidationHibernate ValidatorのCDIによるサポート
  • バリデータのインジェクション
Seam WicketCDIプログラミング・モデルとApache Wicket Webフレームワークとの統合
  • Conversationの操作
表2: Seam3/CDI開発ツール
モジュール名概要説明
Seam Forgeラピッドアプリケーション開発のためのコアフレームワーク
  • forgeのシェルを起動し、コマンドを実行することで対話的にプロジェクトを生成することができる
  • forgeのコマンドはプラグインとして開発可能
JBoss Tools 3.2CDIを使った開発をサポートするEclipseプラグイン
  • 新規作成Wizard(Bean、デコレータ、インターセプタ、アノテーションなど)
  • EL式で参照されるBeanの入力補完
  • beans.xmlでのBeanの入力補完
  • @InjectでインジェクトされるBeanの候補をメニュー表示
レッドハット株式会社

JBoss コンサルタント。日本 JBoss ユーザ・グループ(www.jbug.jp)発起人、翻訳プロジェクトリーダ。 著書『JBoss入門』『JBoss徹底活用ガイド』(共著)他。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています