モジュールモデルの学習

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

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

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

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

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

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

コンポーネント

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

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

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

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

設定

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

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

接続プロバイダー

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

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

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

パラメーター

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

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

他の要素

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