第 2 章 将 Camel 路由从 Fuse 7 迁移到 Camel


注意

您可以使用 Java DSL、XML IO DSL 或 YAML 在 Red Hat build of Apache Camel for Quarkus 应用程序中定义 Camel 路由。

2.1. Java DSL 路由迁移示例

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

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

流程

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

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

    $ cd <directory_name>
  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");
        }
    
    }
  5. 编译您的 CEQ 应用程序。

    mvn clean compile quarkus:dev
注意

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.