10.4. 사용자 정의 단계 생성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 단계를 정의하는 코드를 작성합니다. 단일 확장 내에서 두 개 이상의 사용자 지정 단계를 정의할 수 있으며 Camel 경로 또는 Java 빈을 사용하여 각 사용자 지정 단계를 정의할 수 있습니다.

10.4.1. 사용자 지정 단계를 위한 Fuse Online Extension 프로젝트 생성

Fuse Tooling Fuse Online 확장 프로젝트를 만들려면 다음 단계를 따르십시오.

  1. Red Hat CodeReady Studio에서 프로젝트Red Hat FuseFuse 온라인 확장 프로젝트를 선택합니다.

    New Fuse Online Extension Project 마법사가 열립니다.

    FuseOnlineExtWiz page1
  2. 프로젝트 이름과 위치를 입력한 다음 다음을 클릭합니다.

    FuseOnlineExtWiz page2
  3. Fuse Online 버전을 선택합니다.
  4. 다음 확장 세부 정보를 지정합니다.

    • 사용자가 정의하고 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 을 입력할 수 있습니다.
  5. 생성할 Fuse Online 확장 유형에 대해 사용자 정의 단계를 선택합니다.
  6. 사용자 정의 단계의 템플릿을 선택합니다.

    FuseOnlineExtWiz step
    • Camel 경로 Cryostat- sample Camel 경로를 제공합니다.
    • Java Cryo stat - 샘플 Java 8080을 제공합니다.

      참고

      선택한 템플릿은 프로젝트의 시작점을 제공합니다. Camel 경로 및 동일한 확장 내의 Java 빈을 기반으로 하나 이상의 사용자 지정 단계를 생성하려면 템플릿 중 하나로 시작한 다음 다른 유형의 사용자 지정 단계에 필요한 파일 및 종속 항목을 추가합니다.

  7. 완료를 클릭합니다.

새 프로젝트가 Red Hat CodeReady Studio Project Explorer 보기에 나타납니다. 사용자 정의 단계에서 선택한 템플릿에 따라 다음 파일이 포함됩니다.

  • src/main/resources/META-INF/syndesis 폴더에서:

    • 설명자 파일: syndesis-extension-definition.json

      편집한 파일입니다: * 하나 이상의 작업을 추가합니다. '.json 'file의 작업은 Fuse Online에서 사용자 지정 단계가 됩니다. 작업 요소에서 '.json 'file의 속성은 Fuse Online의 단계 구성 매개 변수가 됩니다. * 확장 ID, 이름, 버전 또는 설명 값을 변경합니다.

    • Camel 경로 템플릿의 경우 Camel 컨텍스트 파일: extensions/log-body-action.xml

      이 파일에는 로그 구성 요소가 있는 샘플 경로가 포함되어 있습니다. 이 파일에서 Camel 경로를 사용자 지정합니다.

    • Java 8080 템플릿의 경우 Java file: extensions/extension.java

      이 파일에는 샘플 Cryostat 기반 로깅 확장자가 포함되어 있습니다.

  • 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.4.2. 사용자 정의 단계에 대한 코드 작성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 단계를 정의하는 코드를 작성합니다.

표 10.2. “사용자 정의 단계 요소” Fuse Tooling에서 만든 사용자 지정 단계의 요소가 Fuse Online의 요소에 해당하는 방식을 보여줍니다.

표 10.2. 사용자 정의 단계 요소

Fuse Tooling 요소Fuse Online 요소설명

동작

사용자 정의 단계

Fuse Online에서 사용자가 단계 확장을 가져온 후 사용자 지정 단계가 단계 선택 페이지에 나타납니다.

작업에 정의된 속성

사용자 정의 단계 구성 매개변수

Fuse Online에서 사용자가 사용자 지정 단계를 선택하면 Fuse Online에서 구성 매개 변수 값을 입력하라는 메시지를 표시합니다.

Fuse Online에 대한 사용자 지정 단계를 구현하는 코드를 작성하려면 다음을 수행합니다.

  1. Camel 경로 기반 단계의 경우 extension.xml 파일에서 확장의 목적을 처리하는 경로를 생성합니다. 각 경로의 진입점은 2단계에서 설명한 대로 syndesis-extension-definition.json 파일에 정의된 진입점과 일치해야 합니다.

    Java 8080 기반 단계의 경우 java 파일을 편집합니다.

  2. syndesis-extension-definition.json 파일에서 작업 및 해당 속성을 정의하는 코드를 작성합니다. 각 진입점에 대해 새 작업이 필요합니다.

    생성하는 각 작업은 Fuse Online의 사용자 지정 단계에 해당합니다. 각 작업에 대해 다양한 유형의 코드를 사용할 수 있습니다. 즉, 한 가지 작업에 Camel 경로를 사용할 수 있으며 다른 작업에 Java 8080을 사용할 수 있습니다.

    각 속성은 Fuse Online 단계 구성 매개변수에 해당합니다. Fuse Online에서 사용자가 사용자 지정 단계를 선택하면 Fuse Online에서 구성 매개 변수 값을 입력하라는 메시지를 표시합니다. 예를 들어 사용자 지정 로그 단계에는 로그에 보낼 정보를 나타내는 수준 매개변수가 있을 수 있습니다.

    다음은 확장자를 업로드하고 사용자 지정 단계를 통합에 추가한 후 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 'file을 엽니다. 종속성을 추가하는 경우 해당 범위를 정의해야 합니다.

사용자 정의 단계의 코드 작성을 완료하면 10.5절. “Fuse Online 확장 JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.