9.3. カスタムコネクターの作成
Fuse Online では、カスタムコネクターは 1 つ以上の接続設定パラメーター、1 つ以上の接続アクション、およびアクションの任意の設定パラメーターで構成されます。
カスタムコネクターを開発するためのタスクの概要を以下に示します。
- Fuse Online エクステンションプロジェクトを作成し、エクステンションタイプに Custom Connector を選択します。
- エクステンションのコードを記述します。ベース Camel コンポーネント、コネクターアイコン、グローバルコネクタープロパティー、およびコネクターアクションを定義します。
9.3.1. カスタムコネクターのコードの記述
Fuse Online エクステンションプロジェクトを作成した後、Fuse Online ユーザーによって提供される必要な機能の説明を基にして、カスタムコネクター要素を定義するコードを記述します。表9.1「カスタムコネクター要素」 の表は、Fuse Tooling で作成したカスタムコネクター要素が Fuse Online 要素にどのように対応するか示しています。
Fuse Tooling 要素 | Fuse Online 要素 | 説明 |
---|---|---|
グローバル (最上位) プロパティー | 接続設定パラメーター | Fuse Online ユーザーがこのコネクターから接続を作成すると、ユーザーは接続設定の一部としてこのプロパティーの値を指定します。 |
Action | 接続アクション | Fuse Online では、Fuse Online ユーザーはこのコネクターから作成された接続に対して、アクションの 1 つを選択します。 |
アクションで定義されたプロパティー | アクション設定パラメーター | Fuse Online ユーザーが接続で実行するアクションを設定する場合、Fuse Online ユーザーはこのプロパティーの値をアクション設定の一部として指定します。 |
Fuse Online のカスタムコネクターを実装するコードを記述するには、以下を実行します。
エディタービューで syndesis-extension-definition.json ファイルを開き、グローバルプロパティー、カスタムコネクターが実行できるアクション、および各アクションのプロパティーを定義するコードを記述します。
各 グローバルプロパティー は Fuse Online の接続設定パラメーターに対応します。各アクションプロパティーは Fuse Online コネクションアクション設定パラメーターに対応します。Fuse Online では、ユーザーがカスタムコネクターを選択すると、Fuse Online が各接続設定パラメーターの値を要求します。カスタムコネクターは、OAuth プロトコルを使用するアプリケーションのカスタムコネクターであることがあります。この場合、OAuth クライアント ID のグローバルプロパティーと OAuth クライアントシークレットの別のグローバルプロパティーを指定するようにしてください。Fuse Online ユーザーは、このコネクターから作成された接続が機能するように、これらのパラメーターの値を指定する必要があります。
各 コネクターアクション はベース Camel コンポーネントスキームを宣言します。
New Fuse Online Extension Project ウィザードによって提供される例では、
telegram
Camel コンポーネントスキームを使用します。{ "schemaVersion" : "v1", "name" : "Example Fuse Online Extension", "extensionId" : "fuse.online.extension.example", "version" : "1.0.0", "actions" : [ { "id" : "io.syndesis:telegram-chat-from-action", "name" : "Chat Messages", "description" : "Receive all messages sent to the chat bot", "descriptor" : { "componentScheme" : "telegram", "inputDataShape" : { "kind" : "none" }, "outputDataShape" : { "kind" : "java", "type" : "org.apache.camel.component.telegram.model.IncomingMessage" }, "configuredProperties" : { "type" : "bots" } }, "actionType" : "connector", "pattern" : "From" }, { "id" : "io.syndesis:telegram-chat-to-action", "name" : "Send a chat Messages", "description" : "Send messages to the chat (through the bot).", "descriptor" : { "componentScheme" : "telegram", "inputDataShape" : { "kind" : "java", "type" : "java.lang.String" }, "outputDataShape" : { "kind" : "none" }, "propertyDefinitionSteps" : [ { "description" : "Chat id", "name" : "chatId", "properties" : { "chatId" : { "kind" : "parameter", "displayName" : "Chat Id", "type" : "string", "javaType" : "String", "description" : "The telegram's Chat Id, if not set will use CamelTelegramChatId from the incoming exchange." } } } ], "configuredProperties" : { "type" : "bots" } }, "actionType" : "connector", "pattern" : "To" } ], "properties" : { "authorizationToken" : { "kind" : "property", "displayName" : "Authorization Token", "group" : "security", "label" : "security", "required" : true, "type" : "string", "javaType" : "java.lang.String", "secret" : true, "description" : "Telegram Bot Authorization Token" } } }
カスタムコネクターに追加の依存関係が必要な場合は、その依存関係をプロジェクトの
pom.xml
ファイルに追加します。依存関係のデフォルトのスコープは runtime です。Red Hat が出荷する依存関係を追加する場合は、指定されたとおりスコープを定義します。以下はその例です。<dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-telegram</artifactId> <scope>provided</scope> </dependency> </dependencies>
カスタムコネクターのコードの作成が終了したら、「Fuse Online エクステンション JAR ファイルのビルド」の説明に従って .jar
ファイルをビルドします。