2008年6月16日月曜日

JRuby Rack

ちょっと古い話になりますが、我らが(?)Warblerが0.9.9にアップグレードされました!
Warbler 0.9.9にはJRuby Rackが同梱されていて、RailsとJava EEの連携がよりスムーズに行えるようになった…という話です(←まだ試してない)。


ということで、JRuby WikiJRuby Rackのページを簡単に訳してみました。


我流で訳しただけですが、参考になれば幸いです。
もし間違っているところがありましたらご指摘ください!





JRuby Rack

JRuby-RackはJavaサーブレット環境への軽量なアダプタです。JRub-Rackを使うと、Rackベースのアプリケーションを、何の変更も加えることなくJavaサーブレットコンテナ上で動作させることができます。

JRuby-RackはRack互換のRuby用Webフレームワーク同様、RailsおよびMerbをサポートします。

より詳しい情報はこちら: http://rack.rubyforge.org


目次

1 ダウンロード
2 機能
2.1 サーブレット・フィルタ
2.2 Goldspike互換のサーブレット
2.3 サーブレット環境との連携
2.4 JRubyランタイムの管理
3 フィードバック
4 ソース
5 ビルド


ダウンロード

JRuby-Rack 0.9 は初の公式リリースで、以下からダウンロードして頂けます:

http://repository.codehaus.org/org/jruby/rack/jruby-rack/0.9/jruby-rack-0.9.jar

JRuby-RackはWarbler0.9.9にも同梱されています。WarblerはRuby gemとしてインストールすることができます(jruby -S gem install warbler)。


◆機能◆

サーブレット・フィルタ
JRuby-Rackは主にサーブレット・フィルタとして動作します。
この場合、JRuby-Rackは静的コンテンツに対するリクエストを受け取り、Webサーバに仲介します。また多くのRubyアプリケーション同様、指定したURLに対応するファイルが存在しない場合のみ動的リクエストが発生します。


Goldspike互換サーブレット
JRuby-RackにはRailsServletのスタブが備わっているため、Goldspike用コンテキスト・パラメータの多くを解釈することができます(たとえばpoolsize configuration[プールサイズの設定]など)。これによりGoldspikeとの互換性が保たれ、移行の際に役立ちます。

なお、静的コンテンツはRackにより提供されますが、この際にはJRubyのランタイムを取得する必要があります。JRuby-Rackをサーブレット・フィルタとして設定した場合と比較して、静的ファイルを処理する際のスループットはかなり低下します。ご注意ください!


サーブレット環境と連携
グローバル変数 $servlet_context、もしくはRackの環境変数である java.servlet_context を用いて、あらゆるアプリケーションからサーブレットコンテキストにアクセスできます。
サーブレットのリクエスト・オブジェクトには、java.servlet_requestというキーでアクセスします。また、サーブレットのリクエスト属性はRack環境へと受け渡されます。


Rackの環境変数およびヘッダは、サーブレットのリクエスト属性で上書きされる場合があります。Javaサーブレットのセッションは、RailsまたはMerbのデフォルトのセッション・ストアとして使用されます。
Stringをキーとし、String、数値、boolean、Javaのオブジェクトを値として構成されるセッション属性は、自動的にサーブレット・セッションにコピーされます。


JRuby ランタイム管理
JRubyのランタイム管理およびプーリングは、フレームワークにより自動的に処理されます。Railsの場合、ランタイムはプールされます。Merbやその他のRackアプリケーションの場合はランタイムが一つ生成され、これがすべてのリクエスト間で共有されます。


フィードバック
現在のところ、JRuby-Rack専用のメーリングリストやバグトラッカーは用意されていません。フィードバックはjruby-userメーリングリストへ投げていただくか、JRuby JIRA issue trackerに上げてください。

ソース
現時点では、JRuby-Rackのソースはcodehaus上のSubversionリポジトリ jruby-contrib から入手できます:

http://svn.codehaus.org/jruby-contrib/trunk/rack


ビルド
事前にJRubyをインストールし、buildrとrackのgemをインストールしてください。

jruby -S gem install buildr rack

JRuby Rackのコードをそのディレクトリにチェックアウトします。

svn co http://svn.codehaus.org/jruby-contrib/trunk/rack
cd rack

依存性を解決し、コードをコンパイルしてjarファイルを生成します。

jruby -S buildr package




原文:http://wiki.jruby.org/wiki/JRuby_Rack

0 件のコメント: