JBoss は先日,JBoss Developer Framework バージョン 1.0 をリリースした。名前とバージョンからはソフトウェアのリリースのように思われるが,実はこのフレームワーク (略して JDF) は,JBoss および JBoss AS に関連するすべてのテクノロジを対象とした,中央集中型のドキュメントハブ だ。今回の拡張によって複数のガイドから別々の部分を (Hibernate のガイドの一部分と Seam のガイドの別の部分というように) 拾い集める必要がなくなり,単一のドキュメントリソースに注目すればよいようになった。
JDF の重点は,ソフトウェアスタック全体のすべてのレイヤ (例えばユーザインターフェースと永続化レイヤ) について,開発者にその使い方を示すことに置かれている。ひとつの JBoss テクノロジにのみ関連する (Hibernate ガイドのような) 資料ならば,現在でも簡単に見つけることができる。しかしエンド・ツー・エンドでアプリケーションを開発している時,公式ソースから "全体像" の取得方法についての公式な情報を見つけ出すのは難しい。
この目的のために JDF には,50 を越える クイックスタート が Maven プロジェクトの形式で用意されている。興味深いのは,大部分のクイックスタートが複数のソフトウェアレイヤ (および対応する JBoss テクノロジ) を扱っていることだ。これらはチュートリアルとしても,より複雑なアプリケーションのベースとしても利用することができる。いくつか例を挙げると,
- ejb-in-war quickstart - JSF,EJB を使用
- greeter quickstart - EJB, JPA, JSF, JTA, CDI を使用
- helloworld-html5 quickstart - HTML5, JAX-RS, CDI を使用
- wicket-ear quickstart - JPA, Apache Wicket を使用
- kitchensink quickstart - Validation, EJB, JAX-RS, JPA, JPA, JSF, CDI を使用
クイックスタートは初心者,中級,上級向けに明確に分類されている。利用には Maven の他,JBoss Developer Studio (あるいは Eclipse と JBoss Tools) が必要だ。当然ながらデプロイ対象は JBoss AS だが,RedHat/JBoss の PaaS OpenShift にデプロイする方法が用意されているものもいくつかある。ソースは GitHub で公開されている。
クイックスタートは出発点としては最高だが,完全な機能を備えたアプリケーションではない。"現実的" な例を示すために JDF では,"TicketMonster" アプリケーション の開発に関する詳細な資料を用意している。これは最新の Java EE6 テクノロジ (の JBoss 実装) を使って開発された完全なアプリケーションだ。この TicketMonster も単一ビューアーキテクチャに注目せずに,モジュール毎に別々のテクノロジを紹介している点が興味深い。
JBoss は Java EE 6 において,エンタープライズアプリケーション開発用の推奨オプションに採用されている。そのため JDF にも Spring や Seam, Java EE 5 ユーザ向けの マイグレーションパス に関する説明の章がある。中でも新規開発が 事実上停止している Seam からの移行パス は特に重要だ。Seam の現在のユーザに対しては,Seam 3 が開発されることはないので CDI/DeltaSpike にマイグレートしなければならない,と明確に通知するとともに,自身のマイグレーション作業の実施体験についての報告を 推奨している。
JDF の最後は,JBoss AS 上でテスト済みの完全なアプリケーションスタックを 定義 した Maven BOM (Bill Of Materials) ファイルのセットである。Maven BOM ファイルは依存性を格納した特殊な POM ファイルである。Maven 2.0.9 で導入されたもので,"import" スコープ を通じてプロジェクトで使用することができる。これら BOM ファイルは "JBoss stacks" の下にグループ化され,ユーザが選択したアプローチ ( Errai/GWT アプリケーションなど ) に対応した推奨プロジェクトの構造を構成するために必要な依存関係を定義する。JBoss AS 用の BOM ファイルは自由にダウンロード可能だが,JBoss EAP 用を取得するには Redhat アカウントが必要である。
JSF 自体は GitHub 上にホストされている。公式のロードマップ は存在するが,外部からの コントリビューション に対してもオープンである。ネットワーク経由のサポートも,2つのフォーラムと IRC チャット を通じて提供されている。