Access Keys:
Skip to content (Access Key - 0)

ESB Mule XML設定ファイルを使って、SpringFrameworkコンテキストからESB Muleを使えるようにできます。即ち、ビーン定義をしなくてもSpringFrameworkを使えば複数のESB Muleインスタンスを繋ぐことができます。ビーンを定時は保守が難しいし、定義するのにも時間も掛かります。SpringFrameworkを使うと、ESB Muleを特定したドメインのESB Mule XMLで定義する利点もあります。

SpringFrameworkコンテキストとESB Mule XMLを使ってESB Muleを設定するには、ESB Mule XML設定ファイルを SpringConfigurationBuilder に引渡します。

SpringConfigurationBuilder builder = new SpringConfigurationBuilder();
UMOManager manager = builder.configure("mule-config.xml");

これ自体はそんなに便利ではありませんが、SpringFrameworkビーンとESB Mule XMLを組み合わせてSpringFrameworkの高度な接続機能を使うことができます。例えば、ファクトリ・メソッドを使ってESB Muleコンポーネントのプロパティを設定したい場合は、SpringFrameworkの設定から行うことができます。

<mule-descriptor name="test" implementation="testObject">
   <properties>
       <bean name="bar" class="org.foo.BarFactory" factory-method="createBar">
            <constructor-arg index="0">
                <value>cocktail</value>
            </constructor-arg>
       </bean>
   </properties>
</mule-descriptor>

SpringFramework XMLとESB Mule XMLと衝突する要素名もあります。回避するためにSpringFrameworkの要素をESB Mule XML設定で使う場合は要素名を spring- で始めます。次の表は影響するタグ一覧です。

SpringFramework 要素 ESB Mule XNL
<property ...> <spring-property ...>
<map> <spring-map>
<list> <spring-list>
<entry> <spring-entry>

例えば、Springビーン・プロパティをJMSコネクタに追加するには以下のように設定します:

<connector name="jmsconnector" className"org.mule.providers.jms.JmsConnector">
    <properties>
        <!-- Springプロパティを直接定義 -->
        <spring-property name="jndiContext">
            <ref local="myJndicontext"/>
        </spring-property>

        <!-- タグをネストすることも可能 -->
        <bean name="connectionFactory" class="org.foo.jms.provider.ConnectionFactory"/>

        <!-- and you can still use normal Mule propery elements -->
        <property name=jndiDestinations" value="true"/>
    </properties>
</connector>

Springの要素を使う場合は、SpringFrameworkが提供する全ての要素を使うことができます。上はJmsConnectorに jndiContext, connectionFactory_と _jndiDestinations プロパティを定義します。

ESB Mule XML設定(上のように)にビーンを使いたい場合は、設定ファイルに次のDOCTYPE宣言を記述します:

<!DOCTYPE mule-configuration PUBLIC 
          "-//MuleSource //DTD mule-configuration XML V1.0//EN"
          "http://mule.mulesource.org/dtds/mule-spring-configuration.dtd">

Spring設定ビルダはDOCTYPEを参照してどのように設定ファイルを読み込むかを決めます。ESB Mule設定ファイルはSpringコンテキストに読み込まれる前に、SpringビーンXMLに変換されます。

SpringConfigurationBuilder を使う場合は、以下のDOCTYPE宣言が以下のDTDを使っていれば、任意の数の設定ファイルを使うことができます。

DTD タイプ
mule-configuration.dtd 標準のESB Mule XML設定ファイル。Springビーン定義な無し。
mule-spring-configuration.dtd ESB Mule XML設定とSpring XMLの組み合わせ。
spring-beans.dtd Springビーン設定のみ。

3つのXML設定ファイルが異なるDTDで定義された設定な場合は、 SpringConfigurationBuilder を使って全設定ファイルを読み込むことができます。各ファイルはクラスパス又はファイル・システムにあることを前提とします。

SpringConfigurationBuilder builder = new SpringConfigurationBuilder();
UMOManager manager = builder.configure("spring-beans.xml,mule-configuration.xml,
                                         mule-spring-configuration.xml);
Adaptavist Theme Builder (3.3.2-conf2.10) Powered by Atlassian Confluence 2.10, the Enterprise Wiki.
Free theme builder license