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

KOMORI Yusuke y-komori @ nifty.ne.jp
2006年 7月 9日 (日) 01:05:59 JST


To:こばやしさん

 小森です。

 TigerAnnotationHandler でちょっと質問&回避策の提案です。

 S2JFaceで独自のComponentDefクラスを作っているのですが、そのクラスを
TigerAnnotationHandler#addComponentDefBuilder() を使って登録しています。

 このメソッドを呼び出すタイミングは、S2Containerを初期化する前で行って
いるのですが、現状の実装だと createComponentDef() メソッドが呼ばれた時に
はじめて initialize() メソッドが走るようになっていますね。

 で、initialize() の中で呼ばれる loadDefaultComponentDefBuilder() メソッ
ドの中で、clearComponentDefBuilder() されているため、先に登録しておいた
独自のComponentDefクラスが無効になってしまいます。

 回避策としては、static ブロックでクラスロード時に初期化してしまうか、
loadDefaultComponentDefBuilder() の最初で componentDefBuilders を初期化
しないようにするかのどちらかになると思うのですが、いかがでしょうか。
(とりあえず、手元では後者で回避しています)


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

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




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