MyFaces

<MyFaces>ようやく、VFSポートレットも基本機能が終わり、細かいところを実装していくか~、と思ったら、問題発生。どうも、ポートレット上でのMyFacesのセッション管理がおかしい。セッションが、PORTLET_SCOPEでなく、APPLICATION_SCOPEで管理されているように思う。つまり、1つのポートレットアプリケーション上で、複数のポートレットを配備しようとすると、そのアプリケーション内で、共有されているような・・・。これって、結構、致命的な問題の気がするのだが・・・。うーん、まずは、MyFacesのコードを確認するしかないな・・・。この状況だと、MyFacesもビルドする環境が必要そうだな。

早速、ちらっと、MyFaces のコードを見ると、一応、PORTLET_SCOPE で管理する雰囲気がある。あら?なぜ、うまく動いていないのだろう??うーん、もっと細かく見ないとわからん。

VFSポートレット

<VFSポートレット>ようやく、基本的なダウンロードとアップロードの実装が完了。というか、ここの部分の実装が山場だからな・・・。結構、簡単にいくのかと思ったら、そう甘くはなかった。結局、MyFacesGenericPortlet まわりでいろいろと変更を加えることになった。アップロードするためには、processActionでMultipartRequsetWrapperをかませるか、確認して、さらに、そのまま、MultipartRequestWrapper じゃ、いかんかなということで、extends して新たに作り、commons-fileuploadは、1.1 じゃないと、PortletFileUpload をサポートしていないので、Graffito がもっているポートレットのための FileUpload を持ってきて入れたりして、アップロードを実現することになった。いろいろやって、MyFaces コードを見たけど、いまいち、設計の美しさに欠けると感じる。MultipartReqeustWrapper にしても、これは、インターフェースにしておいた方が良いような気がするし。まぁ、苦労したけど、動いたので、よしとしておくか・・・。

<SpikeSource>そういや、ビルジョイも取締役にもなったような話を見たけど、SpikeSource がどんな会社なのかの説明を IT Pro でしていた。なるほどねぇ、確かに、一番乗りでその分野を開拓すれば、成功するのかもと思った。

MyFaces

<MyFaces>どうも、actionでBeanのメソッドをセットしたが動かない。いろいろと確認してみると、どうもポートレット上でmultipart/form-dataが処理されないように見える・・・。MyFacesGenericPortletに原因があるのかな・・・。困った・・・。

<MyFaces>MyFacesGenericPortletを確認。どうも、MyFacesは、ExtensionsFilterでmultipart/form-dataのときは、MultipartRequestWrapperにラップするんだね・・・。もちろん、MyFacesGenericPortletはそのようなことをしている形跡はありませぬ。うーん、つまり、これもprocessActionに組み込まんといかんのかね・・・。うーん、フィルタでいろいろとやられると、ポートレットにするのが面倒・・・。っていうか、MyFacesをポートレットで使っている人が世界でいるのかどうかが、かなり疑問に思えてきた。あ、でも、ポータルサーバーの方のweb.xmlにフィルタとして、追加しておけば、いけるといえばいけるのか・・・。でも、それではすっきりしないし、MyFacesを使わないページが表示されているときにもフィルタが実行されるのが気持ち悪いしな・・・。