Skip navigation

ESB Mule PicoContainerはPicoContainerNanocontainerをESB Muleと連携して使えるようにします。

Picoコンポーネント・リソーバー(Pico Component Resolver)

PicoコンテナをESB Muleが管理するコンポーネントのファクトリとして使えるようにします。PicoコンテナをESB Muleから使えるようにするには、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つ以上をコンマ「,」区切りで指定することができます。クラス・パスにリソースがあるか最初に検索されます。

リソーバーを設定した後は、Picoが管理するオブジェクトをESB Muleコンポーネントとして使うことができます。使うには、コンポーネントの実装(implementation)属性を設定のコンポーネント・キー(Component key)に設定します。
例:

<mule-descriptor name="myMuleComponent"
    inboundEndpoint="jms://order.queue"
    inboundTransformer="JMSMessageToObject"
    implementation="myPicoComponent">
</mule-descriptor>

Picoコンポーネント・プーリング

他の事と同じようにESB Muleのコンポーネント・プーリング機能を使ってPicoのコンポーネント・プーリングを使うことができます。
ESB MuleはデフォルトでコンポーネントをプールするのにJakarta commons poolを使いますが、Picoプール(又は他の実装)を使うこともできます。Picoコンポーネント・プーリングを使うにはモデル(Model)でプールの設定を行います:

<model name="muleModel">
    <component-pool-factory className="org.mule.extras.picocontainer.PicoPoolFactory"/>
    ...
</model>

ESB Muleプールの代わりにPicoプールを使う利点はありません。ただし、ESB Muleのプールを置き換えたい場合もあります。この設定はそのやり方のよい例だと思います。

Adaptavist Theme Builder Powered by Atlassian Confluence