Hotdeployをポートレットで

S2PortletにHotdeployPortletFilterを加えておきました。これでポートレットで使えるようにあると思うのだけど、いまいち、動きが怪しいところがある。Teeda で、

<h:outputText value="#{action_sayHelloPage.name}"
styleClass="portlet-font" />

と言った感じでSayHelloPageビーンのnameを取得しようとしているのだけど、Hotdeployのときには読みに行かない(つまり、何も表示されない)。しかし、COOLに切り替えると期待通りの動きになる。Hotdeploy的には、

<h:commandLink action="#{action_sayHelloAction.doBack}"
value="#{msgs['sayhello.Back']}" styleClass="portlet-form-button" />

っで、SayHelloActionビーンのdoBackとかは普通にHotdeployとCoolも期待通りに動いているので、そこら辺は動いているような気はする。S2PortletのHotdeployPortletFilterは特殊なことはしていないから、Teedaのところを見る必要があるのかね・・・。

TEEDA-42

J2Desktopをいじっていて、遭遇した問題だが、よく考えたら、Teedaの問題の気がしてきたので、Teedaにバグをあげておく。J2の方は、一応、回避する修正を入れた(すべてのポートレットを再リリースするのも面倒だし)。SunRIとMyFacesの方を見たけど、どっちも、チェックしているみたいだけど、MyFacesの方がちゃんと処理しているような気もするな(じっくり見たわけじゃないけど)。

OndemandCreatorをみる

OndemandCreator を HOT deploy とともに試す。この辺のドキュメントがどこにあるかわからんので(存在しているかどうかもわかりませんが)、ソースコードを見ながらと言った感じ。既存のものにこいつを適用しようとすると、NamingConvention を実装しなきゃならんと思うので、それはそれで面倒なので、従うようにリファクタリングした方が楽なような気もする。いろいろとやっているけど、まだ、期待通りに動かせてはいない・・・。OndemandCreatorで JSF のビーンが request のやつは、Page か Action かと言う感じだと思うけど、session や application スコープのやつはどうすりゃいいんだろか。とりあえず、app.dicon とかにセッションのビーンを記述しても、ActionOndemandCreator で読み込まれた、リクエストのビーンには、セッションビーンがセットされなかったので、いまいち、その辺の扱いがわからん・・・。

DI されるコードって、普通のコードよりも全体を把握するのに時間がかかるな・・・。これがあれで、あれがそれで・・・、と見ていくうちに、混沌としてくる。そのときは、一息入れないと、ますます、はまるし。まぁ、単体だけ考える分には、他のを気にしないで楽なのかもしれないけど。現状、ちょっと混乱気味なので(^^;、勘違いしている部分もあるかもしれないけど・・・。