リリースプラン

各ポートレットと PAL Portal のリリース計画を立ててみる。まず、

  • MyFaces ブリッジ 0.8 リリースする (名前を Tomahawk ブリッジに替えたいところ・・・)

たぶん、現状のものでいけるとは思うが、Liferay と JBoss Portal で動作確認して、動くなら、リリース。でも、javax.faces.STATE_SAVING_METHODについては、server のみサポートにしておこう。client については、次で考えることにする(clientでも動けば、MYFACES-434に終止符を打てるんだけどな)・・・。

  • TODO リスト、アドレス帳、ノートパッド、VFS ポートレットをリリースする

MyFaces ブリッジがきちんと動いているなら、これらのポートレットもLiferay や JBoss Portal で動くはず。というわけで、現状、Jetspeed2 でしか、動いていない状況を変えたい。アドレス帳は登録時に日付がおかしい問題があるのでそれだけは直す必要がある。ブログポートレットは、次の Teeda のリリースが必要なので、基本的には、少々待ちにする(まぁ、パッチを当てたリリース物で回避してもいいけど、これらの作業をしている間に次のリリース時期になっているような気もする)。

  • PAL Portal beta1 をリリースする

J2 デスクトップ版のリリースは、ちょっと質的に厳しい気もするので、普通の J2 にデコレータを作成して、それをリリースしようと思う。J2 デスクトップの質的な話は、Steve が何か作業すると思うし、進んでいなかったら、PAL Portal beta1 のリリース後に考えよ・・・。

とりあえず、以上のことを数週間のうちに完了させたいところ(MyFacesブリッジに結構はまったから、考えていたプランより遅れ気味・・・)。ここまでできたら、MyFaces ブリッジの client 状態サポートや新規ポートレットを考えよう。

MyFacesブリッジ

ライフサイクルで置き返しているのだが、これだと、ResponseWriterがJSFの実装によってはうまく動かないことが判明。というか、やりかたとしては、ライフサイクルじゃなくて、RenderKitFactoryを差し替えるのが正しい気がする。というわけで、再検討しよ・・・。

MyFacesブリッジ

コミット。たぶん、これで、変な JSF の実装をしてない限り、すべてのポータルで動くことを期待。結局、かなり、いろいろなことにチャレンジしたけど(3回くらい作り直した気が・・・)、最終的には、JSF のライフサイクルを差し替えて、そこで、ResponseWriterをFacesContextに入れるようにした。本当は、ResponseWriterのcloneWithWriterでResponseWriterを作成したかったんだけど、ライフサイクルのrenderのところでは、まだ、setされていないからTomahawkのHtmlResponseWriterImplをnewすることにした。他に ResponseWriterを差し替える、何か良い方法はないだろうか(詳しい方、お願いします~)・・・。実装的には、UIComponentTagのdoStartTagでResponseWriterがsetされていなければ、入れるようになっていたけど、それ以降で出力される前で差し替える良い場所はあるのだろうか・・・。

まぁ、細かい問題はあると思うけど、Liferayでも動いたから、ほかのでも動くだろう・・・。はぁ、時間がかかったな・・・。でも、いろいろと学んだ気がする。