Skip navigation

ライセンス制約のために、ESB MuleにJSR-223ライブラリを同梱することができません。最新版のESB Muleは、インストレーション中にインターネットから必要なファイルをダウンロードします。そのために、インターネットに接続できない場合は、JSR-223スクリプティングが使えませんので注意してください。

 
ESB Muleコンポーネント、トランスポート、設定にPHP(ステートレス), Groovy, Rhino(JavaScript)のようなJSR-223 に準拠のスクリプト言語を使うことができます。

スクリプト・コンポーネント

スクリプトはESB Muleが管理しているコンポーネントとしてorg.mule.components.script.jsr223.ScriptComponentを使って、呼び出すことができます。
Groovyを使った例:

<mule-descriptor name="GroovyUMO"
    inboundEndpoint="jms://groovy.queue"
    implementation="org.mule.components.script.jsr223.ScriptComponent">
    <properties>
        <property name="scriptEngineName" value="groovy"/>
        <text-property name="scriptText">
             return "Received message: " + message.getPayload()
        </text-property>
    </properties>
</mule-descriptor>

ScriptComponentに次のプロパティを設定することができます:

プロパティ 説明
scriptText 実行するスクリプトの文字列。
scriptFile スクリプト・ファイルの場所(ファイル・システムのクラス・パス)
scriptEngineName 解析するスクリプトのタイプ。例:php, groovy, javascript

スクリプトからESB Muleの利用

スクリプトが実行されると、JSR-223 APIは名前空間に対応しています。スクリプトから名前で参照できるオブジェクトの集まりです。
ESB Muleは以下のオブジェクトを提供しています: || 名前 || 説明 ||

eventContext 現在のUMOEventContext
managementContext ESB Muleマネージャのインスタンス
message 現在のUMOMessage。「context.getMessage()」を使って取得することもできます。
descriptor このUMODescriptorオブジェクトを表すスクリプト・コンポーネント。
componentNamespace このスクリプトの名前コレクションへのレファレンス
log スクリプト・コンポーネントが使う共有ログ(Logger)のインスタンス
result スクリプト・コンポーネントから結果を戻すために使える「result」オブジェクト変数。

スクリプト構成ブルダ

ScriptConfigurationBuilderは、SR-223準拠スクリプトからESB Muleインスタンスを生成します。JavaScriptからマネージャをロードするには以下のように記述します:

ScriptConfigurationBuilder builder = new ScriptConfigurationBuilder("javascript");
UMOManager manager = builder.configure("../conf/mule-config.js");

又は、コマンド・ラインからサーバを開始するには:

java -Dorg.mule.script.engine=javascript
-cp ... org.mule.MuleServer
-builder org.mule.config.builders.ScriptConfigurationBuilder
-config ../conf/mule-config.js

プログラム又はスクリプトを使って、ESB Muleインスタンスを設定するに付いてはプログラムからESB Muleを設定を参照してください。

スクリプト変換(Script Transform)

スクリプトを使ってオブジェクトを変換することができます。トランスフォーマはScriptComponentを同じように設定されます。
以下の例は、Groovyを使ってコンマ「,」区切りの文字列(String)を java.util.List に変換します:

<transformer name="StringToList" returnClass="java.util.List"
        className="org.mule.transformers.script.ScriptTransformer">
    <properties>
        <property name="scriptEngineName" value="groovy"/>
        <property name="sourceType" value="java.lang.String"/>
        <text-property name="scriptText">
           return src.toString().tokenize(",")
        </text-property>
    </properties>
</transformer>

sourceType プロパティは、トランスフォーマに文字列方(String)のソース・オブジェクトのみを受信するように指示します。このプロパティは異なるソース・タイプ毎に設定することができます。
scriptText プロパティは呼び出すgroovyスクリプトを指定します。
トランスフォーマの returnClass 属性は、トランスフォーマから java.util.List が戻されるようにします。

Adaptavist Theme Builder Powered by Atlassian Confluence