[Seasar-user:17633] Re: DBFluteのHotDeploy(複数DB)について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 6月 5日 (金) 17:19:55 JST


小林さま

  お世話になっております.松原です.
ご返信有難うございます.

>dbflute-foo.dicon と dbflute-bar.dicon の
>名前空間が異なるという前提で,例えば
⇒ 名前空間は異なります.

>Bhv のパッケージ名から dicon の名前空間を
>求められるなら,MultipleDatabaseBhvCustomizer は
>一つ定義すればいいだけになり, classPattern の
>指定も不要になります.
⇒ Bhv のパッケージ名から求めることは可能と考えて
  います.

質問になりますが,
>  protected void doCustomize(ComponentDef componentDef) {
>    // XxxBhv のプロパティの中で個別の dicon から
>    // DI しなくてはならないプロパティを列挙
>    addPropertyDef(componentDef, "xxx");
>    addPropertyDef(componentDef, "yyy");
>    ...
>  }
の記述にある「addPropertyDefで,XxxBhv のプロパティの中で個別の
dicon から」とありますが,これは,何を指しているのでしょうか?
例えば,テーブルのカラム・・・外だしSQL・・・すみません,
理解できませんでした.


大変申し訳ございませんが,以上の点をご教示頂けないでしょうか.

以上です.宜しくお願い致します.


=====================================================================
>小林 (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 mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>


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