10.4. 创建自定义步骤


创建 Fuse Online 扩展项目后,您可以编写根据 Fuse Online 用户为您提供所需功能的描述来定义自定义步骤的代码。在单一扩展中,您可以定义多个自定义步骤,您可以使用 Camel 路由或使用 Java Bean 定义每个自定义步骤。

10.4.1. 为自定义步骤创建 Fuse 在线扩展项目

要创建 Fuse 工具 Fuse 在线扩展项目,请按照以下步骤操作:

  1. 在 Red Hat CodeReady Studio 中,选择 New Project Red Hat Fuse Fuse Online Extension Project

    New Fuse Online Extension Project 向导将打开。

  2. 输入项目的名称和位置,然后单击 Next

  3. 选择 Fuse Online 版本。
  4. 指定以下扩展详情:

    • 在 Fuse Online 环境中定义且在 Fuse Online 环境中是唯一的 ID criu-wagonA 值。当 Fuse Online 用户导入扩展 .jar 文件时,该值将在 Fuse Online 中可见。
    • 名称 扩展名为 wagon-wagon。这个值将在 Fuse Online 作为扩展名称中看到。在 Fuse Online 中,在 Customizations Extensions 选项卡中,用户可以看到上传到 Fuse Online 的扩展的名称和描述。
    • 描述 扩展内容的可选描述。
    • 版本 criu-MAPPINGThe version of the extension.例如,如果这是初始版本,您可以键入 1.0。如果要更新版本,您可以键入 1.12.0
  5. 为您要创建的 Fuse 在线扩展选择 Custom Step
  6. 为自定义步骤选择模板:

    • Camel route criu-wagonProvides 示例 Camel 路由。
    • Java bean criu-wagonProvides 一个 Java bean 示例。

      注意

      您选择的模板为您的项目提供一个起点。如果要基于 Camel 路由创建一个或多个自定义步骤,以及基于同一扩展中的 Java Bean 的一个或多个自定义步骤,请从其中一个模板开始,然后为其他类型的自定义步骤添加所需的文件和依赖项。

  7. Finish

新项目会出现在 Red Hat CodeReady Studio Project Explorer 视图中。它包括以下文件,具体取决于您为自定义步骤选择的模板:

  • src/main/resources/META-INF/syndesis 文件夹中:

    • 描述符文件: syndesis-extension-definition.json

      这是您编辑的文件: * 添加一个或多个操作。'.json 'file 中的操作成为 Fuse Online 的自定义步骤。在操作元素中,'.json 'file 中的属性成为 Fuse Online 中的 step 配置参数。* 更改 Extension Id, Name, Version, 或 Description 值。

    • 对于 Camel 路由模板,Camel 上下文文件: extensions/log-body-action.xml

      此文件包含带有日志组件的示例路由。您可以在此文件中自定义 Camel 路由。

    • 对于 Java bean 模板,Java 文件: extensions/extension.java

      此文件包含基于 POJO 的日志记录扩展示例。

  • Maven 项目对象模型文件: pom.xml

    此文件包含 Maven 用于构建项目的项目和配置详情的信息,包括默认扩展依赖项。您可以编辑此文件来添加自定义依赖项。红帽提供的任何依赖项的范围,例如:

    <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>
    Copy to Clipboard Toggle word wrap

10.4.2. 为自定义步骤编写代码

创建 Fuse Online 扩展项目后,您编写了根据 Fuse Online 用户为您提供所需功能的描述自定义步骤的代码。

表 10.2 “自定义步骤元素” 显示您在 Fuse 工具中创建的自定义步骤元素如何与 Fuse Online 中的元素对应。

Expand
表 10.2. 自定义步骤元素
Fuse Tooling 元素Fuse Online 元素描述

操作

自定义步骤

在 Fuse Online 中,在用户导入步骤扩展后,在 Choose a step 页面中显示自定义步骤。

操作中定义的属性

自定义步骤配置参数

在 Fuse Online 中,当用户选择自定义步骤时,Fuse Online 会提示输入配置参数的值。

要编写为 Fuse Online 实现自定义步骤的代码:

  1. 对于基于 Camel 路由的步骤,在 extension.xml 文件中,创建处理扩展目的的路由。每个路由的入口点必须与您在 syndesis-extension-definition.json 文件中定义的入口点匹配,如第 2 步所述。

    对于基于 Java bean 的步骤,编辑 java 文件。

  2. syndesis-extension-definition.json 文件中,编写定义操作及其属性的代码。每个入口点都需要一个新的操作。

    您创建的每个操作都与 Fuse Online 中的自定义步骤对应。您可以为每个操作使用不同类型的代码。也就是说,您可以对一个操作使用 Camel 路由,并将 Java bean 用于另一个操作。

    每个属性都对应一个 Fuse Online step 配置参数。在 Fuse Online 中,当用户选择自定义步骤时,Fuse Online 会提示输入配置参数的值。例如,自定义日志步骤可能有一个 level 参数,它指示要发送到日志的信息量。

    以下是包含扩展元数据的 .json 文件模板,包括用户在 Fuse Online 中用户填充的属性,并在上传扩展并将其自定义步骤添加到集成后:

    {
      "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"
      ]
    }
    Copy to Clipboard Toggle word wrap
    注意

    本发行版本中会忽略标签。保留它们供以后使用。

  3. 要编辑扩展依赖项,请在编辑器中打开 'pom.xml 'file。如果添加依赖项,则必须定义其范围。

完成自定义步骤的代码编写后,构建 .jar 文件,如 第 10.5 节 “构建 Fuse Online 扩展 JAR 文件” 所述。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat