ストリーム・プロバイダはストリームデータの読書きを行います。多くの場合は、JavaのSystem.outとSystem.inのインターフェースとして使われます。
System.inを介してデータを取得するには以下のように書きます:
<mule-descriptor name="test" implementation="org.mule.components.simple.PassThroughComponent">
<inbound-router>
<endpoint address="stream: </inbound-router>
</mule-descriptor>
<connector>の定義は不要なことに注意してください。ストリームのエンドポイントがESB MuleにSystemStreamConnectorを利用することを示します。もし明示的に示す必要がある場合は、以下のように書きます:
<connector name="SystemStreamConnector" className="org.mule.providers.stream.SystemStreamConnector">
<properties>
<property name="promptMessage" value="Enter something: "/>
<property name="messageDelayTime" value="1000"/>
</properties>
</connector>
System.outを介してコンソールにデータを出力するには以下のように記述します:
<outbound-router>
<router className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="stream: transformers="JMSMessageToObject"/>
</router>
</outbound-router>
上の例では、受信したJMSメッセージはSystem.outに書き出されます。トランスフォーマーはJMSメッセージを人が読める形式に変換します。
ストリーム・コネクタのプロパティ
このコネクタには、以下のプロパティを指定することができます:
| プロパティ |
説明 |
デフォルト |
必須 |
適用オブジェクト |
| promptMessage |
入力を要求する場合のプロントのメッセージ。 |
|
× |
System.in |
| messageDelayTime |
入力を要求するまでの待ち時間 |
3秒 |
× |
System.in |
| outputMessage |
データを出力する前に書き出すメッセージ。 |
|
× |
System.out System.err |
| resourceBundle |
リソース・バンドルからプロント・メッセージを読み込む場合に指定。このパラメータはリソース・バンドルの接頭辞を設定する。以下の参照。 |
|
× |
System.in |
| promptMessageCode |
リソース・バンドルからぷろんど・メッセージを読み込む場合に指定。プロント・メッセージのリソース・メッセージIDを設定する。以下を参照。 |
|
× |
System.in |
| outputMessageCode |
リソース・バンドルからぷろんど・メッセージを読み込む場合に指定。出力メッセージのリソース・メッセージIDを指定する。以下を参照。 |
|
× |
System.in |
ストリーム・エンドポイント
System Streamエンドポイントは以下のように記述します:
「ストリーム名」は以下の何れになります:
- System.in - 入力ストリーム
- System.out - 出力ストリーム
- System.err - エラー出力ストリーム
プロパティの上書き
System Streamエンドポイントを定義する際に、特定のリシーバー及びディスパッチャーの設定を上書きすることができます。特定のエンドポイントに設定でいるプロパティは promptMessage と outputMessage です。
トランスフォーマー
ストリーム・プロバイダにはトランスフォーマーは標準でありません。
メッセージの国際化
もしアプリケーションをここに書かれている手順で 国際対応している場合は、SystemStreamConnectorのpromptMessages及びoutputMessagesも国際対応することができます。(メッセージのリソース・バンドルを作成されていることを前提をします。)
国際化対応する場合は、resourceBundleパラメータとpromptMessageCode及びoutputMessageCode パラメータを指定します。resourceBundleパラメータは、リソース・バンドルのキーを含みます。promptMessageCodeパラメータには、プロント・メッセージに対応するメッセージのキーを指定します。
下のコードは、リソース・バンドル「hello-example」のキーが「3」のメッセージをプロントに使います。なお、リソース・バンドル用のpropertiesファイルはMETA-INF/services/org/mule/i18n/hello-example-messages<langCode>.propertiesにあると想定されます。
<connector name="SystemStreamConnector" className="org.mule.providers.stream.SystemStreamConnector">
<properties>
<property name="promptMessageCode" value="3"/>
<property name="resourceBundle" value="hello-example"/>
<property name="messageDelayTime" value="1000"/>
</properties>
</connector>