[Seasar-user:9772] Re: [S2Dxo] 独自コンバータの登録に関して
o.h.
[E-MAIL ADDRESS DELETED]
2007年 8月 8日 (水) 13:27:09 JST
長谷川です.
Nishioka Naoto wrote:
>
> 試しに、converterパッケージの中にクラスをおいてみましたが、
> 登録は行われていないようです。
>
既存の ConverterFactoryImpl ではどうもできないようです.
#私もできないなぁと思った口です.
ですので、私の場合は ConverterFactory を独自実装のものに入れ替えて
使っています.
修正ポイントは
#よくわかってないままの場当たりな修正ですので
container.findAllComponents(Converter.class)
となっているところを
container.getRoot().findAllComponents(Converter.class)
といった感じに修正することで SMART deploy 側のコンポーネントも
登録されるようになりました.
#重ねて申し上げますが、あくまで場当たりな修正です.
実際のコードは以下のようなもんです.
#コードまで書いているのは、やっちゃだめなことをしてないか
#識者の方々の意見をお聞きしたいってところもあります.(^^;
@Override
public void initialize() {
super.initialize();
Object[] userConverters = container.getRoot().findAllComponents(
Converter.class);
Converter[] newConverters = new Converter[userConverters.length
+ converters.length];
// converters には重複して登録されても大丈夫そうなので
// そのまま追加してしまう
System.arraycopy(converters,
0,
newConverters,
0,
converters.length);
System.arraycopy(userConverters,
0,
newConverters,
converters.length,
userConverters.length);
converters = newConverters;
}
org.seasar.extension.dxo.converter.impl.ConverterFactoryImpl を継承
して initialize を override してるだけですが、これを dxo.dicon に
入れてあげてます.
ご参考までに.
--
_/_/
_/_/ mailto: [E-MAIL ADDRESS DELETED]
_/_/ (deprecated: [E-MAIL ADDRESS DELETED])
_/_/
Seasar-user メーリングリストの案内