モジュールモデルの学習

Mule モジュールの構築は、​@Extension​ アノテーション付きのクラスから開始します。このクラスは、すべてのモジュール機能と、機能に関連するすべての要素をエクスポートするために使用します。

このクラスは、公開された非抽象クラスである​必要があります​。​@Extension​ アノテーションは、インターフェース、抽象クラス、公開/保護クラス、または型付きクラス (汎用型) では使用できません。
@Extension(name = "basic")
public class BasicModule {
}

@Extension​ アノテーションを使用する場合は、モジュールにわかりやすく簡潔な名前を付ける必要があります。モジュール名に、​extension​、​module​、または ​connector​ は使用できません。これらの文字列を含めても、SDK によって削除されます。必要に応じて、属性 ​vendor​ と属性 ​category​ を指定できます (​「ライセンス」​を参照)。

空のモジュールを作成したら、モジュールに要素を追加できます。

モジュールの基本モデル図
Figure 1. 基本のモジュール構造

概要レベルでは以下の要素があります。

コンポーネント

コンポーネントは、モジュール機能の鍵となります。モジュールは、与えられたパラメーターセットに基づいて実行され、フローでメッセージを生成または変更します。

モジュールの最も一般的なコンポーネントはソースと操作です。

  • 操作​は、受信したメッセージを処理して結果を生成するコンポーネントです。

  • ソース​は、Mule Runtime が処理するメッセージを受信するか、新しいメッセージを生成するコンポーネントです。

設定

設定は、モジュールの動作に影響する設定可能なパラメーターのセットです。 通常、​ソース​と​操作​は、動作を決定する設定のパラメーターに依存します。ただし、一部は設定なしでも機能します。

モジュールの設定を宣言するための要件はなく、いくつでも必要なだけ宣言できます。設定が異なればパラメーターセットも異なり、その設定を使用した場合にしか使用できない​操作​や ​ソース​を指定する場合もあります。

接続プロバイダー

接続プロバイダー​は、​設定​から作成される接続の処理を担当する Module 要素です。ロジックとパラメーター化処理を一元管理して、特定種別の接続のプロビジョニングおよびリリースを行います。

設定​、​ソース​、および​操作​と同じように、接続プロバイダーを実行するためには、通常は接続に依存します。接続は必須ではありませんが、普通は使用されます。​操作​と​ソース​で使用する接続は、​接続プロバイダー​が提供します。

接続プロバイダー​は​設定​にバインドされています。​設定​には、​接続プロバイダー​が 1 つも定義されないか、1 つだけ定義されるか、あるいは異なる種別の接続を作成する複数の接続プロバイダーが定義される場合があります。たとえば、HTTPS 接続と (非セキュア) HTTP 接続用に別々の ​ConnectionProvider​ が定義されます。

パラメーター

Parameters​ は、モジュールモデルの最も細かい要素であり、​操作​、​ソース​、​設定​、および​接続プロバイダー​のすべての要素で使用されます。

パラメーターは、実行する要素の値を受け入れる設定可能な要素を表すか、または設定された値を保持します。

他の要素

モジュールには、その他にも ​ルーター​、​スコープ​、​関数​、​エラー​などの要素があります。ここで説明した要素は、ほとんどのモジュールで使用する可能性があるコア要素です。