GAEに適したJSF2.0実装

はてなに書く最初の記事がこれか、という気もするけど。

Google App Engine(以下GAE)上でJSF2.0を動かす場合、最初の候補になるのはJSF2.0のRIであるMojjaraだと思う。
ところがこいつはクセもので、GAEで動かすためにはパッチあてなどが必要でめんどくさい上、Cold Start(Spin up)の時間もよろしくない。
これはGAEに最適化されていないフレームワークの宿命だけど。

で、よく考えると今はMyFacesもJSF2.0に対応している。おまけにGAEのサポートもある。
というわけで、導入のしやすさとSpin up時間を簡単に比較してみた。
対象は以下の二つ。

比較内容はNetBeans6.9でGAEにデプロイ可能なJSFプロジェクトを作るまでにかかった手間(これは主観・・・)と、自動生成されるindex.xhtmlをGAE上で動かしたときのcpu時間。

結果、この評価だとMyFacesに軍配。
MyFacesだとパッチあてが不要で動くのと、必要なライブラリが最初から揃ってるのがいい。
 Mojjaraでも最初のパッチあてと必要なライブラリをそろえてしまえば負担はいっしょなんだけど、最初のとっつきやすさは重要だよね。
・自分が試した時間帯だとspin-upのcpu時間はMojjara:5500ms MyFaces:4800msとMyFacesの方が早い(違いが体感できるレベル)
もちろんこれだけでMyFacesの方がイイというわけではないんだけど、これまでGAE+JSFでMojjaraを使ってきた人は試してみる価値があると思う。
自分も今後しばらく試してみます。

ちなみに、JSF各実装をGAEで動かす方法は以下を参考にどうぞ。
Mojjara:http://in.relation.to/Bloggers/WeldJSF20AndGoogleAppEngineNavigatingTheMinefieldPart1 ※com.sun.faces.config.WebConfigurationへのパッチが必要
MyFaceshttp://myfaces.apache.org/core20/googleappenginesupport.html

*1:Coreのみ。Extensionを付けたら遅くなりそうね・・・