第 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 的文件。
流程
使用
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 工具监控工作区中的更改。项目中的任何修改都会在正在运行的应用程序中自动生效。