DBFlute -- HotDeploy対応日記{構想初期メモ編}


【対象】
Behavior / Dao は確実。
必然的にBehaviorに掛けるInterceptorもかな。
但し、できればその他Dicon登録じゃないClass(ConditionBeanや他普通のClass)も
HotDeployにしたいが、その辺の仕組みはまだよくわかっていない。
dicon登録じゃなく普通にnewするものもHotDeployになるんだっけな!?
(それらはroot配下においちゃえばOKか???)

DBMetaのstaticキャッシュをDisposableUtilで破棄するかどうか要検討。
(自動生成のみでアプリ固有で手動で修正したりしない領域なので)
でも簡単にできるんだったらやってもいいかも。
自動生成しなおしてもHotDeployで反映されるんだったら魅力的。

【パッケージ(規約)】
要検討。
“対象”範囲次第で少し変わる。
build-xxx.propertiesで指定もいいかも。
CustomizerChain#addClassPattern()にて指定できるっぽい

【登場人物】
Creator (extends ComponentCreatorImpl)
Behavior用とDao用作成。Daoは既存のを流用できるかな!?
BehaviorはSingleton、DaoはPrototype、InterceptorはPrototype。
creator.diconに手動で定義してもらう


Customizerは、Diconに専用のInstanceを登録するだけかな。
但し、既存のcustomizer.diconに手動で定義してもらう
or customizer-dbflute.diconを作って、includeしてもらう?

【仕様】
選択式。まだS2Container-2.3を使う人もいるので、
build-xxx.propertiesでのOptionとする。

【確認】
Tomcat上げっ放しで、DaoやBehaviorにメソッドを追加して、
そいつをPageから呼び出してNoSuchMethodが発生しないこと。

【参考】
http://s2container.seasar.org/2.4/ja/S2.4SmartDeployConfig.html