第 46 章 Framework 入门


摘要

本章解释了根据使用 camel-archetype-api-component Maven archetype 生成的代码,使用 API 组件框架实施 Camel 组件的基本原则。

46.1. 使用 Maven Archetype 生成代码

Maven archetypes

Maven archetype 与代码向导类似:如果有多个简单的参数,它会生成一个完整的、可正常工作的 Maven 项目,它填充了示例代码。然后,您可以使用此项目作为模板,自定义实施来创建自己的应用程序。

API 组件 Maven archetype

API 组件框架提供了一个 Maven archetype camel-archetype-api-component,可以为您自己的 API 组件实现生成起点代码。这是推荐的方法,可以开始创建自己的 API 组件。

先决条件

运行 camel-archetype-api-component archetype 的唯一先决条件是安装了 Apache Maven,Maven settings.xml 文件被配置为使用标准的 Fuse 存储库。

调用 Maven archetype

要创建使用示例 URI 方案的示例组件,请调用 camel-archetype-api-component archetype 来生成新的 Maven 项目,如下所示:

mvn archetype:generate \
-DarchetypeGroupId=org.apache.camel.archetypes \
-DarchetypeArtifactId=camel-archetype-api-component \
-DarchetypeVersion=2.23.2.fuse-7_13_0-00013-redhat-00001 \
-DgroupId=org.jboss.fuse.example \
-DartifactId=camel-api-example \
-Dname=Example \
-Dscheme=example \
-Dversion=1.0-SNAPSHOT \
-DinteractiveMode=false
注意

每行末尾的反斜杠字符 \ 表示行连续,这仅适用于 Linux 和 UNIX 平台。在 Windows 平台上,删除反斜杠并将所有参数放在一行中。

选项

使用语法, -DName=Value 为 archetype generation 命令提供选项。上述 mvn archetype:generate 命令所示设置大多数选项,但可以修改一些选项以自定义生成的项目。下表显示了可用于自定义生成的 API 组件项目的选项:

Name描述

groupId

(通用 Maven 选项) 指定生成的 Maven 项目的组 ID。默认情况下,这个值还定义生成的类的 Java 软件包名称。因此,最好选择这个值以匹配您想要的 Java 软件包名称。

artifactId

(通用 Maven 选项) 指定生成的 Maven 项目的构件 ID。

name

API 组件的名称。这个值用于在生成的代码中生成类名称(实际上,建议该名称应该以大写字母开头)。

scheme

此组件的 URI 中使用的默认方案。您应该确保此方案不会与任何现有 Camel 组件的方案冲突。

archetypeVersion

(通用 Maven 选项) 通常,这应该是您计划部署组件的容器使用的 Apache Camel 版本。但是,如果需要,您还可以在生成 项目后 修改 Maven 依赖项版本。

生成的项目的结构

假设代码生成步骤成功完成,您应该会看到包含新 Maven 项目的新目录 camel-api-example。如果您在 camel-api-example 目录中查看,您会看到它有以下通用结构:

camel-api-example/
    pom.xml
    camel-api-example-api/
    camel-api-example-component/

在项目顶层是聚合 POM pom, pom.xml,它被配置为构建两个子项目,如下所示:

camel-api-example-api

API 子项目(名为 ArtifactId-api)包含您要转换为组件的 Java API。如果您要将 API 组件捆绑到您编写的 Java API 上,您可以将 Java API 代码直接放入此项目。

API 子项目可用于以下一个或多个目的:

  • 打包 Java API 代码(如果它还没有作为 Maven 软件包提供)。
  • 为 Java API 生成 Javadoc (为 API 组件框架提供所需的元数据)。
  • 要从 API 描述生成 Java API 代码(例如,从 REST API 的 WADL 描述中)。

然而,在某些情况下,您可能不需要执行任何这些任务。例如,如果 API 组件基于第三方 API,它已在 Maven 软件包中提供 Java API 和 Javadoc。在这种情况下,您可以删除 API 子项目。

camel-api-example-component
组件子项目(名为 ArtifactId-component)包含新 API 组件的实现。这包括组件实施类,以及 camel-api-component-maven 插件的配置(从 Java API 生成 API 映射类)。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.