第 46 章 Framework 入门


摘要

本章介绍了使用 API 组件框架实施 Camel 组件的基本原则,具体取决于使用 camel-archetype-api-component Maven archetype 生成的代码。

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.21.0.fuse-770013-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 生成命令提供选项。大部分选项应按照前面的 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 依赖项的版本。

生成的项目的结构

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

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

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

camel-api-example-api

API 子项目(名为 ArtifactId-api)包含您要切换到组件的 Java API。如果您在您编写的 Java API 上作为 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.