Jetspeed

<Jetspeed>ここのところは、DLSとAteがメインで、テストの修正から始まり、データベースをいじったりしているな・・・。ちょっと別件で忙しいので、今のところ、静観中・・・。落ち着いたとところで、試してみよう。もしかしたら、ようやくPostgresでも正しく動くようになったかな(今まで試したことなかったけど)。

近頃、marevol.com へのドキュメント作業も進んでいない。とりあえず、VFSポートレットが落ち着かんことには・・・。予定では、この前の週末には完了しているはずだったのだが、MyFacesGenericPortletの改良に時間がかかってしまっている・・・。一応、毎週土曜日はドキュメント作業の日と考えているので、今度の土曜日にはできるようにしたいところ・・・。

<MyFaces>セッション問題を考える。確認したところ、MyFaces は、ビーンをPORTLET_SCOPEに置いているようだ。一応、ビーン内でPortletRequestからPortletSessionを取り出して、APPLICATION_SCOPEとPORTLET_SCOPEに格納されているデータを確認すると、同じポートレットを別ページに配置していれば、別のPORTLET_SCOPEでセッションに入れることを確認できた。また、Plutoを確認して、PORTLET_SCOPEはAPPLICATION_SCOPEでjavax.portlet.p.WINDOW_ID?KEYという形で格納されていることも確認。うーん、何がおかしいのだろうか。MyFaces、Pluto、Jetspeed2、そして、マイプログラム・・・。でも、マイプログラムではたいしたことやっていないしな・・・。

調べてみて、マイプログラム内であることに気づく。JSF でビーンをapplicationスコープで作っている。そのビーンでPortletConfigから値を取って、そのポートレットで使うデフォルト値を管理するようにしている。そんで、そのapplicationスコープのビーンから、デフォルト値をsessionスコープのビーンに渡している。つまり、applicationスコープのビーンは、そのポートレットインスタンスに関係なく、そのポートレットで共有して使われる。正しいといえば、正しいけど、この辺が単純に1つのアプリケーションとして作るのとは違って、ややこしい。たぶん、原因はマイプログラムか・・・。これは、ポートレットとして利用するときのはまりどころになりそうな・・・。1つレベルアップ 🙂

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 でしていた。なるほどねぇ、確かに、一番乗りでその分野を開拓すれば、成功するのかもと思った。