現在、VFSポートレットをFaces Dev フィルタを利用した開発スタイルを適用中。Faces Dev フィルタを使うと何がいいのかというと、ポートレットだけど、サーブレットとして、開発することができる(開発中のアプリケーション内にポートレットAPI固有のクラス・メソッドを呼び出したとしても、Faces Dev フィルタがエミュレートしてくれます。つまり、Faces Dev フィルタがポータルサーバーっぽく動いてくれる)。さらに、Seasar の HotDeploy を適用して、スムーズな開発が行えます。
現状のVFSポートレットについて、説明しておくと、Teeda ベースの普通の JSF なポートレットです(Teeda Extension は利用していません)。Teeda ベースのポートレットを作るときは、今までは、ポータルサーバー上において、動作確認していました(動作確認するのに時間がかかっていました・・・)。しかし、Faces Dev フィルタを適用することで、Teeda ベースのポートレットをサーブレットとして、起動することで、Eclipse 上から Tomcat に配備して、サーブレットの開発と同様に、ポータルサーバーを介さずに、そのポートレットにアクセスすることができるようになりました。しかも、Seasar の Hotdeploy を適用しておけば、Eclipse 上でソースコード上に変更を加えて、保存すれば、Tomcat を再起動することなしに、反映されます。これで、かなりスムーズな開発ができるようになりました 🙂
参考までに、現状の VFS ポートレットのコードは
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pal/vfs-portlets/
にあります。チェックアウトしても、そこにある状態は、Faces Dev フィルタは無効になっています。
ant servlet
と実行することで、Faces Dev フィルタが有効になります。この有効にすることで、サーブレットしてアクセスすることが可能になるので、Eclipse 上から Hotdeployを使って、スムーズな開発ができるでしょう。っで、実際にポートレットして、ポータルサーバーに配備するときには、Faces Dev フィルタが有効になっている状態でwarを作っても、ポータルサーバー上では動作しないので(Faces Devフィルタが提供するポートレットAPIと衝突を起こすので)、
ant portlet
を実行して、Faces Dev フィルタを無効にします。これで、ポータルサーバーにポートレットして、配備することができます。
という感じで、開発するときには、Faces Dev フィルタを有効にして、開発を進め、実際にポータルサーバーに配備するときになったら、Faces Dev フィルタを無効にして、利用するという感じでしょうか。