Spring Roo フレームワークの最新バージョンでは,データベースのリバースエンジニアリング,Google Web Toolkit (GWT) バージョン 2.1 の機能,Google App Engine へのアプリケーションデプロイがサポートされ,OSGi ランタイム環境として Apache Felix が採用されている。その Spring Roo 1.1.0 GA のリリースが先週 発表された。同時進行で Google Web Toolkit,SpringSource Tool Suite (STS),AspectJ,AJDT の各開発チームは,GA リリースのサポート作業を完了している。
インクリメンタルなデータベースリバースエンジニアリング
既存のリレーショナルデータベースをインクリメンタルにリバースエンジニアリングして,対応するフィールドに Roo エンティティを自動生成することが可能になった。Roo のデータベースリバースエンジニアリングは,検出したすべてのフィールドに対して型間宣言 (inter-type declaration/ITD) を置くことによって,リバースエンジニアしたエンティティによる双方向メンテナンスを実現する。さらに存在しなくなったエンティティの削除 (削除対象外として設定されている場合は除く) や,複合主キーなどの状態を (識別クラスの生成と更新によって) 自動操作する機能なども提供している。
Spring MVC の拡張
拡張機能のひとつに JSPX ファイルの自動ラウンドトリップがある。これにより開発者が基になる JSPX ファイルを編集すれば,Roo が自動的にその変更を検出するようになる。また Roo が行うファイル変更はすべて,手動による変更内容にマージされる。さらにこの JSPX ラウンドトリップサポートは,マークアップ作成をカプセル化するタグライブラリのより有効な活用という点でも改善されていて,Roo 1.0 では200行の記述を要した JSPX ファイルが,Roo 1.1.0 では 12 行で記述できるようになった。マークアップの繰り返しを JSPX ベースのタグに置き換えることにより,編集結果をアプリケーションの全ページに反映することも可能だ。また Spring MVC 基盤には,YouTube や Google Video,Flickr,Picasa,Scribd,SlideShare,Google Maps,Twitter など,他のソーシャルメディアサイトからの組み込みコンテントに対するサポートが新たに追加されている。
GWT 2.1 サポート
Spring Roo と Google Web Toolkit の相互運用性が強化され,Roo フレームワークによるアプリケーション開発で,RequestFactory や MVP フレームワーク,データバインディングウィジェットといった GWT バージョン 2.1 の機能が利用できるようになった。また先日リリースされた SpringSource Tool Suite 2.5.0 では,Google Plugin for Eclipse を用いた Google Web Toolkit 開発がインストール時点でサポートされている。
Google App Engine
Google App Engine (GAE) 環境にデプロイする Roo アプリケーションの構築が可能になった。スケーラブルなアプリケーション構築へのアプローチとなるこのクラウドコンピューティング配信ソリューションには,無料クォータ (free usage quota) や Google App Engine for Business などもオプションとして含まれている。さらに SpringSource Tool Suite (STS) は Roo が生成した Google App Engine プロジェクトをサポート対象に加えて,その永続化処理に必要な Data Nucleus 拡張プラグインのライフサイクルを管理するようになった。
OSGi ランタイム環境
モジュール化された,リモート依存性を解決可能なクラスパス管理モデルに基づくアドオンインフラを実現するため,Roo 1.1.0 ではアーキテクチャの基盤を OSGi に移行した。またシェルは,サービスコントロールランタイム (Service Control Runtime/SCR) と OSGi ランタイムフレームワークであるApache Felix をコンポーネント管理に,OSGi バンドルレポジトリ (OSGi Bundle Repository/OBR) をバンドル解決に使用するようになった。今回のバージョンでは OSGi コンテナの開始,インストールとアンインストール,OBR バンドルの情報取得など,OSGi コンテナにアクセスするためのコマンドもいくつか提供されている。
新リリースの他の機能としては Apache Solr 検索サーバのサポート,JSON サポート,シリアライズ可能なアドオン,RooBot クライアント,PGP 署名セキュリティなどがある。InfoQ では Spring Roo プロジェクトの Ben Alex 氏にインタビューし,フレームワークの最新リリースと今後のロードマップについて話を聞いた。
InfoQ: 先日の SpringOne カンファレンスでは,Spring Roo を戦略的製品として紹介していましたね。アプリケーションへの採用を計画している開発者に対して,その意味するところを説明して頂けますか?
Spring がローンチされ,JVM アプリケーション開発の生産性と品質が劇的に発展してから10年が過ぎました。よりよいデザインパターンとAPI,ランタイム実装の提供を出発点とした Spring は,その後のさまざまなツール導入によって,開発効率をさらに向上させてきました。その結果として私たちは SpringSource Tool Suite (STS) や Spring Roo など,さらに戦略的な投資を行うに至ったのです。
戦略的プロジェクトのひとつとして,SpringSource では Spring Roo に大きな投資を行います。このことは,プロジェクトにおいてフルタイムで作業するエンジニアの数だけでなく,SpringSource Tool Suite や AspectJ などの関連技術,そしてもちろん Roo 自体の開発を通じて私たちが注力する,Roo 関連の相互運用性のレベルの高さによっても証明されています。さらに私たちは Google や Salesforce.com,Neo Technologies など他組織とのコラボレーションを通じて,広範な Spring Roo サポートを提供することも重視しています。これらはすべて Roo を支援する重要な戦略的投資を通じて,Spring Roo ユーザに安心感を提供するためのものなのです。その成果は,頻繁なリリースと機能発展という形で製品に反映され続けています。
InfoQ: カンファレンスでは SpringRoo と GWT のパートナーシップも発表されています。提携の詳細と,開発者にとってのメリットを教えてください。
Google と SpringSource は,両社の持つ多くの技術に関する相互運用性を向上する目的で,ほぼ1年にわたって緊密にコラボレーションしてきました。Spring Roo と GWT の統合はその成果の一例です。新たな Roo 1.1 リリースではセルウィジェットや MVP フレームワーク,リクエストファクトリといった,GWT 2.1 1 の新しいエンタープライズアプリケーション開発機能が数多くサポートされています。数分もあれば Roo を使って Spring バックエンドを構築し,GWT クライアントとして使用することができるのです。さらに完成した GWT アプリケーションは GWT クライアントの構造として,GWT チームのベストプラクティスの推奨事項を満たしています。この推奨アーキテクチャにはモバイルクライアントのサポートに加え,遅延と帯域の最適化されたリモートコールなどのメリットもあります。
InfoQ: Roo プロジェクトの新機能と拡張に関する将来的なロードマップはどのようなものでしょうか?
今後数ヶ月については,Roo 1.1.1 と Roo 1.1.2 が中心になります。これら改良リリースでは GWT と Google App Engine サポートの改善に加えて,ドキュメントの追加や先進的なアドオン開発をアシストする "Joey" インフラストラクチャの完成に重点を置いています。Roo 1.2 1 に関しては Android クライアントや Java Server Faces 基盤,Ant/Ivy サポート,Maven マルチプロジェクト統合といった興味深い分野のプロトタイプ作業を行っているところです。イシュートラッカ (Issue Tracker) にはすでに数百件の要望が寄せられていますし,追加提案や Roo に追加すべき機能の優先付けを助けてくれる投票については,私たちはいつでも歓迎しています。