第 2 章 将 Camel 路由从 Fuse 7 迁移到 Camel Extensions for Quarkus (CEQ)


注意

您可以使用 Java DSL、XML IO DSL 或 YAML 在 CEQ 应用程序中定义 Camel 路由。

2.1. Java DSL 路由迁移示例

要将 Java DSL 路由定义从 Fuse 应用程序迁移到 CEQ,您可以将现有路由定义直接复制到 CEQ 应用,并将必要的依赖项添加到您的 CEQ pom.xml 文件中。

在本例中,我们将将基于内容的路由定义从 Fuse 7 应用程序迁移到一个新的 CEQ 应用程序,方法是将 Java DSL 路由复制到 CEQ 应用中名为 Routes.java 的文件。

流程

  1. 使用 code.quarkus.redhat.com 网站,选择本例所需的扩展:

    • camel-quarkus-file
    • camel-quarkus-xpath
  2. 进入您在上一步中提取生成的项目文件的目录:

    $ cd <directory_name>
    Copy to Clipboard Toggle word wrap
  3. src/main/java/org/acme/ 子文件夹中创建一个名为 Routes.java 的文件。
  4. 将 Fuse 应用程序的路由定义添加到 Routes.java 中,如下例所示:

    package org.acme;
    
    import org.apache.camel.builder.RouteBuilder;
    
    public class Routes extends RouteBuilder {
    	// Add your Java DSL route definition here
        public void configure() {
    	    from("file:work/cbr/input")
                .log("Receiving order ${file:name}")
                .choice()
                    .when().xpath("//order/customer/country[text() = 'UK']")
                        .log("Sending order ${file:name} to the UK")
                        .to("file:work/cbr/output/uk")
                    .when().xpath("//order/customer/country[text() = 'US']")
                        .log("Sending order ${file:name} to the US")
                        .to("file:work/cbr/output/uk")
                    .otherwise()
                        .log("Sending order ${file:name} to another country")
                        .to("file:work/cbr/output/others");
        }
    
    }
    Copy to Clipboard Toggle word wrap
  5. 编译您的 CEQ 应用程序。

    mvn clean compile quarkus:dev
    Copy to Clipboard Toggle word wrap
注意

此命令编译项目,启动应用程序,并允许 Quarkus 工具监控工作区中的更改。项目中的任何修改都会在正在运行的应用程序中自动生效。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat