Eclipse Virgo プロジェクトが リリース 3.0 を発表した。Spring DM サーバプロジェクトの Eclipse への移管がこれを持って完了となる。今回のリリースには,パズルの最後のピースとも言える Gemini Web コンポーネントが同梱された。このコンポーネントは現時点で,Web 開発用の OSGi エンタープライズテストをすべてパスしている。
Eclipse Virgo は Tomcat と同等のランタイム環境を提供する。単一のバンドル,あるいはバンドルのセット (PAR) をインストールして,それをサーバアプリケーションとして扱うことが可能だ。また,リージョンという概念の導入によって,ランタイムスペース (カーネルリージョン) とユーザがインストールしたプログラム (ユーザリージョン) を分離している。
以前のバージョンでは,ネストしたフレームワークを使ってリージョンの分離を実現していた。しかし先日のアップデートによって,Equinox のフレームワークフックで実装したパーティショニングを利用する バンドルグラフ がサポートされるようになった。Equinox の機能なので Virgo の外部でも,通常の Equinox ベースの OSGi ランタイムから利用することができる。新しいリゾルバフックをサポートしているなら,他の OSGi フレームワークへの移植も可能なはずだ。
もうひとつ今回のリリースで新しいのは,Web コンポーネント用の Jetty サポート (Tomcat もサポートする) バンドルだ。Equinox RT スタックの他コンポーネントとのさらに緊密な統合が,これによって実現されている。
リージョンの分離を実装するために,デフォルトのランタイムが Felix から Equinox に変更されている。ただし Felix Gogo シェルもデフォルトで (telnet および ssh 接続とも) 含まれているので,この点に気付くことはほとんどないだろう。
サーバと同様に,Web アプリにもフレームワークとして Snaps (以前は SpringSource Slices という名称だった) がある。Web アプリをオーバーラップする URL で同一サーバに複数登録して,相互にデータを共有することが可能だ。Snaps は WAB (OSGi 対応の WAR) がサービスあるいは URL を "ホスト" アプリケーションに登録するための手段と,ホストアプリケーション上で利用可能なインストール済コンポーネントをプログラムから (あるいは JSP タグライブラリを使用して) 動的に走査する方法を提供する。Snaps の実行には,今のところ Eclipse Virgo が必要である。Eclipse Virgo をサポートする IDE プラグインのセットも 現在開発 されている。
Web ベースの OSGi 開発を習得する上で,Spring のコンセプトの使用経験を多く持っているならば,Eclipse Virgo が OSGi の世界への近道になるだろう。Virgo には チュートリアル に加えて,ユーザとプログラマ用の資料 も提供されている。Virgo 3.0 は すぐにでもダウンロード 可能だ。