[seasar-s2dao-dev:447] Re: DAO-110に対応しました
JUNDU
[E-MAIL ADDRESS DELETED]
2007年 8月 20日 (月) 18:51:26 JST
JUNDUです。
Toshihiro Nakamura wrote:
> > 以下思いつきですが、例えばdao.diconにバージョン番号を定義して、クラス
> > ファイル内のバージョン番号と一致しないとエラーになるコンポーネントを追加
> > するとか。
>
> バージョン番号のチェックはちょっと大変そうかも?
> ちゃんとイメージできていないのですけど。。。
全然、大変そうじゃないのを考えてました。すっごくチープなやつです。前のメール
のdiconファイルに対して、以下のようなクラスです。
package org.seasar.dao.impl
public class VersionChecker {
public static final String CURRENT_VERSION = "1.1";
public void checkDicon(String version) {
if (!CURRENT_VERSION.equals(version)) {
log.warn("dao.diconファイルのバージョンが一致しません。dao.diconをカスタマイズしている場合、以前カスタマイズをしたときからdao.diconの記述方法が変わっている可能性があります。S2Daoの公式ドキュメントを参照してください。");
throw new DaoDiconInvalidException();
}
}
}
すっごくザックリ書くと、こういう恥ずかしいやつを想像してました(^^;; 目的は、
カスタマイズした後に配布したdao.diconに変更があったことを利用者の方に知らせる
ことです。
> Bindingアノテーションをうまく使って早めにエラーを検出できたら
> いいのかなぁと思います。(すでに利用されていますが)
>
> で、dao.diconに限りコンポーネントの依存関係やBinding必須かどうか
> をドキュメントに明記するようにすれば、
> カスタマイズしている人に役立つのではないでしょうか。
これはこれで、すごく大事ですね。動かしてる途中でNullPointerExceptionじゃ
原因が分からないでしょうし、カスタマイズするときに整合をとってカスタマイズ
できるためにはドキュメントは大事だと思います。
seasar-s2dao-dev メーリングリストの案内