[Seasar-user:17631] Re: DBFluteのHotDeploy(複数DB)について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 6月 5日 (金) 17:00:28 JST
小林 (koichik) です.
Date: Fri, 5 Jun 2009 16:11:39 +0900
From: kubo <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17629] Re: DBFluteのHotDeploy(複数DB)について
> 要は、一つのcreatorで自動登録された
> FooBhvとBarBhvがいたとして、
> FooBhvにはdbflute-foo.diconのコンポーネントを、
> BarBhvにはdbflute-bar.diconのコンポーネントをDIする
> 方法という話になると思いますので、
> まずはそのやり方を探るのが良いと思います。
> (S2Container-2.4としてどのようにやるのか)
dbflute-foo.dicon と dbflute-bar.dicon の
名前空間が異なるという前提で,例えば
public class MultipleDatabaseBehaviorCustomizer extends AbstractCustomizer {
public String namespace;
protected void doCustomize(ComponentDef componentDef) {
// XxxBhv のプロパティの中で個別の dicon から
// DI しなくてはならないプロパティを列挙
addPropertyDef(componentDef, "xxx");
addPropertyDef(componentDef, "yyy");
...
}
protected void addPropertyDef(ComponentDef componentDef, String propertyName) {
PropertyDef pd = new PropertyDef(propertyName);
pd.setExpression(new OgnlExpression(namespace + "." + propertyName));
componentDef.addPropertyDef(pd);
}
}
customizer.dicon で,
<component name="behaviorCustomizer"
class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>
<component class="MultipleDatabaseBehaviorCustomizer">
<property name="namespace">"foo"</property>
<initMethod name="addClassPattern">
<arg>"xxx.foo"</arg>
</arg>".*Bhv"</arg>
</initMethod>
</component>
</arg>
</initMethod>
<initMethod name="addCustomizer">
<arg>
<component class="MultipleDatabaseBehaviorCustomizer">
<property name="namespace">"bar"</property>
<initMethod name="addClassPattern">
<arg>"xxx.bar"</arg>
</arg>".*Bhv"</arg>
</initMethod>
</component>
</arg>
</initMethod>
</component>
みたいな.
いろいろ間違ってるかもしれませんが
イメージはこんな感じで.
Bhv のパッケージ名から dicon の名前空間を
求められるなら,MultipleDatabaseBhvCustomizer は
一つ定義すればいいだけになり, classPattern の
指定も不要になります.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内