9.4. カスタムステップの作成
Fuse Online エクステンションプロジェクトを作成した後、Fuse Online ユーザーによって提供される必要な機能の説明を基にして、カスタムステップを定義するコードを記述します。1 つのエクステンション内では、複数のカスタムステップを定義できます。また、各カスタムステップを Camel ルートまたは Java Bean で定義できます。
9.4.1. カスタムステップの Fuse Online Extension プロジェクトの作成
Fuse Tooling Fuse Online エクステンションプロジェクトを作成するには、以下の手順に従います。
Red Hat CodeReady Studio で New
Project Red Hat Fuse Fuse Online Extension Project を選択します。 New Fuse Online Extension Project ウィザードが開きます。
プロジェクトの名前と場所を入力してから Next をクリックします。
- Fuse Online のバージョンを選択します。
以下のエクステンションの詳細を指定します。
-
ID — Fuse Online 環境で定義される一意の値。この値は、Fuse Online ユーザーがエクステンションの
.jar
ファイルをインポートする際に Fuse Online に表示されます。 -
Name — エクステンションの名前。この値は、Fuse Online にエクステンション名として表示されます。Fuse Online の Customizations
Extensions タブで、ユーザーは Fuse Online にアップロードされたエクステンションの名前と説明を一覧表示できます。 - Description — オプションの、エクステンションコンテンツの説明。
-
Version — エクステンションのバージョン。たとえば、これが最初のバージョンの場合、
1.0
を入力します。バージョンを更新する場合は、1.1
または2.0
を入力します。
-
ID — Fuse Online 環境で定義される一意の値。この値は、Fuse Online ユーザーがエクステンションの
- 作成する Fuse Online エクステンションの種類として Custom Step を選択します。
カスタムステップのテンプレートを選択します。
- Camel route — サンプル Camel ルートを提供します。
Java bean — サンプル Java Bean を指定します。
注記選択するテンプレートは、プロジェクトの開始点を提供します。Camel ルートと、同じエクステンション内の Java Bean をベースとする 1 つ以上の他のカスタムステップを作成する場合は、いずれかのテンプレートから開始し、他のタイプのカスタムステップに必要なファイルおよび依存関係を追加します。
- Finish をクリックします。
新しいプロジェクトが Red Hat CodeReady Studio の Project Explorer ビューに表示されます。これには、カスタムステップ用に選択したテンプレートに応じて、以下のファイルが含まれます。
src/main/resources/META-INF/syndesis
フォルダー:記述子ファイル:
syndesis-extension-definition.json
このファイルを編集します: * 1 つ以上のアクションを追加します。'.json' ファイルのアクションは Fuse Online のカスタムステップになります。アクション要素では、'.json' ファイルのプロパティーは Fuse Online のステップ設定パラメーターになります。* エクステンション Id、名前、バージョン、または説明の値を変更します。
Camel ルートテンプレートの場合、Camel コンテキストファイル
extensions/log-body-action.xml
このファイルには、ログコンポーネントを含むサンプルルートが含まれています。このファイルで Camel ルートをカスタマイズします。
Java Bean テンプレートの場合、Java ファイル
extensions/extension.java
このファイルには、POJO ベースのロギングエクステンションのサンプルが含まれています。
Maven Project Object Model ファイル:
pom.xml
このファイルには、Maven がプロジェクトをビルドするために使用されるプロジェクトおよび設定詳細に関する情報 (デフォルトのエクステンション依存関係を含む) が含まれます。このファイルを編集してカスタム依存関係を追加します。Red Hat が出荷する依存関係のスコープが提供されます。以下はその例です。
<dependency> <groupId>io.syndesis.extension</groupId> <artifactId>extension-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <scope>provided</scope> </dependency>
9.4.2. カスタムステップのコードの記述
Fuse Online エクステンションプロジェクトを作成した後、Fuse Online ユーザーによって提供される必要な機能の説明を基にして、カスタムステップを定義するコードを記述します。
表9.2「カスタムステップ要素」 は、Fuse Tooling で作成したカスタムステップ要素が Fuse Online 要素にどのように対応するか示しています。
Fuse Tooling 要素 | Fuse Online 要素 | 説明 |
---|---|---|
アクション | カスタムステップ | Fuse Online では、ユーザーがステップエクステンションをインポートした後、Choose a step ページにカスタムステップが表示されます。 |
アクションで定義されたプロパティー | カスタムステップ設定パラメーター | Fuse Online では、ユーザーがカスタムステップを選択すると、Fuse Online が設定パラメーターの値を要求します。 |
Fuse Online のカスタムステップを実装するコードを記述するには、以下を実行します。
Camel ルートベースのステップの場合、
extension.xml
ファイルで、エクステンションの目的に対応するルートを作成します。各ルートのエントリーポイントは、ステップ 2 で説明されているように、syndesis-extension-definition.json
ファイルで定義するエントリーポイントと一致する必要があります。Java Bean ベースのステップの場合は、
java
ファイルを編集します。syndesis-extension-definition.json
ファイルで、アクションとそのプロパティーを定義するコードを作成します。各エントリーポイントに新しいアクションが必要です。作成する各アクションは Fuse Online のカスタムステップに対応します。アクションごとに、異なるタイプのコードを使用できます。つまり、あるアクションに Camel ルートを、別のアクションに Java Bean を使用することができます。
各プロパティーは Fuse Online のステップ設定パラメーターに対応します。Fuse Online では、ユーザーがカスタムステップを選択すると、Fuse Online が設定パラメーターの値を要求します。たとえば、カスタムログステップにはログに送信する情報量を示す level パラメーターが含まれる場合があります。
エクステンションをアップロードし、そのカスタムステップをインテグレーションに追加した後に Fuse Online でユーザーが入力するプロパティーを含むエクステンションメタデータが含まれる
.json
ファイルのテンプレートは次のとおりです。{ "actions": [ { "actionType": "extension", "id": "${actionId}", "name": "Action Name", "description": "Action Description", "tags": [ "xml" ], "descriptor": { "kind": "ENDPOINT|BEAN|STEP", "entrypoint": "direct:${actionId}", "inputDataShape": { "kind": "any" }, "outputDataShape": { "kind": "any" }, "propertyDefinitionSteps": [] } } ], "tags": [ "feature", "experimental" ] }
注記このリリースではタグは無視されます。これらは今後使用するために予約されています。
- エクステンションの依存関係を編集するには、エディターで 'pom.xml' ファイルを開きます。依存関係を追加する場合は、そのスコープを定義する必要があります。
カスタムステップのコード作成が終了したら、「Fuse Online エクステンション JAR ファイルのビルド」の説明に従って .jar
ファイルをビルドします。