Mule SDK を使用したメッセージソースの作成

操作は、メッセージを処理して結果を生成するコンポーネントです。メッセージソースは、Mule Runtime で処理する新しいメッセージを受信または生成するコンポーネントです。

メッセージソースの例:

  • HTTP リスナー

  • ファイルウォッチャー

  • ユーザーが以前にサブスクライブしたキューからメッセージを取得する JMS/AMQP リスナー

  • Salesforce ストリーミング API

操作とメッセージソースの類似点

操作とメッセージソースには、以下が含まれます。

  • パラメーター

  • 戻り値のデータ型

  • 名前と説明

  • 再接続機能

操作とメッセージソースの相違点

操作 メッセージソース

操作はメッセージを処理します。

ソースはメッセージを作成してフローにプッシュします。

操作のライフサイクルは、含まれているフローに関連付けられています。

メッセージソースは、含まれているフローとは独立して開始および停止できます。

操作のパラメーターには、式を受け入れるオプションが含まれます (デフォルト)。

ソースには、式を受け入れることができるパラメーターと受け入れることができないパラメーターの明確な定義があります。式を受け入れることができるのは、応答の生成に含まれるパラメーターのみです。

操作にはライフサイクルを設定できますが、そのパラメーター値は使用できないか、必要ありません。

メッセージソースには、​start()​ および ​stop()​ フェーズが必要です。パラメーター値へのアクセス権が必要になる場合もあります。

操作が実行されるたびに接続が取得されます。

メッセージソースが開始されるたび、または再接続の発生時に接続が取得されます。

Mule SDK を介したメッセージソースの実装

メッセージソースの実装方法を定義する場合、上記の相違点により、操作で定義されているモデルと 100% 一貫性を確保することは困難です。

ソースは、2 つの汎用型 (生成されるイベントペイロードの型と属性の型に対応) を取る ​Source​ クラスを拡張する場合に必要になります。

@Alias("listener")
@EmitsResponse
public class HttpListener extends Source<InputStream, HttpRequestAttributes> {}
@Alias​ アノテーションを使用すると、名前を強制できます。使用しない場合、SDK によって名前が推定されます。