Picoコンテナ・サポートのユーザ・ガイド
ESB Mule PicoContainer拡張は、ESB MuleでPicoContainer及びNanocontainerを使えるようにします。
Picoコンポーネント解析
本拡張機能は、ESB Muleが管理するオブジェクトをPicoコンテナが生成できるようにします。ESB MuleからPicoコンテナを利用できるようにするには、ESB Mule設定にのModelに、Component Resolver(コンポーネント解析)を定義します。
例:
<model name="muleModel">
<component-resolver name="pico" className="org.mule.extras.picocontainer.PicoComponentResolver">
<properties>
<property name="configFile" value="../conf/pico-container-config.xml"/>
</properties>
</component-resolver>
...
</model>
PicoComponentResolverには「configFile」プロパティのみを設定することができます。このプロパティには、コンマ「,」で区切った1つ以上のファイル・システム上のファイル及びクラス・パスのリソースを設定することができます。システム・ファイル及びクラスパスの両方が設定された場合は、クラスパスから検索されます。
リゾーバを設定すると、設定でコンポーネントのimplementation属性をComponentキーに設定することで、Picoが管理しているオブジェクトをESB Muleコンポーネントとして使うことができます。
例:
<mule-descriptor name="myMuleComponent"
inboundEndpoint="jms://order.queue"
inboundTransformer="JMSMessageToObject"
implementation="myPicoComponent">
</mule-descriptor>
Picoコンポーネント・プール
他の事と同じようにESB Muleでのコンポーネント・プーリングをプラグインすることができます。ESB Muleはコンポーネントをプールするのに、デフォルトでJakarta commons poolを使いますが、Pico Pool等に置き換えることが可能です。コンポーネント・プーリングにPicoを利用する場合はプールをモデル(Model)で指定します:
<model name="muleModel">
<component-pool-factory className="org.mule.extras.picocontainer.PicoPoolFactory"/>
...
</model>
デフォルト・プールをPicoプールに置き換える利点はありません。ただし、ESB Muleのプールを置き換える方法を勉強するには良い機会だと思います。