第 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 应用程序。
流程
使用
code.quarkus.redhat.com
网站,选择本例所需的扩展:- camel-quarkus-file
- camel-quarkus-xpath
进入从上一步中提取生成的项目文件的目录:
$ cd <directory_name>
-
在
src/main/java/org/acme/
子文件夹中,创建名为Routes.java
的文件。 将 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"); } }
编译您的 CEQ 应用程序。
mvn clean compile quarkus:dev
注意
此命令编译项目,启动应用程序,并允许 Quarkus 工具监视工作区中的更改。项目中的任何修改都会自动在正在运行的应用程序中生效。