9.4. カスタムステップの作成


Fuse Online エクステンションプロジェクトを作成した後、Fuse Online ユーザーによって提供される必要な機能の説明を基にして、カスタムステップを定義するコードを記述します。1 つのエクステンション内では、複数のカスタムステップを定義できます。また、各カスタムステップを Camel ルートまたは Java Bean で定義できます。

9.4.1. カスタムステップの Fuse Online Extension プロジェクトの作成

Fuse Tooling Fuse Online エクステンションプロジェクトを作成するには、以下の手順に従います。

  1. Red Hat CodeReady Studio で New Project Red Hat Fuse Fuse Online Extension Project を選択します。

    New Fuse Online Extension Project ウィザードが開きます。

    FuseOnlineExtWiz page1
  2. プロジェクトの名前と場所を入力してから Next をクリックします。

    FuseOnlineExtWiz page2
  3. Fuse Online のバージョンを選択します。
  4. 以下のエクステンションの詳細を指定します。

    • 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 を入力します。
  5. 作成する Fuse Online エクステンションの種類として Custom Step を選択します。
  6. カスタムステップのテンプレートを選択します。

    FuseOnlineExtWiz step
    • Camel route  —  サンプル Camel ルートを提供します。
    • Java bean  —  サンプル Java Bean を指定します。

      注記

      選択するテンプレートは、プロジェクトの開始点を提供します。Camel ルートと、同じエクステンション内の Java Bean をベースとする 1 つ以上の他のカスタムステップを作成する場合は、いずれかのテンプレートから開始し、他のタイプのカスタムステップに必要なファイルおよび依存関係を追加します。

  7. 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 要素にどのように対応するか示しています。

表9.2 カスタムステップ要素
Fuse Tooling 要素Fuse Online 要素説明

アクション

カスタムステップ

Fuse Online では、ユーザーがステップエクステンションをインポートした後、Choose a step ページにカスタムステップが表示されます。

アクションで定義されたプロパティー

カスタムステップ設定パラメーター

Fuse Online では、ユーザーがカスタムステップを選択すると、Fuse Online が設定パラメーターの値を要求します。

Fuse Online のカスタムステップを実装するコードを記述するには、以下を実行します。

  1. Camel ルートベースのステップの場合、extension.xml ファイルで、エクステンションの目的に対応するルートを作成します。各ルートのエントリーポイントは、ステップ 2 で説明されているように、syndesis-extension-definition.json ファイルで定義するエントリーポイントと一致する必要があります。

    Java Bean ベースのステップの場合は、java ファイルを編集します。

  2. 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"
      ]
    }
    注記

    このリリースではタグは無視されます。これらは今後使用するために予約されています。

  3. エクステンションの依存関係を編集するには、エディターで 'pom.xml' ファイルを開きます。依存関係を追加する場合は、そのスコープを定義する必要があります。

カスタムステップのコード作成が終了したら、「Fuse Online エクステンション JAR ファイルのビルド」の説明に従って .jar ファイルをビルドします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.