Ruby/AJP開発記(5) 名前募集中

Ruby/AJPを利用したRails runner, "AJP Rails"の開発に着手。なんか、もっと良い名前募集中。

ActionController::AbstractRequestなんてのあるから、てっきり通信プロトコルに応じてサブクラス化して使ってるのかと思ったら、mod_ruby版もFastCGIもSCGIも、みんなActionController::CgiRequestを使いまわしてるんね。Dispatcherの実装もCgiRequestがハードコードされてるし。DHHの考えがよくわからない。

セッション管理をCGI::Sessionに頼ってるから、SCGIの人とかの考えとしてはその辺の再実装は馬鹿馬鹿しいっていう判断だろうか。うーん。Net::AJP13::RequestをそのままAbstractRequestやCGI互換にするのは難しいなー。Adapterをかますのが正攻法だけれど。それとも、オブジェクト構築後にメソッド名変えたり足りないのを足したりする変換モジュールでextendしてしまうのもrails的か。

あぁ、あと、jk_connectorのロードバランサーのセッション認識はクッキー名JSESSIONIDに固定されているから、CGI::Session側で対処しないとね。幸い、CGI::Sessionはその辺は柔軟。

どうでもいいけど、 ActionController::AbstractRequest#protocol

Return ‘https://’ if this is an SSL request and ‘http://’ otherwise.

って、それはprotocolじゃなくschemeと言わんか>DHH