ポートレットの開発環境

現在、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 フィルタを無効にして、利用するという感じでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です