ESB Mule1.4以降からは全ての <mule-descriptor> コンポーネントは <model> で囲みます。モデル(model)はESB Muleサービスでイベントを処理する[サービス・モデル]を定義します。
例;
<mule-configuration>
<model name="main">
<mule-descriptor name="component1"
implementation="com.foo.Component1">
...
</mule-descriptor>
</model>
</mule-configuration>
コンポーネント設定を複数のファイルに分割するには、コンポーネント毎に新しいサービス・モデルを作成するか(上の設定を元に)、ESB Muleに既存モデルを 継承 するように指定します。例えば、上の設定の他に、以下のような設定があるとします:
<mule-configuration>
<model type="inherited" name="main">
<mule-descriptor name="component2"
implementation="com.foo.Component2">
...
</mule-descriptor>
</model>
</mule-configuration>
一つしか設定が変わっていないことに注目してください。 <model> 要素の属性 type="inherited" はESB Muleに一番上で定義したサービス・モデル「main」を継承するように指示します。
各ファイルのルート要素を <mule-configuration> に設定する必要があります。
スクリプトから設定ファイルを使う場合は、以下のようにします:
java -cp ... org.mule.MuleServer -config "conf/mule-config.xml, conf/mule-component2-config.xml"
プログラムで行う場合は、以下のようになります:
public void main(String[] args)
{
MuleXmlConfigurationBuilder builder =
new MuleXmlConfigurationBuilder();
String configs = "conf/mule-config.xml,
conf/mule-component2-config.xml";
builder.configure(configs);
}
設定ファイルを順次に読み込まれますので、グローバル設定ファイルを先頭に記述してください。