10.3. 사용자 정의 커넥터 생성
Fuse Online에서 사용자 지정 커넥터는 하나 이상의 연결 구성 매개 변수, 하나 이상의 연결 작업 및 각 작업에 대한 선택적 구성 매개 변수로 구성됩니다.
다음은 사용자 정의 커넥터를 개발하는 작업에 대한 개요입니다.
- Red Hat CodeReady Studio에서 Fuse Online 확장 프로젝트를 생성하고 확장 유형으로 Custom Connector 를 선택합니다.
- 확장에 대한 코드를 작성합니다. 기본 Camel 구성 요소, 커넥터 아이콘, 글로벌 커넥터 속성 및 커넥터 작업을 정의합니다.
10.3.1. 사용자 지정 커넥터를 위한 Fuse Online Extension 프로젝트 생성
Fuse Tooling Fuse Online 확장 프로젝트는 사용자 지정 커넥터의 시작점을 제공합니다.
Fuse Tooling Fuse Online 확장 프로젝트를 만들려면 다음 단계를 따르십시오.
Red Hat CodeReady Studio에서 새
프로젝트 Red Hat Fuse Fuse 온라인 확장 프로젝트를 선택합니다. New Fuse Online Extension Project 마법사가 열립니다.
프로젝트 이름과 위치를 입력한 다음 다음을 클릭합니다.
- Fuse Online 버전을 선택합니다.
다음 확장 세부 정보를 지정합니다.
-
사용자가 정의하고 Fuse Online 환경에서 고유합니다. Fuse Online 사용자가
.jar
파일을 가져올 때 이 값은 Fuse Online에서 확인할 수 있습니다. -
확장명 의 이름입니다.The name of the extension. 이 값은 Fuse Online에서 확장 이름으로 표시됩니다. Fuse Online에서 사용자 지정
확장 탭에서 사용자는 Fuse Online에 업로드된 확장 기능 및 이름 및 설명 목록을 볼 수 있습니다. - description - extension content에 대한 선택적 설명입니다.
-
버전 Cryostat- Cryostat 확장의 버전입니다. 예를 들어 이것이 초기 버전인 경우
1.0
을 입력할 수 있습니다. 버전을 업데이트하는 경우1.1
또는2.0
을 입력할 수 있습니다.
-
사용자가 정의하고 Fuse Online 환경에서 고유합니다. Fuse Online 사용자가
생성할 Fuse Online 확장 유형에 대해 Custom Connector 를 선택합니다.
- 완료를 클릭합니다.
새 프로젝트가 Red Hat CodeReady Studio Project Explorer 보기에 나타납니다. 사용자 지정 커넥터 확장을 위한 다음 파일이 포함되어 있습니다.
src/main/resources/META-INF/syndesis
폴더에서:설명자 파일:
syndesis-extension-definition.json
편집한 파일입니다. * 최상위 글로벌 속성, 커넥터 작업 및 작업 속성을 추가합니다. * 확장 ID, 이름, 버전 또는 설명 값을 변경합니다.
기본 아이콘 이미지 파일:
icon.png
선택적으로 이 파일을 자체 아이콘 이미지(PNG 또는 SVG) 파일로 교체할 수 있습니다.
Maven 프로젝트 오브젝트 모델 파일:
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>
10.3.2. 사용자 정의 커넥터를 위한 코드 작성
Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 커넥터 요소를 정의하는 코드를 작성합니다. 표 10.1. “사용자 정의 커넥터 요소” 표는 Fuse Tooling에서 생성하는 사용자 정의 커넥터의 요소가 Fuse Online의 요소에 해당하는 방식을 보여줍니다.
Fuse Tooling 요소 | Fuse Online 요소 | 설명 |
---|---|---|
전역(상위 수준) 속성 | 연결 구성 매개변수 | Fuse Online 사용자가 이 커넥터에서 연결을 생성할 때 사용자는 이 속성의 값을 연결 구성의 일부로 지정합니다. |
동작 | 연결 작업 | Fuse Online에서 이 커넥터로 만든 연결을 위해 Fuse Online 사용자는 이러한 작업 중 하나를 선택합니다. |
작업에 정의된 속성 | 작업 구성 매개변수 | Fuse Online 사용자가 연결이 수행하는 작업을 구성할 때 Fuse Online 사용자는 작업 구성의 일부로 이 속성에 대한 값을 지정합니다. |
Fuse Online용 사용자 정의 커넥터를 구현하는 코드를 작성하려면 다음을 수행합니다.
편집기 보기에서 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" } } }
사용자 정의 커넥터에 추가 종속 항목이 필요한 경우 프로젝트의
pom.xml
파일에 추가합니다. 종속 항목의 기본 범위는 runtime입니다. Red Hat에서 제공하는 종속성을 추가하는 경우 해당 범위를 제공된 대로 정의합니다. 예를 들면 다음과 같습니다.<dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-telegram</artifactId> <scope>provided</scope> </dependency> </dependencies>
사용자 정의 커넥터의 코드 작성이 완료되면 10.5절. “Fuse Online 확장 JAR 파일 빌드” 에 설명된 대로 .jar
파일을 빌드합니다.