[seasar-dev:456] Re: [S2Container] TigerAnnotationHandler の initialize について

KOMORI Yusuke y-komori @ nifty.ne.jp
2006年 7月 9日 (日) 12:57:42 JST


 小森です。

On Sun, 09 Jul 2006 02:00:43 +0900, Koichi Kobayashi <koichik @ improvement.jp> wrote:

> >  回避策としては、static ブロックでクラスロード時に初期化してしまうか、
> 
> これだけだと HOT deploy でうまく動きません.

 なるほど、初期化を別出しにしていたのは HOT deploy のためなんですね。
(考えてみれば当たり前か・・・)

> > loadDefaultComponentDefBuilder() の最初で componentDefBuilders を初期化
> > しないようにするかのどちらかになると思うのですが、いかがでしょうか。
> 
> そうですね,これはこれで大丈夫... かなぁ.
> # Aspect だけ clear が漏れてるし...
> 
> いずれにせよ,HOT deploy では (Web の) リクエスト (相当) 処理後に
> TigerAnnotationHandler#dispose() が呼び出されて componentDefBuilders は
> clear() されてしまうので,何らかの方法で initialize() の度に Builder を
> 登録できる仕掛けが必要になりますね.
> 
> AnnotationHandler も s2container.dicon で設定可能にすべきか?

 AnnotationHandler はカスタマイズポイントがずいぶん増えてきていますね。
 たしかに、s2container.dicon で定義できるよ便利なような気がします。

> とりあえず,loadDefaultComponentDefBuilder() で componentDefBuilders を
> clear() するのは削除しましょう.
> HOT deploy で毎回 ComponentDefBuilder 等を登録するタイミングを
> 提供する方法は検討しておきます.
> 
> > (とりあえず、手元では後者で回避しています)
> 
> それではそのままコミットお願いします.(^^;

 ありがとうございます。
 テストクラスも現状の仕様にあわせて修正してコミットしておきました。

----------------------------------------------
 小森 裕介 / Yusuke Komori

  E-Mail:y-komori @ nifty.ne.jp
    Blog:http://d.hatena.ne.jp/y-komori/
     URL:http://www.littleforest.jp/




Seasar-dev メーリングリストの案内