DeltaSpikeモジュールの概要

久しぶりのブログへの投稿になります。当ブログではJava EE仕様のバックボーン的な重要な仕様であるContexts and Depenency Injection (CDI)とその拡張モジュールについて書いています。特に、CDI拡張モジュールについてはDeltaSpikeの活動について注目しています。しばらく更新が滞っていましたが、WildFly 10などJava EE 7ベースのアプリサーバーが普及するとアプリケーション開発の現場でCDIを使う機会が益々増えると思いますので、またブログを再開したいと思います。今ままで同様、不定期の更新になるかとは思いますが、今後ともよろしくお願いします。

DeltaSpikeはポータブルなCDI拡張モジュール

Apache DeltaSpikeはオープンソースで開発されているCDIの拡張モジュール集です。DeltaSpikeは、CDIコンテナの代表的な実装であるWeldやOpenWebBeansの両方で動作し、以下のアプリサーバー上でテストが行われています(Jenkins上でのビルドはこちら)。

  • JBoss AS7
  • JBoss WildFly 8
  • Oracle GlassFish 3
  • Oracle GlassFish 3.1
  • Oracle GlassFish 4
  • Oracle WebLogic 12c

このようにDeltaSpikeの大きな魅力の一つは特定のCDIコンテナやアプリサーバーに依存しないポータルブルなモジュールを開発しているということです。DeltaSpikeはオープンソースですので、ユーザからのフィードバックを得て機能を改善していきます。これらの中で有用なものは将来のCDI仕様やJava EE仕様そのものに影響を与えていくと思います。実際、CDI 2.0 (JSR-365)の活動の中でもDeltaSpikeからのフィードバックが期待されています。その意味で、DeltaSpikeはすぐに使える便利ライブラリを提供するプロジェクトというだけでなく、CDIの将来の動向を知る上でも重要なプロジェクトだと言えるでしょう。

DeltaSpikeの提供モジュール

1年前に投稿したブログの記事ではDeltaSpikeのバージョン1.0について書きましたが、現在ではバージョン1.5まで開発が進んでいます。ここで、今ままでの振り返りを兼ねて、現在のDeltaSpikeの提供モジュールについてご紹介します。以下の表はDeltaSpike 1.5が提供するモジュールの概要になります。

表1:DeltaSpike 1.5のモジュール
モジュール 説明
Core DeltaSpike APIとユーティリティクラスを定義する基盤となるもの
Bean Validation EJBやManagedBeanのようなビジネスオブジェクでバリデーションをするときに使えるCDIを使ったBeanバリデーション
Container Control CDIコンテナの起動/シャットダウンと関連するコンテキストのライフサイクル管理をするためのもの
Data ボイラープレートなコードを減らすために宣言的クエリを使えるようにJPAを改善するためのもの
JPA トランザクション・コンテキストとスコープのためのもの
JSF タイプセーフなビューの構成、マルチウィンドウ処理、新しいスコープ(WindowScoped, ViewScope, ViewAccessScoped, GroupedConversationScoped)などCDIを使ったJSF向けの統合
Partial-Bean インタフェースや抽象クラスを手で実装する代わりにジェネリックハンドラーを実装するためのもの
Scheduler Quartz v2(デフォルト)やジョブクラスのためのcron式をサポートする他のスケジューラとのシンプルな統合のためのもの
Security メソッド呼び出し時に割り込んでセキュリティをチェックするためのもの
Servlet Servletオブジェクトでインジェクションを可能にしServletイベントをCDIイベントとして伝播させるようにするServlet APIとの統合のためのもの
Test-Control CDIベースのテストを簡単に書けるようにするためのもの

DeltaSpikeモジュールの使い方

DeltaSpikeの機能は独立した複数のモジュールとして提供されています。各モジュールはMavenのライブラリとして提供されていて、開発者はモジュールを選択してpom.xmlの依存ライブラリとして設定します。つまり、アプリケーション開発者はそのプロジェクトが必要とするモジュールだけを選択して取り込むことが可能です。

Java EEアプリケーションであればJSFやJPAのモジュールを含むDeltaSpikeのフル機能を使うことができます。しかし、JSFやJPAを使わないJava EEアプリケーションであってもDeltaSpikeを十分活用することができます。GUIはJSFではなくてJavaScriptライブラリを使うという場合は、JSF以外のモジュールについては利用可能です。Java SEアプリケーション開発の場合は、CDIコンポーネント開発を楽にするユーティリティや単体テストのためにCoreモジュールを使うことができるでしょう。

当ブログでは、今後、DeltaSpikeの代表的なモジュールについて紹介していこうと考えています。CDIを使って開発をするときの単体テストの方法は切実な問題だと思います。さらに、テスト時に、本番環境とは異なるテスト専用のBeanに差し替える方法も重要です。次回はこれらのテーマをカバーするCoreモジュールのProjectStageとTest-Controlモジュールについて紹介する予定です。

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。