ESB Muleは設定は決められた形式や形態が定められていないために拡張性が高いです。
雄一定められているのは、ESB Muleを設定した後に、MuleManager.getInstance()メソッドでUMOManagerのインスタンスを取得することをできるようにすることです。
クイックスタート
コマンドライン又はスクリプトからESB Mule XML設定ファイルを利用してESB Muleインスタンスを起動するには以下のコマンドを実行します:
java -cp ... org.mule.MuleServer -config ../conf/mule-config.xml
以上のコードはコンフィグレーション・ファイル ../conf/mule-config.xml を処理するために、デフォルトの org.mule.config.MuleXmlconfigurationBuilder を利用します。
以下のように記述することもできます:
MuleXmlConfigurationBuilder builder = new MuleXmlConfigurationBuilder();
builder.configure("../conf/mule-config.xml");
複数の設定ファイルをロード
開発者は複数のXML設定ファイルをコンマ「,」区切りで指定することができます。
例:
java -cp ... org.mule.MuleServer -config ../conf/mule-config.xml,
../conf/mule-component1-config.xml,../conf/mule-component2-config.xml
又はプログラムの場合は以下のように書きます:
MuleXmlConfigurationBuilder builder = new MuleXmlConfigurationBuilder();
String configs="../conf/mule-config.xml,
../conf/mule-component1-config.xml,../conf/mule-component2-config.xml";
builder.configure(configs);
設定ファイルを記述順にロードされますので、グローバル設定ファイルからロードされます。
この他にもSpringや[Groovy]のコンフィグレーション・ブルダを利用することが可能です。
構成ビルダ(configuration builder)
ESB Muleを設定するには、コンフィグレーション・ブルダを使います。これは、ESB Muleサーバが立ち上がるときに起動するインタフェースです。ESB Muleをどのように設定するかによって、自分で定義することも可能です。
現在、ESB Muleは3つのコンフィグレーション・ビルダを提供しています:①デフォルトのESB Mule xmlコンフィグレーション・ビルダ、②Springビルダ 、③[Groovy]ビルダ。ただし、PicoビルダやBeanShellビリダのような他ビルダも容易に作成することも可能です。
ESB Muleが使うビルダを指定するには、コマンド・ラインの引数に -builder トークンを使って
完全修飾クラス名を指定して、ビルダ用の設定するリソースを -config トークンを使って指定します。例えばSpringFrameworkビルダを使う場合は以下のように記述します:
java -cp ... org.mule.MuleServer
-builder org.mule.extras.spring.config.SpringConfigurationBuilder
-config ../conf/applicationContext.xml
ESB Mule Xmlを利用した設定
ESB Muleはデフォルトでmule-config.xmlというXMLファイルの設定ファイルを利用します。このXMLファイルを定義したDTDファイルmule-configuration.dtdはESB Muleの配布ファイルに同梱されています。
ESB Muleの全ての設定できる要素の元はUMOManagerです。UMOManagerは全ての設定可能なオブジェクトの構成を定義します。大まかな構成はページの下にあります。詳細に付いてはESB Mule設定ガイドを参照してください。
SpringFrameworkを利用した設定
デフォルトのESB Mule XML設定の他に、ESB Mule配布ファイルにはSpringFramework構成ビルダが同梱されています。このビルダを使って、SpringFrameworkから全てのESB Mule要素を設定することができます。即ち、ESB MuleのどのオブジェクトでもSpringFrameworkのAOP, トランザクション・インターセプタ, DAO等を使うことができます。
SpringFrameworkを利用して設定の詳細に付いてはSpringFrameworkを参照してください。
自前の設定の利用
ESB Muleの配布ファイルに現在2つの構成ビルダが同梱されています:デフォルトのESB Mule XMLビルダとSpringFrameworkビルダ。
自前の構成ビルダを作成するのはorg.mule.config.ConfigurationBuilderのインスタンスを作成するだけです。このインターフェースは1つのメソッドを定義しています:
public UMOManager configureMule(String configResources)
throws ConfigurationException;
ここでのconfigResourceはJNDIロケーション, URL, クラスパス上のファイル名(又はコンマ「,」で区切ったファイル名一覧), ファイル・システムの可能性があります。configResourceで指定されたリソースを元にしてUMOManagerのインスタンスを生成したサーバに引き渡すのは構成ビルダ(configuration builder)の責任です。
将来に対応する構成ビルダとしてPicoContainer, Bean Shellビルダ,JNDIビルダが挙げられています。
実際のESB Muleインスタンスの設定方法に付いては、設定オプションを参照してください。
UMOManagerのオーバーロード
UMOManagerインターフェースは全ての設定されたオブジェクトを管理する場所を定義します。ESB MuleはデフォルトのUMOManagerの実装としてMuleManagerを用意しています。ただし、自前のUMOManagerの実装を利用するようにすることも可能です。利用する構成ビルダを指定する方法は以下の2通りあります:
- VMパラメータに利用するUMOManager完全修飾クラス名を指定する。例: -Dorg.mule.umo.UMOManager=com.foo.MyManager.
- MuleManager.setInstance(...) メソッドを使う。自前のConfigurationBuilderを定義する場合はこのメソッドは便利です。