9.3. 사용자 정의 커넥터 생성

Fuse Online에서 사용자 지정 커넥터는 하나 이상의 연결 구성 매개 변수, 하나 이상의 연결 작업 및 각 작업에 대한 선택적 구성 매개 변수로 구성됩니다.

다음은 사용자 정의 커넥터를 개발하는 작업에 대한 개요입니다.

  1. Fuse Online 확장 프로젝트를 만들고 확장 유형으로 Custom Connector 를 선택합니다.
  2. 확장에 대한 코드를 작성합니다. 기본 Camel 구성 요소, 커넥터 아이콘, 글로벌 커넥터 속성 및 커넥터 작업을 정의합니다.

9.3.1. 사용자 정의 커넥터를 위한 코드 작성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 커넥터 요소를 정의하는 코드를 작성합니다. 표 9.1. “사용자 정의 커넥터 요소” 표는 Fuse Tooling에서 생성하는 사용자 정의 커넥터의 요소가 Fuse Online의 요소에 해당하는 방식을 보여줍니다.

표 9.1. 사용자 정의 커넥터 요소

Fuse Tooling 요소Fuse Online 요소설명

전역(상위 수준) 속성

연결 구성 매개변수

Fuse Online 사용자가 이 커넥터에서 연결을 생성할 때 사용자는 이 속성의 값을 연결 구성의 일부로 지정합니다.

동작

연결 작업

Fuse Online에서 이 커넥터로 만든 연결을 위해 Fuse Online 사용자는 이러한 작업 중 하나를 선택합니다.

작업에 정의된 속성

작업 구성 매개변수

Fuse Online 사용자가 연결이 수행하는 작업을 구성할 때 Fuse Online 사용자는 작업 구성의 일부로 이 속성에 대한 값을 지정합니다.

Fuse Online용 사용자 정의 커넥터를 구현하는 코드를 작성하려면 다음을 수행합니다.

  1. 편집기 보기에서 syndesis-extension-definition.json 파일을 열고 전역 속성을 정의하는 코드, 사용자 지정 커넥터가 수행할 수 있는 동작 및 각 작업의 속성을 작성합니다.

    전역 속성은 Fuse Online의 연결 구성 매개변수에 해당합니다. 각 action 속성은 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"
        }
      }
    }
  2. 사용자 정의 커넥터에 추가 종속 항목이 필요한 경우 프로젝트의 pom.xml 파일에 추가합니다. 종속 항목의 기본 범위는 runtime입니다. Red Hat에서 제공하는 종속성을 추가하는 경우 해당 범위를 제공된 대로 정의합니다. 예를 들면 다음과 같습니다.

    <dependencies>
        <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-telegram</artifactId>
              <scope>provided</scope>
        </dependency>
          </dependencies>

사용자 정의 커넥터의 코드 작성이 완료되면 9.5절. “Fuse Online 확장 JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.