Camel Extensions for Quarkus 参考
红帽提供的 Camel Extensions for Quarkus
摘要
前言 复制链接链接已复制到粘贴板!
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 扩展概述 复制链接链接已复制到粘贴板!
1.1. 支持级别定义 复制链接链接已复制到粘贴板!
在 Camel Extensions for Quarkus 中作为生产环境完全支持的 Camel Extensions 之前,新功能、服务和组件会经历一些支持级别。这是为了确保向我们的产品提供企业稳定性的正确平衡,同时允许我们的客户和合作伙伴试验新的 Camel Extensions for Quarkus 技术,同时提供反馈,以帮助指导未来开发活动。
| 类型 | 描述 |
|---|---|
| 社区支持 | 作为红帽对上游的承诺的一部分,新扩展集成到我们的 Camel Extensions for Quarkus 发行版本中从上游社区开始。虽然这些扩展经过测试并记录上游记录,但我们并没有检查这些扩展的成熟度,且可能在以后的产品版本中不被红帽正式支持。 注意 社区扩展在 Camel Quarkus 社区项目的 extensions 引用页面中列出。 |
| 技术预览 | 技术预览功能为用户提供了一个对最新的产品创新的试用机会,以便用户可以对其进行测试并提供反馈。但是,Red Hat 订阅级别协议并不包括对这些技术预览功能的完全支持。这些功能可能并不完善,且不适用于生产环境。由于红帽会考虑在将来的产品中使用这些技术预览功能,我们将尝试解决客户在使用这些功能时遇到的问题。 |
| 产品支持 | 产品支持扩展在正式的红帽发行版本中提供,并被完全支持。所有受支持的配置都还没有测试文档差距和扩展。 |
1.2. 支持的扩展 复制链接链接已复制到粘贴板!
有 60 个扩展。
| 扩展 | 工件 | JVM 支持级别 | 原生支持级别 | 描述 |
|---|---|---|---|---|
| AMQP | 产品支持 | 产品支持 | 使用 Apache QPid 客户端与 AMQP 协议进行消息传递. | |
| attachments | 产品支持 | 产品支持 | 支持在 Camel 消息上附加。 | |
| AWS 2 DynamoDB | 产品支持 | 产品支持 | 存储和检索 AWS DynamoDB 服务的数据,或使用 AWS SDK 版本 2.x 从 AWS DynamoDB 流接收信息。 | |
| AWS 2 Kinesis | 产品支持 | 产品支持 | 使用 AWS SDK 版本 2.x 从 AWS Kinesis Streams 使用和生成记录。 | |
| AWS 2 Lambda | 产品支持 | 产品支持 | 使用 AWS SDK 版本 2.x 管理并调用 AWS Lambda 功能。 | |
| AWS 2 S3 Storage Service | 产品支持 | 产品支持 | 使用 AWS SDK 版本 2.x 从 AWS S3 Storage Service 存储和检索对象。 | |
| AWS 2 Simple Notification System (SNS) | 产品支持 | 产品支持 | 使用 AWS SDK 版本 2.x 将信息发送到 AWS Simple Notification 主题。 | |
| AWS 2 Simple Queue Service (SQS) | 产品支持 | 产品支持 | 使用 AWS SDK 版本 2.x 向 AWS SQS 服务发送和接收信息。 | |
| Azure Storage Blob | 技术预览 | 技术预览 | 使用 SDK v12 从 Azure Storage Blob Service 存储和检索 Blob。 | |
| Azure Storage Queue | 技术预览 | 技术预览 | azure-storage-queue 组件用于使用 Azure SDK v12 存储和检索信息到 Azure Storage Queue。 | |
| bean | 产品支持 | 产品支持 | 调用 Java Bean 的方法 | |
| Bean Validator | 产品支持 | 产品支持 | 使用 Java Bean Validation API 验证消息正文。 | |
| 浏览 | 产品支持 | 产品支持 | 检查在支持 BrowsableEndpoint 的端点上收到的消息。 | |
| Cassandra CQL | 产品支持 | 产品支持 | 使用 CQL3 API (而不是 Thrift API)与 Cassandra 2.0 集成。基于 DataStax 提供的 Cassandra Java 驱动程序。 | |
| Core | 产品支持 | 产品支持 | Camel 核心功能和基本 Camel 语言:Constant、ExchangeProperty、Header、Ref、Ref、Simple 和 Tokeinze | |
| Cron | 产品支持 | 产品支持 | 通过 Unix cron 语法指定的时间触发事件的通用接口。 | |
| CXF | 产品支持 | 产品支持 | 使用 Apache CXF 公开 SOAP WebServices,或使用 CXF WS 客户端连接到外部 WebServices。 | |
| dataformat | 产品支持 | 产品支持 | 使用 Camel 数据格式作为常规 Camel 组件。 | |
| direct | 产品支持 | 产品支持 | 同步调用来自同一 Camel 上下文的另一个端点。 | |
| FHIR | 产品支持 | 产品支持 | 使用 FHIR (Fast Healthcare Interoperability Resources)标准在电信域中交换信息。 | |
| File | 产品支持 | 产品支持 | 读取和写入文件。 | |
| FTP | 产品支持 | 产品支持 | 将文件上传到 FTP 或 SFTP 服务器。 | |
| Google BigQuery | 产品支持 | 产品支持 | Google BigQuery 数据存储用于分析。 | |
| Google Pubsub | 产品支持 | 产品支持 | 向 Google Cloud Platform PubSub Service 发送和接收消息。 | |
| HTTP | 产品支持 | 产品支持 | 使用 Apache HTTP 客户端 4.x 向外部 HTTP 服务器发送请求。 | |
| Infinispan | 产品支持 | 产品支持 | 从/写入 Infinispan 分布式键/值存储和数据网格。 | |
| JDBC | 产品支持 | 产品支持 | 通过 SQL 和 JDBC 访问数据库。 | |
| Jira | 产品支持 | 产品支持 | 与 JIRA 问题跟踪器交互。 | |
| JMS | 产品支持 | 产品支持 | 发送和接收来自 JMS Queue 或 Topic 的信息。 | |
| JPA | 产品支持 | 产品支持 | 使用 Java Persistence API (DSL)从数据库存储和检索 Java 对象。 | |
| JTA | 产品支持 | 产品支持 | 使用 Java Transaction API (JTA)和 Narayana 事务管理器将 Camel 路由包含在事务中 | |
| Kafka | 产品支持 | 产品支持 | 发送和接收来自 Apache Kafka 代理的信息。 | |
| kamelet | 产品支持 | 产品支持 | Kamelet 组件支持与 Camel Route 模板引擎交互。 | |
| Kubernetes | 技术预览 | 技术预览 | 对 Kubernetes API 执行操作 | |
| Log | 产品支持 | 产品支持 | 将消息记录到底层日志记录机制。 | |
| | 产品支持 | 产品支持 | 使用 imap、pop3 和 smtp 协议发送和接收电子邮件。 | |
| MicroProfile Fault Tolerance | 产品支持 | 产品支持 | 使用 MicroProfile Fault Tolerance 的 Circuit Breaker EIP。 | |
| MicroProfile Health | 产品支持 | 产品支持 | 使用 Camel 健康检查桥接 Eclipse MicroProfile 健康。 | |
| MicroProfile Metrics | 产品支持 | 产品支持 | 从 Camel 路由公开指标。 | |
| MLLP | 产品支持 | 产品支持 | 使用 MLLP 协议与外部系统通信。 | |
| Mock | 产品支持 | 产品支持 | 使用模拟测试路由和介质规则。 | |
| MongoDB | 技术预览 | 技术预览 | 对 MongoDB 文档和集合执行操作。 | |
| Netty | 产品支持 | 产品支持 | 使用带有 Netty 4.x 的 TCP 或 UDP 的套接字级别网络。 | |
| OpenAPI Java | 产品支持 | 产品支持 | rest-dsl 支持使用 OpenAPI doc | |
| paho | 产品支持 | 产品支持 | 使用 Eclipse Paho MQTT 客户端与 mq 消息代理通信。 | |
| Paho MQTT 5 | 产品支持 | 产品支持 | 使用 Eclipse Paho MQTT v5 客户端与 MQTT 消息代理进行通信。 | |
| 平台 HTTP | 产品支持 | 产品支持 | 使用当前平台中的 HTTP 服务器公开 HTTP 端点。 | |
| quartz | 产品支持 | 产品支持 | 使用 Quartz 2.x 调度程序调度消息发送。 | |
| rest | 产品支持 | 产品支持 | 公开 REST 服务及其 OpenAPI 规格或调用外部 REST 服务。 | |
| REST OpenApi | 产品支持 | 产品支持 | 根据 OpenAPI 规格文档配置 REST producer,委派到实施 RestProducerFactory 接口的组件。 | |
| Salesforce | 产品支持 | 产品支持 | 使用 Java DTO 与 Salesforce 通讯。 | |
| SEDA | 产品支持 | 产品支持 | 在同一 JVM 中异步调用任何 Camel 上下文的另一个端点。 | |
| Slack | 技术预览 | 技术预览 | 向/从 Slack 发送和接收消息。 | |
| SNMP | 产品支持( 请参阅发行注记 以了解限制信息。) | 技术预览 | 接收陷阱和轮询 SNMP (简单网络管理协议)功能的设备。 | |
| SQL | 产品支持 | 产品支持 | 使用 Spring JDBC 执行 SQL 查询。 | |
| 电话报 | 技术预览 | 技术预览 | 发送和接收作为站报 Bot API 的消息。 | |
| timer | 产品支持 | 产品支持 | 使用 java.util.Timer 以指定间隔生成消息。 | |
| 验证器 | 产品支持 | 产品支持 | 使用 XML 架构和 JAXP 验证来验证有效负载。 | |
| Vert.x HTTP 客户端 | 产品支持 | 产品支持 | 使用 Vert.x 发送请求到外部 HTTP 服务器 | |
| XQuery | 产品支持 | 产品支持 | 使用 XQuery 和 Saxon 查询和/或转换 XML 有效负载。 | |
| zip 文件 | 产品支持 | 产品支持 | 使用 java.util.Timer 以指定间隔生成消息。 |
1.3. 支持的数据格式 复制链接链接已复制到粘贴板!
有 10 个数据格式。
| 扩展 | 工件 | JVM 支持级别 | 原生支持级别 | 描述 |
|---|---|---|---|---|
| avro | 产品支持 | 产品支持 | 使用 Apache Avro 二进制数据格式序列化和反序列化消息。 | |
| Avro Jackson | 产品支持 | 产品支持 | marshal POJOs 到 Avro,并使用 Jackson 回来。 | |
| bindy | 产品支持 | 产品支持 | 使用 Camel Bindy Marshal 和 使用 Camel Bindy Marshal 的 POJOs 和固定字段长度格式之间的 POJO 和固定字段长度格式,使用 Camel Bindy Marshal 和使用 Camel Bindy Marshal 的 POJOs 和键-值对(KVP)格式之间的 POJO 和固定字段长度格式之间的 marshal 和 unmarshal。 | |
| HL7 | 产品支持 | 产品支持 | 使用 HL7 MLLP codec marshal 和 unmarshal HL7 (Health Liberty)模型对象。 | |
| Jacks | 产品支持 | 产品支持 | marshal POJOs 到 JSON,并使用 Jackson 回来 | |
| JacksonXML | 产品支持 | 产品支持 | 将 XML 有效负载解压缩为 POJO,并使用 Jackson 的 XMLMapper 扩展返回。 | |
| JAXB | 产品支持 | 产品支持 | 将 XML 有效负载解压缩为 POJO,并使用 JAXB2 XML marshalling 标准。 | |
| JSON Gson | 产品支持 | 产品支持 | marshal POJOs 到 JSON,并使用 Gson 回来。 | |
| protobuf Jackson | 产品支持 | 产品支持 | marshal POJOs 到 Protobuf,并使用 Jackson 回来。 | |
| SOAP 数据格式 | 产品支持 | 产品支持 | marshal Java 对象到 SOAP 消息,并返回。 |
1.4. 支持的语言 复制链接链接已复制到粘贴板!
有 12 个语言。
| 扩展 | 工件 | JVM 支持级别 | 原生支持级别 | 描述 |
|---|---|---|---|---|
| Bean 方法 | 产品支持 | 产品支持 | 调用 Java Bean 的方法 | |
| 常数 | 产品支持 | 产品支持 | 固定值只在路由启动过程中设置一次。 | |
| ExchangeProperty | 产品支持 | 产品支持 | 获取名为 Camel Exchange 属性的值。 | |
| File | 产品支持 | 产品支持 | 对于使用 file/simple 语言的表达式和 predicates。 | |
| 标头 | 产品支持 | 产品支持 | 获取 named Camel Message 标头的值。 | |
| HL7 Terser | 产品支持 | 产品支持 | 使用 HL7 MLLP codec marshal 和 unmarshal HL7 (Health Liberty)模型对象。 | |
| JSON 路径 | 产品支持 | 产品支持 | 根据 JSON 消息正文评估 JsonPath 表达式。 | |
| Ref | 产品支持 | 产品支持 | 在 Camel Registry 中查找表达式并进行评估。 | |
| Simple(简单) | 产品支持 | 产品支持 | 针对 Camel Exchange 评估 Camel 的内置简单语言表达式。 | |
| 令牌化 | 产品支持 | 产品支持 | 使用指定的分隔符模式验证文本有效负载。 | |
| XPath | 产品支持 | 产品支持 | 根据 XML 有效负载评估 XPath 表达式。 | |
| XQuery | 产品支持 | 产品支持 | 使用 XQuery 和 Saxon 查询和/或转换 XML 有效负载。 |
1.5. 其它扩展 复制链接链接已复制到粘贴板!
有 3 个其它扩展。
| 扩展 | 工件 | JVM 支持级别 | 原生支持级别 | 描述 |
|---|---|---|---|---|
| OpenTelemetry | 技术预览 | 技术预览 | 使用 OpenTelemetry 的分布式追踪 | |
| YAML DSL | 产品支持 | 产品支持 | 用于解析 YAML 路由定义的 YAML 堆栈 | |
| XML DSL | 产品支持 | 产品支持 | 使用 camel-xml-io 的 Camel XML DSL。 |
第 2 章 扩展参考 复制链接链接已复制到粘贴板!
本章提供有关 Quarkus 的 Camel Extensions 的参考信息。
2.1. AMQP 复制链接链接已复制到粘贴板!
使用 Apache QPid 客户端与 AMQP 协议进行消息传递.
2.1.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AMQP 组件, URI 语法:
amqp:destinationType:destinationName
有关使用和配置详情,请参阅上述链接。
2.1.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
</dependency>
2.1.3. 使用方法 复制链接链接已复制到粘贴板!
2.1.3.1. 带有 org.w3c.dom.Node的消息映射 复制链接链接已复制到粘贴板!
Camel AMQP 组件支持 javax.jms.Message 和 org.apache.camel.Message 之间的消息映射。当希望转换 org.w3c.dom.Node 的 Camel 消息正文类型时,您必须确保 classpath 上存在 camel-quarkus-jaxp 扩展。
2.1.3.2. 对 javax.jms.ObjectMessage 的原生模式支持 复制链接链接已复制到粘贴板!
将 JMS 消息有效负载作为 javax.jms.ObjectMessage 发送时,您必须注解相关类以使用 @RegisterForReflection (serialization = true) 进行序列化。请注意,这个扩展会自动为您设置 quarkus.camel.native.reflection.serialization-enabled = true。如需更多信息,请参阅 原生模式用户指南。
2.1.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
2.1.4.1. 连接池 复制链接链接已复制到粘贴板!
JMS 连接池尚不受支持,因为 quarkus-qpid-jms 仍存在打开 的问题。
2.1.5. 原生模式中的 transferException 选项 复制链接链接已复制到粘贴板!
要在原生模式中使用 transferException 选项,您必须启用对对象序列化的支持。如需更多信息,请参阅 原生模式用户指南。
您还需要为您要序列化的异常类启用序列化。例如:
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
2.1.6. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
扩展利用 Quarkus Qpid JMS 扩展。ConnectionFactory bean 会被自动创建,并连接到 AMQP 组件中。连接工厂可以通过 Quarkus Qpid JMS 配置选项 进行配置。
2.2. attachments 复制链接链接已复制到粘贴板!
支持 Camel 消息中的附加
2.2.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.2.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-attachments</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-attachments</artifactId>
</dependency>
2.3. avro 复制链接链接已复制到粘贴板!
使用 Apache Avro 二进制数据格式序列化和反序列化消息。
2.3.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.3.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-avro</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-avro</artifactId>
</dependency>
2.3.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
除了 vanilla Camel 已知的标准用法外,Camel Quarkus 还添加了在 JVM 和原生模式下构建时解析 Avro 模式的方法。
从 Avro 模式文件生成 Avro 类的方法是由 quarkus-avro 扩展共存的方法。它需要以下内容:
-
将
lsblkavsc文件存储在名为src/main/avro或src/test/avro的文件夹中 除了
quarkus-maven-plugin的常见构建目标外,添加generate-code目标:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
请参阅 Camel Quarkus Avro integration test 和 Quarkus Avro integration test 中的一个可以正常工作的配置。
2.4. AWS 2 DynamoDB 复制链接链接已复制到粘贴板!
存储和检索 AWS DynamoDB 服务的数据,或使用 AWS SDK 版本 2.x 从 AWS DynamoDB 流接收信息。
2.4.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS DynamoDB 组件, URI 语法:
aws2-ddb:tableName -
AWS DynamoDB Streams 组件, URI 语法:
aws2-ddbstream:tableName
有关使用和配置详情,请参阅上述链接。
2.4.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-ddb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-ddb</artifactId>
</dependency>
2.4.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.4.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.4.4.1. 与 Quarkus Amazon DynamoDB 的可选集成 复制链接链接已复制到粘贴板!
如果需要,可以将 Quarkus Amazon DynamoDB 扩展与 Camel Quarkus AWS 2 DynamoDB 结合使用。请注意,这完全是可选的,根本不强制使用。请按照 Quarkus 文档,但请注意以下注意事项:
必须通过配置以下属性来选择客户端类型
apache:quarkus.dynamodb.sync-client.type=apache
quarkus.dynamodb.sync-client.type=apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow DynamoDbClient必须在 Quarkus CDI 参考 的意义中进行"不可删除",以便 Camel Quarkus 能够在运行时查看它。您可以通过添加 dummy bean 注入DynamoDbClient来访问该,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. AWS 2 Kinesis 复制链接链接已复制到粘贴板!
使用 AWS SDK 版本 2.x 从 AWS Kinesis Streams 使用和生成记录。
2.5.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS Kinesis 组件, URI 语法:
aws2-kinesis:streamName -
AWS Kinesis Firehose 组件, URI 语法:
aws2-kinesis-firehose:streamName
有关使用和配置详情,请参阅上述链接。
2.5.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-kinesis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-kinesis</artifactId>
</dependency>
2.5.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.6. AWS 2 Lambda 复制链接链接已复制到粘贴板!
使用 AWS SDK 版本 2.x 管理并调用 AWS Lambda 功能。
2.6.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS Lambda 组件, URI 语法:
aws2-lambda:function
有关使用和配置详情,请参阅上述链接。
2.6.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-lambda</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-lambda</artifactId>
</dependency>
2.6.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.6.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
通过quarkus-amazon-lambda 扩展,您可以使用 Quarkus 来构建 AWS Lambdas,而 Camel 组件管理(deploy, undeploy, …)现有功能。因此,无法将 quarkus-amazon-lambda 用作 Camel aws2-lambda 扩展的客户端。
2.7. AWS 2 S3 Storage Service 复制链接链接已复制到粘贴板!
使用 AWS SDK 版本 2.x 从 AWS S3 Storage Service 存储和检索对象。
2.7.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS S3 Storage Service 组件, URI 语法:
aws2-s3://bucketNameOrArn
有关使用和配置详情,请参阅上述链接。
2.7.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-s3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-s3</artifactId>
</dependency>
2.7.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.7.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.7.4.1. 可选与 Quarkus Amazon S3 集成 复制链接链接已复制到粘贴板!
如果需要,可以结合使用 Quarkus Amazon S3 扩展和 Camel Quarkus AWS 2 S3 Storage Service。请注意,这完全是可选的,根本不强制使用。请按照 Quarkus 文档,但请注意以下注意事项:
必须通过配置以下属性来选择客户端类型
apache:quarkus.s3.sync-client.type=apache
quarkus.s3.sync-client.type=apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow S3Client必须在 Quarkus CDI 参考 的意义中"不可移动"进行,以便 Camel Quarkus 能够在运行时查看它。您可以通过添加 dummy bean 注入S3Client来访问该,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. AWS 2 Simple Notification System (SNS) 复制链接链接已复制到粘贴板!
使用 AWS SDK 版本 2.x 将信息发送到 AWS Simple Notification 主题。
2.8.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS Simple Notification System (SNS)组件, URI 语法:
aws2-sns:topicNameOrArn
有关使用和配置详情,请参阅上述链接。
2.8.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-sns</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-sns</artifactId>
</dependency>
2.8.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.8.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.8.4.1. 与 Quarkus Amazon SNS 的可选集成 复制链接链接已复制到粘贴板!
如果需要,可以将 Quarkus Amazon SNS 扩展与 Camel Quarkus AWS 2 Simple Notification System (SNS)结合使用。请注意,这完全是可选的,根本不强制使用。请按照 Quarkus 文档,但请注意以下注意事项:
必须通过配置以下属性来选择客户端类型
apache:quarkus.sns.sync-client.type=apache
quarkus.sns.sync-client.type=apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow SnsClient必须在 Quarkus CDI 参考 的意义中"不可移动"进行,以便 Camel Quarkus 能够在运行时查看它。您可以通过添加 dummy bean 注入SnsClient来达到该示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. AWS 2 Simple Queue Service (SQS) 复制链接链接已复制到粘贴板!
使用 AWS SDK 版本 2.x 向 AWS SQS 服务发送和接收信息。
2.9.1. 内部是什么 复制链接链接已复制到粘贴板!
-
AWS Simple Queue Service (SQS)组件, URI 语法:
aws2-sqs:queueNameOrArn
有关使用和配置详情,请参阅上述链接。
2.9.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-sqs</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-aws2-sqs</artifactId>
</dependency>
2.9.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.9.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.9.4.1. 与 Quarkus Amazon SQS 的可选集成 复制链接链接已复制到粘贴板!
如果需要,可以将 Quarkus Amazon SQS 扩展与 Camel Quarkus AWS 2 Simple Queue Service (SQS)结合使用。请注意,这完全是可选的,根本不强制使用。请按照 Quarkus 文档,但请注意以下注意事项:
必须通过配置以下属性来选择客户端类型
apache:quarkus.sqs.sync-client.type=apache
quarkus.sqs.sync-client.type=apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow SqsClient必须在 Quarkus CDI 参考 的意义中"不可移动"进行,以便 Camel Quarkus 能够在运行时查看它。您可以通过添加 dummy bean 注入SqsClient来访问那个,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10. Azure Storage Blob Service 复制链接链接已复制到粘贴板!
使用 SDK v12 从 Azure Storage Blob Service 存储和检索 Blob。
2.10.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Azure Storage Blob Service 组件, URI 语法:
azure-storage-blob:accountName/containerName
有关使用和配置详情,请参阅上述链接。
2.10.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-azure-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-azure-storage-blob</artifactId>
</dependency>
2.10.3. 使用方法 复制链接链接已复制到粘贴板!
2.10.3.1. Micrometer 指标支持 复制链接链接已复制到粘贴板!
如果要为 Reactor Netty 传输启用 Micrometer 指标集合,您应该声明依赖 Quarkus -micrometer,以确保它们可以通过 Quarkus 指标 HTTP 端点获得。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
2.10.4. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.11. Azure Storage Queue Service 复制链接链接已复制到粘贴板!
azure-storage-queue 组件用于使用 Azure SDK v12 存储和检索信息到 Azure Storage Queue。
2.11.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Azure Storage Queue Service 组件, URI 语法:
azure-storage-queue:accountName/queueName
有关使用和配置详情,请参阅上述链接。
2.11.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-azure-storage-queue</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-azure-storage-queue</artifactId>
</dependency>
2.11.3. 使用方法 复制链接链接已复制到粘贴板!
2.11.3.1. Micrometer 指标支持 复制链接链接已复制到粘贴板!
如果要为 Reactor Netty 传输启用 Micrometer 指标集合,您应该声明依赖 Quarkus -micrometer,以确保它们可以通过 Quarkus 指标 HTTP 端点获得。
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
2.11.4. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.12. Bean Validator 复制链接链接已复制到粘贴板!
使用 Java Bean Validation API 验证消息正文。
2.12.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Bean Validator 组件, URI 语法:
bean-validator:label
有关使用和配置详情,请参阅上述链接。
2.12.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean-validator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean-validator</artifactId>
</dependency>
2.12.3. 使用方法 复制链接链接已复制到粘贴板!
2.12.3.1. 配置 ValidatorFactory 复制链接链接已复制到粘贴板!
此扩展的实施利用 Quarkus Hibernate Validator 扩展。
因此,无法通过 Camel 的属性 (constraintValidatorFactory, messageInterpolator, traversableResolver, validationProviderResolver 和 validatorFactory) 配置 ValidatorFactory。
您可以通过创建 Bean 来配置 ValidatorFactory,它将注入到默认的 ValidatorFactory 中(由 Quarkus 创建)。如需更多信息,请参阅 Quarkus CDI 文档。
2.12.3.2. 原生模式的自定义验证组 复制链接链接已复制到粘贴板!
在原生模式中使用自定义验证组时,需要注册所有接口以进行反映( 请参阅文档)。
例如:
@RegisterForReflection
public interface OptionalChecks {
}
@RegisterForReflection
public interface OptionalChecks {
}
2.12.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
无法将约束描述为 XML (通过提供文件 META-INF/validation.xml),只支持 Java 注解。这是因为 Quarkus Hibernate Validator 扩展的限制(请参阅问题)。
2.13. bean 复制链接链接已复制到粘贴板!
调用 Java Bean 的方法
2.13.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.13.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean</artifactId>
</dependency>
2.13.3. 使用方法 复制链接链接已复制到粘贴板!
除了调用 Camel registry 中的 Bean 方法外,M Bean 组件和 Bean 方法语言也可以调用 Quarkus CDI Bean。
2.14. bindy 复制链接链接已复制到粘贴板!
使用 Camel Bindy 在一端和 Comma 分隔值(CSV)、固定字段长度或键值对(KVP)格式的 POJO 之间 marshal 和 unmarshal 之间的 marshal 和 unmarshal
2.14.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.14.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bindy</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bindy</artifactId>
</dependency>
2.14.3. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
当在原生模式中使用 camel-quarkus-bindy 时,只支持构建机器的区域设置。
例如,在使用 french 区域构建机器上,以下代码:
BindyDataFormat dataFormat = new BindyDataFormat();
dataFormat.setLocale("ar");
BindyDataFormat dataFormat = new BindyDataFormat();
dataFormat.setLocale("ar");
格式按预期在 JVM 模式中编号。但是,它以原生模式格式化 french 编号。
如果没有进一步调优,将使用构建机器的默认区域设置。可使用 quarkus.native.user-language 和 quarkus.native.user-country 配置属性来指定另一个区域。
2.15. 浏览 复制链接链接已复制到粘贴板!
检查在支持 BrowsableEndpoint 的端点上收到的消息。
2.15.1. 内部是什么 复制链接链接已复制到粘贴板!
-
浏览组件、URI 语法:
browse:name
有关使用和配置详情,请参阅上述链接。
2.15.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-browse</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-browse</artifactId>
</dependency>
2.16. Cassandra CQL 复制链接链接已复制到粘贴板!
使用 CQL3 API (而不是 Thrift API)与 Cassandra 2.0 集成。基于 DataStax 提供的 Cassandra Java 驱动程序。
2.16.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Cassandra CQL 组件, URI 语法:
cql:beanRef:hosts:port/keyspace
有关使用和配置详情,请参阅上述链接。
2.16.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cassandraql</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cassandraql</artifactId>
</dependency>
2.16.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.16.3.1. 原生模式的 Cassandra 聚合存储库 复制链接链接已复制到粘贴板!
要在原生模式中使用 Cassandra 聚合存储库(如 CassandraAggregationRepository ),您必须启用原生序列化支持。
此外,如果您的交换正文是自定义类型,则必须使用 @RegisterForReflection (serialization = true) 为其类声明添加注解以进行序列化。
2.17. 控制总线 复制链接链接已复制到粘贴板!
管理和监控 Camel 路由。
2.17.1. 内部是什么 复制链接链接已复制到粘贴板!
-
控制总线组件, URI 语法:
controlbus:command:language
有关使用和配置详情,请参阅上述链接。
2.17.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-controlbus</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-controlbus</artifactId>
</dependency>
2.17.3. 使用方法 复制链接链接已复制到粘贴板!
2.17.3.1. Statistics 复制链接链接已复制到粘贴板!
使用 stats 命令端点时,camel-quarkus-management 扩展必须添加为项目依赖项以启用 JMX。Maven 用户必须在其 pom.xml 中添加以下内容:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-management</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-management</artifactId>
</dependency>
2.17.3.2. 语言 复制链接链接已复制到粘贴板!
在 Camel Extensions for Quarkus 中的 Control Bus 扩展中支持以下语言:
2.17.3.2.1. bean 复制链接链接已复制到粘贴板!
Bean 语言可用于调用 bean 的方法来控制路由的状态。org.apache.camel.quarkus:camel-quarkus-bean 扩展必须添加到 classpath 中。Maven 用户必须在 POM 中添加以下依赖项:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-bean</artifactId>
</dependency>
在原生模式中,Bean 类必须使用 @RegisterForReflection 注解。
2.17.3.2.2. Simple(简单) 复制链接链接已复制到粘贴板!
Simple 语言可用于控制路由的状态。以下示例使用 ProducerTemplate 来停止 ID 为 foo 的路由:
template.sendBody(
"controlbus:language:simple",
"${camelContext.getRouteController().stopRoute('foo')}"
);
template.sendBody(
"controlbus:language:simple",
"${camelContext.getRouteController().stopRoute('foo')}"
);
要使用 OGNL 表示法,必须将 org.apache.camel.quarkus:camel-quarkus-bean 扩展添加为依赖项。
在原生模式中,必须注册 OGNL 标记中使用的类来反映。在上面的代码片段中,必须注册从 camelContext.getRouteController () 返回的 org.apache.camel.spi.RouteController 类。由于这是一个第三方类,它不能直接使用 @RegisterForReflection 进行注释 - 相反,您可以注解不同的类并指定要注册的目标类。例如,定义 Camel 路由的类可以使用 @RegisterForReflection (targets = { org.apache.camel.spi.RouteController.class }) 进行注解。
或者,在 src/main/resources/application.properties 中添加以下行:
quarkus.camel.native.reflection.include-patterns = org.apache.camel.spi.RouteController
quarkus.camel.native.reflection.include-patterns = org.apache.camel.spi.RouteController
2.17.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
2.17.4.1. Statistics 复制链接链接已复制到粘贴板!
GraalVM 不支持原生模式使用 stats 操作,因为 GraalVM 不支持 JMX。因此,试图在 classpath 上构建带有 camel-quarkus-management 扩展的原生镜像将导致构建失败。
Camel Extensions for Quarkus 不支持此功能。
2.18. Core 复制链接链接已复制到粘贴板!
Camel 核心功能和基本 Camel 语言/常量、交换属性、Header、Ref、Simple 和 Tokenize
2.18.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.18.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
2.18.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.18.3.1. 简单语言 复制链接链接已复制到粘贴板!
2.18.3.1.1. 使用 OGNL 表示法 复制链接链接已复制到粘贴板!
使用简单语言中的 OGNL 表示法时,应使用 camel-quarkus-bean 扩展。
例如,以下简单的表达式是访问类型为 Client 的消息正文的 getAddress () 方法。
---
simple("${body.address}")
---
---
simple("${body.address}")
---
在这种情况下,应该依赖 camel-quarkus-bean 扩展的额外依赖项 ,如下所述。请注意,在原生模式中,可能需要注册一些类来反映。在上例中,Client 类需要 进行注册以进行反映。
2.18.3.1.2. 在原生模式中使用动态类型解析 复制链接链接已复制到粘贴板!
当从简单表达式动态解析类型时,如下所示:
-
simple("${mandatoryBodyAs(TYPE)}") -
simple("${type:package.Enum.CONSTANT}") -
from("…").split(bodyAs(TYPE.class)) -
simple("${body} is TYPE")
可能需要注册一些类来手动反映。
例如,以下简单的表达式在运行时动态解析 java.nio.ByteBuffer 类型:
---
simple("${body} is 'java.nio.ByteBuffer'")
---
---
simple("${body} is 'java.nio.ByteBuffer'")
---
因此,类 java.nio.ByteBuffer 需要注册来反映。
2.18.3.1.3. 在原生模式中使用带有 classpath 资源的简单语言 复制链接链接已复制到粘贴板!
如果您的路由应该从 classpath 加载一个简单脚本,如下例所示
from("direct:start").transform().simple("resource:classpath:mysimple.txt");
from("direct:start").transform().simple("resource:classpath:mysimple.txt");
然后,您需要使用 Quarkus quarkus.native.resources.includes 属性将资源包含在原生可执行文件中,如下所示:
quarkus.native.resources.includes = mysimple.txt
quarkus.native.resources.includes = mysimple.txt
2.18.3.1.4. 通过原生模式的属性配置自定义 bean 复制链接链接已复制到粘贴板!
当通过原生模式中的属性指定自定义 bean 时,如 #class:* or #type:*,可能需要注册一些类来手动反映。
例如,以下自定义 bean 定义涉及对 bean 实例化和 setter 调用进行反映:
--- camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection camel.beans.customBeanWithSetterInjection.counter = 123 ---
---
camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection
camel.beans.customBeanWithSetterInjection.counter = 123
---
因此,类 PropertiesCustomBeanWithSetterInjection 需要为反映注册,请注意,在这种情况下可以省略字段访问权限。
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
当设置为 true 时, |
|
|
|
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。匹配文件中定义的服务无法通过 |
| |
|
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。匹配文件中定义的服务将通过 |
| |
|
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。在应用的静态初始化过程中,匹配文件中定义的服务不会添加到 Camel registry 中。excludes 的优先级高于 includes。此处定义的 excludes 还可以用来传递 Camel Quarkus 扩展中包含的服务的注册。示例值: |
| |
|
以逗号分隔的 Ant-path 风格模式列表,以匹配 classpath 中的 Camel 服务定义文件。匹配文件中定义的服务将在应用程序的静态初始化过程中添加到 Camel registry 中,除非给定的文件通过 |
| |
|
如果为 |
|
|
|
如果为 |
|
|
|
如果为 |
|
|
|
如果为 |
|
|
|
在静态初始化过程中启用自动发现路由。 |
|
|
|
用于独占过滤 RouteBuilder 类的扫描。专用过滤优先于包含的过滤。模式使用 ant-path 风格模式。可以使用逗号分隔多个模式。例如,要排除所有以 Bar 开始的类,使用:**/Bar*;要排除所有组成一个特定数据包的路由,使用:com/mycompany/bar/*;要排除所有组成一个特定数据包和它的子数据包的路由,使用双通配符:com/mycompany/bar/**;要排除所有来自两个特定数据包的路由,使用:com/mycompany/bar/*,com/mycompany/stuff/* |
| |
|
用于过滤 RouteBuilder 类的扫描。专用过滤优先于包含的过滤。模式使用 ant-path 风格模式。可以使用逗号分隔多个模式。例如,要包括所有以 Foo 开始的类,使用:**/Foo*;要包括所有组成一个特定数据包的路由,使用:com/mycompany/foo/*;要包括所有组成一个特定数据包和它的子数据包的路由,使用双通配符:com/mycompany/foo/**;要包括所有来自两个特定数据包的路由,使用:com/mycompany/foo/*,com/mycompany/stuff/* |
| |
|
由 Camel Quarkus 2.0.0 中的 |
| |
|
由 Camel Quarkus 2.0.0 中的 |
| |
|
以逗号分隔的 Ant-path 风格模式列表,以匹配应排除在 Register for reflection 中的类名称。使用 |
| |
|
以逗号分隔的 Ant-path 风格模式列表,以匹配应该注册以进行反映的类名称。使用 |
| |
|
如果为 |
|
|
|
如果构建时无法从路由定义中提取 CSimple 表达式,则做什么。 |
|
|
|
是否启用 Camel 事件到 CDI 事件。这允许为 Camel 事件配置 CDI 观察器。例如,那些属于 |
|
|
|
启用/禁用 camel 源位置的构建时间配置选项 |
|
|
|
等待 |
|
|
|
|
|
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.19. Cron 复制链接链接已复制到粘贴板!
通过 Unix cron 语法指定的时间触发事件的通用接口。
2.19.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Cron component, URI 语法:
cron:name
有关使用和配置详情,请参阅上述链接。
2.19.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cron</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cron</artifactId>
</dependency>
2.19.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
cron 组件是一个通用接口组件,因为 Camel Quarkus 用户需要将 cron 扩展与提供实施的另一个扩展一起使用。
2.20. CXF 复制链接链接已复制到粘贴板!
使用 Apache CXF 公开 SOAP WebServices,或使用 CXF WS 客户端连接到外部 WebServices。
2.20.1. 内部是什么 复制链接链接已复制到粘贴板!
此端点有两个 URI 格式:
- cxf:bean:cxfEndpoint
- CxfEndpoint 代表一个 bean ID,它引用 Spring bean registry 中的 bean。
- cxf://someAddress
- someAddress 指定 CXF 端点的地址。
有关使用和配置详情,请参阅 CXF 组件。
2.20.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cxf-soap</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-cxf-soap</artifactId>
</dependency>
2.20.3. 使用方法 复制链接链接已复制到粘贴板!
2.20.3.1. General 复制链接链接已复制到粘贴板!
camel-quarkus-cxf-soap 使用 CXF Extensions for Quarkus 项目的扩展 - quarkus-cxf。这意味着 quarkus-cxf 提供了一组支持的用例和 WS 规格。
要了解支持的用例和 WS 规格,请参阅 Quarkus CXF 参考。
2.20.3.2. 依赖项管理 复制链接链接已复制到粘贴板!
Camel Extensions for Quarkus 管理 CXF 和 quarkus-cxf 版本。您不需要为这些项目选择兼容版本。
2.20.3.3. 客户端 复制链接链接已复制到粘贴板!
使用 camel-quarkus-cxf-soap (不需要额外的依赖项),您可以在 Camel 路由中使用 CXF 客户端作为制作者:
CalculatorService 可能类似如下:
JAX-WS 注释是必需的。不支持简单 CXF Frontend。复杂的参数类型需要 JAXB 注释才能在原生模式下正常工作。
您可以针对实现此服务端点接口的 quay.io/l2x6/calculator-ws:1.2 容器测试此客户端应用程序:
docker run -p 8082:8080 quay.io/l2x6/calculator-ws:1.2
$ docker run -p 8082:8080 quay.io/l2x6/calculator-ws:1.2
Quarkus-cxf 支持使用 @io.quarkiverse.cxf.annotation.CXFClient 注释 注入 SOAP 客户端。如需了解更多详细信息,请参阅 quarkus-cxf 用户指南中的 SOAP 客户端 章节。
2.20.3.4. Server 复制链接链接已复制到粘贴板!
使用 camel-quarkus-cxf-soap 时,您可以将 SOAP 端点公开为 Camel 路由中的消费者。这个用例不需要额外的依赖项。
这两个服务的路径取决于 quarkus.cxf.path 配置属性值,该配置属性值 可在 application.properties 中设置:
application.properties
quarkus.cxf.path = /soap-services
quarkus.cxf.path = /soap-services
使用这个配置,您可以分别访问 http://localhost:8080/soap-services/hello-bean 和 http://localhost:8080/soap-services/hello-inline 这两个服务。
您可以通过将 ?wsdl 添加到上述 URL 来访问 WSDL。
除非在 100% 确保没有其他扩展需要公开 HTTP 端点,否则不要在应用程序中使用 quarkus.cxf.path = /。
从 CEQ 2.13.3 开始,quarkus.cxf.path 的默认值为 /。默认值将阻止其他扩展公开 HTTP 端点。
这会影响 RESTEasy、Vert.x、小型健康等。如果使用其中任何一个,您应该将 quarkus.cxf.path 设置为某些特定路径,如 /services,这是从 Camel Extensions for Quarkus 3.0.0 / quarkus-cxf 2.0.0 开始的默认设置。
Quarkus-cxf 支持公开 SOAP 端点的替代方法。如需了解更多详细信息,请参阅 quarkus-cxf 用户指南中的 SOAP 服务章节。
2.20.3.5. 日志记录请求和响应 复制链接链接已复制到粘贴板!
您可以为使用 org.apache.cxf.ext.logging.LoggingFeature 的客户端和服务器启用 SOAP 消息的详细日志记录:
io.quarkiverse.cxf:quarkus-cxf-rt-features-logging 支持 org.apache.cxf.ext.logging.LoggingFeature 作为 camel-quarkus-cxf-soap 依赖项。
您不需要显式将其添加到应用程序中。
2.20.3.6. WS 规格 复制链接链接已复制到粘贴板!
支持的 WS 规格的扩展由 Quarkus CXF 项目提供。
要了解支持的用例和 WS 规格,请参阅 Quarkus CXF 参考。
如果您的应用程序需要一些其他 WS 规格,您必须添加涵盖它的 Quarkus CXF 依赖项。
在 Camel Extensions for Quarkus 中,我们支持使用支持级别 Stable 列出的所有扩展。
您可以使用集成测试作为实现各种 WS 规格的应用程序的可执行示例:
2.20.3.7. 工具 复制链接链接已复制到粘贴板!
Quarkus-cxf 包装以下两个 CXF 工具:
-
wsdl2Java- 用于从 WSDL 生成服务类 -
java2ws- 用于从 Java 类生成 WSDL
要使 wsdl2Java 正常工作,您的应用程序必须直接依赖于 io.quarkiverse.cxf:quarkus-cxf。
虽然不支持 wsdlvalidator,但您可以使用 wsdl2Java 和 application.properties 中的以下配置来验证 WSDL:
application.properties
quarkus.cxf.codegen.wsdl2java.additional-params = -validate
quarkus.cxf.codegen.wsdl2java.additional-params = -validate
2.21. 数据格式 复制链接链接已复制到粘贴板!
使用 Camel 数据格式作为常规 Camel 组件。
有关 Camel Extensions for Quarkus 中支持的数据格式的详情,请参阅支持的数据格式。
2.21.1. 内部是什么 复制链接链接已复制到粘贴板!
-
数据格式组件, URI 语法:
dataformat:name:operation
有关用法和配置详情,请参阅上述链接。
2.21.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-dataformat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-dataformat</artifactId>
</dependency>
2.22. dataset 复制链接链接已复制到粘贴板!
提供 Camel 应用程序的负载和 soak 测试数据。
2.22.1. 内部是什么 复制链接链接已复制到粘贴板!
-
dataset 组件, URI 语法:
dataset:name -
dataset Test 组件, URI 语法:
dataset-test:name
有关使用和配置详情,请参阅上述链接。
2.22.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-dataset</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-dataset</artifactId>
</dependency>
2.23. direct 复制链接链接已复制到粘贴板!
同步调用来自同一 Camel 上下文的另一个端点。
2.23.1. 内部是什么 复制链接链接已复制到粘贴板!
-
直接组件, URI 语法:
direct:name
有关使用和配置详情,请参阅上述链接。
2.23.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
2.24. FHIR 复制链接链接已复制到粘贴板!
使用 FHIR (Fast Healthcare Interoperability Resources)标准在电信域中交换信息。Marshall 和 unmarshall FHIR 对象到/从 JSON。Marshall 和 unmarshall FHIR 对象到/来自 XML。
2.24.1. 内部是什么 复制链接链接已复制到粘贴板!
-
FHIR 组件, URI 语法:
fhir:apiName/methodName - FHIR JSon 数据格式
- FHIR XML 数据格式
有关使用和配置详情,请参阅上述链接。
2.24.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-fhir</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-fhir</artifactId>
</dependency>
2.24.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.24.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
默认情况下,只有 FHIR 版本 R4 和 DSTU3 以原生模式启用,因为它们是 FHIR 组件和 DataFormat 上的默认值。
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
在原生模式下启用 FHIR DSTU2 Specs。 |
|
|
|
以原生模式启用 FHIR DSTU2_HL7ORG Specs。 |
|
|
|
在原生模式下启用 FHIR DSTU2_1 Specs。 |
|
|
|
在原生模式下启用 FHIR DSTU3 Specs。 |
|
|
|
在原生模式下启用 FHIR R4 Specs。 |
|
|
|
在原生模式下启用 FHIR R5 Specs。 |
|
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.25. File 复制链接链接已复制到粘贴板!
读取和写入文件。
2.25.1. 内部是什么 复制链接链接已复制到粘贴板!
-
文件组件, URI 语法:
file:directoryName
有关使用和配置详情,请参阅上述链接。
2.25.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-file</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-file</artifactId>
</dependency>
2.25.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.25.3.1. 在从给定端点消耗的集群中只有一个使用者 复制链接链接已复制到粘贴板!
当将同一路由部署到多个 JVM 时,最好将这个扩展与 Master 结合使用。在这种情况下,单个消费者将在整个 camel master 命名空间间处于活跃状态。
例如,在多个 JVM 上部署了以下路由:
from("master:ns:timer:test?period=100").log("Timer invoked on a single JVM at a time");
from("master:ns:timer:test?period=100").log("Timer invoked on a single JVM at a time");
可以使用如下属性启用集群集群服务:
quarkus.camel.cluster.file.enabled = true quarkus.camel.cluster.file-root = target/cluster-folder-where-lock-file-will-be-held
quarkus.camel.cluster.file.enabled = true
quarkus.camel.cluster.file-root = target/cluster-folder-where-lock-file-will-be-held
因此,单个消费者将在 ns camel master 命名空间中激活。这意味着,在一个给定时间点上,只有一个计时器将生成所有 JVM 的交换。换句话说,在某个时间点上,消息将在单个 JVM 上每 100ms 进行一次日志记录。
文件集群服务可以通过 quarkus.camel.cluster.file.* 属性进一步进行调整。
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
文件锁定群集服务是否应根据 'quarkus.camel.cluster.file.*' 配置自动配置。 |
|
|
|
集群服务 ID (默认为 null)。 |
| |
|
根路径(默认为 null)。 |
| |
|
服务查找顺序/优先级(默认为 2147482647)。 |
| |
|
开始尝试获取锁定前等待的时间(默认为 1000ms)。 |
| |
|
尝试获取锁定之间等待的时间(默认为 10000ms)。 |
| |
|
与服务关联的自定义属性(默认为空映射)。 |
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.26. FTP 复制链接链接已复制到粘贴板!
将文件上传到 SFTP、FTP 或者 SFTP 服务器
2.26.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.26.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-ftp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-ftp</artifactId>
</dependency>
2.27. gson 复制链接链接已复制到粘贴板!
marshal POJOs 到 JSON,并使用 Gson 重新
2.27.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.27.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-gson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-gson</artifactId>
</dependency>
2.27.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.27.3.1. 原生模式的 marshaling/Unmarshaling 对象 复制链接链接已复制到粘贴板!
当以原生模式 marshaling/unmarshaling 对象时,需要 注册 所有序列化类来反映。因此,当使用 GsonDataFormat.setUnmarshalType (…), GsonDataFormat.setUnmarshalTypeName (…),甚至 GsonDataFormat.setUnmarshalType (…) 时,应注册 unmarshal 类型以及子字段类型来反映。请参见此集成测试中的工作示例。
2.28. Google BigQuery 复制链接链接已复制到粘贴板!
使用 SQL 查询或 Google Client Services API 访问 Google Cloud BigQuery 服务
2.28.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Google BigQuery 组件, URI 语法:
google-bigquery:projectId:datasetId:tableId -
Google BigQuery Standard SQL 组件, URI 语法:
google-bigquery-sql:projectId:queryString
有关使用和配置详情,请参阅上述链接。
2.28.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-bigquery</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-bigquery</artifactId>
</dependency>
2.28.3. 使用方法 复制链接链接已复制到粘贴板!
如果要在原生模式下使用 google-bigquery-sql 从 classpath 读取 SQL 脚本,则需要确保通过 quarkus.native.resources.includes 配置属性将它们添加到原生镜像中。请参阅 Quarkus 文档了解更多详情。
2.29. Google Pubsub 复制链接链接已复制到粘贴板!
向 Google Cloud Platform PubSub Service 发送和接收消息。
2.29.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Google Pubsub 组件, URI 语法:
google-pubsub:projectId:destinationName
有关使用和配置详情,请参阅上述链接。
2.29.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-pubsub</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-google-pubsub</artifactId>
</dependency>
2.29.3. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
默认情况下,当消息正文不是 String 或 byte[] 外,Camel PubSub 组件使用 JDK 对象序列化通过 ObjectOutputStream 进行序列化。
由于 GraalVM 尚不支持这种序列化,因此此扩展提供了一个基于 Jackson 的序列化程序来序列化复杂消息有效负载作为 JSON。
如果您的有效负载包含二进制数据,则需要通过创建自定义 Jackson Serializer / Deserializer 来处理这一数据。有关如何进行此操作的信息,请参阅 Quarkus Jackson 指南。
2.30. HL7 复制链接链接已复制到粘贴板!
使用 HL7 MLLP codec marshal 和 unmarshal HL7 (Health Liberty)模型对象。
2.30.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.30.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-hl7</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-hl7</artifactId>
</dependency>
2.30.3. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
对于使用 TCP 的 MLLP,Netty 是运行 Hl7 MLLP 侦听程序唯一支持的方法。不支持 mina,因为它目前没有 GraalVM 原生支持。
可选的对 HL7MLLPNettyEncoderFactory & HL7MLLPNettyDecoderFactory codecs 的支持可以通过在您的项目 pom.xml 中将依赖项添加到 camel-quarkus-netty 实现。
2.31. HTTP 复制链接链接已复制到粘贴板!
使用 Apache HTTP 客户端 4.x 向外部 HTTP 服务器发送请求。
2.31.1. 内部是什么 复制链接链接已复制到粘贴板!
-
HTTP 组件, URI 语法:
http://httpUri -
HTTPS (安全)组件,URI 语法
:https://httpUri
有关使用和配置详情,请参阅上述链接。
2.31.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-http</artifactId>
</dependency>
2.31.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.31.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
- 如果您希望应用程序使用非默认编码发送或接收请求,请检查原生模式指南的 Character encodings 部分。
2.32. Infinispan 复制链接链接已复制到粘贴板!
从/写入 Infinispan 分布式键/值存储和数据网格。
2.32.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Infinispan 组件, URI 语法:
infinispan:cacheName
有关使用和配置详情,请参阅上述链接。
2.32.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-infinispan</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-infinispan</artifactId>
</dependency>
2.32.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.32.3.1. Infinispan 客户端配置 复制链接链接已复制到粘贴板!
您可以通过相关的 Camel Infinispan 组件和端点选项配置 Infinispan 客户端,也可以使用 Quarkus Infinispan 扩展配置属性。
如果您选择在原生模式中使用 InfinispanRemoteAggregationRepository,则必须启用原生序列化支持。
2.33. Jacks 复制链接链接已复制到粘贴板!
marshal POJOs 到 JSON,并使用 Jackson 回来
2.33.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.33.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson</artifactId>
</dependency>
2.33.3. 使用方法 复制链接链接已复制到粘贴板!
2.33.3.1. 配置 Jackson ObjectMapper 复制链接链接已复制到粘贴板!
有几种方法来配置 JacksonDataFormat 使用的对象 映射程序。下面概述了它们。
2.33.3.1.1. JacksonDataFormat内部创建的 ObjectMapper 复制链接链接已复制到粘贴板!
默认情况下,JacksonDataFormat 将创建自己的 对象映射 程序,并使用 DataFormat 上的各种配置选项来配置额外的 Jackson 模块、用户友善的打印和其他功能。
2.33.3.1.2. 用于 JacksonDataFormat 的自定义 ObjectMapper 复制链接链接已复制到粘贴板!
您可以将自定义 ObjectMapper 实例传递给 JacksonDataFormat,如下所示:
Quarkus Jackson 扩展公开一个 ObjectMapper CDI bean,可通过 JacksonDataFormat 发现。
如果您在 Camel REST DSL 中使用 JSON 绑定模式,并希望使用 Quarkus Jackson ObjectMapper,如下所示:
您可以在带有 ObjectMapperCustomizer 的 Quarkus ObjectMapper 中执行自定义。
也可以 @Inject the Quarkus ObjectMapper 并将其传递给 JacksonDataFormat。
2.34. Avro Jackson 复制链接链接已复制到粘贴板!
marshal POJOs 到 Avro,并使用 Jackson 回来。
2.34.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.34.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson-avro</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson-avro</artifactId>
</dependency>
2.35. protobuf Jackson 复制链接链接已复制到粘贴板!
marshal POJOs 到 Protobuf,并使用 Jackson 回来。
2.35.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.35.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson-protobuf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jackson-protobuf</artifactId>
</dependency>
2.36. JacksonXML 复制链接链接已复制到粘贴板!
将 XML 有效负载解压缩为 POJO,并使用 Jackson 的 XMLMapper 扩展返回。
2.36.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.36.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jacksonxml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jacksonxml</artifactId>
</dependency>
2.37. JAXB 复制链接链接已复制到粘贴板!
将 XML 有效负载解压缩为 POJO,并使用 JAXB2 XML marshalling 标准。
2.37.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.37.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jaxb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jaxb</artifactId>
</dependency>
2.37.3. 使用方法 复制链接链接已复制到粘贴板!
2.37.3.1. 非 JAXB 注解类的原生模式 ObjectFactory 实例化 复制链接链接已复制到粘贴板!
使用自定义 ObjectFactory 执行 JAXB marshal 操作时,以实例化没有 JAXB 注解的 POJO 类,您必须注册这些 POJO 类来反映它们以原生模式实例化。例如,通过 @RegisterForReflection 注释或配置属性 quarkus.camel.native.reflection.include-patterns。
如需更多信息 ,请参阅原生模式 用户指南。
2.38. JDBC 复制链接链接已复制到粘贴板!
通过 SQL 和 JDBC 访问数据库。
2.38.1. 内部是什么 复制链接链接已复制到粘贴板!
-
JDBC 组件, URI 语法:
jdbc:dataSourceName
有关使用和配置详情,请参阅上述链接。
2.38.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jdbc</artifactId>
</dependency>
2.38.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.38.3.1. 配置数据源 复制链接链接已复制到粘贴板!
此扩展利用 Quarkus Agroal 用于 DataSource 支持。可以通过 配置属性 实现数据源。建议您显式命名数据源,以便在 JDBC 端点 URI 中引用它。e.g like to ("jdbc:camel").
quarkus.datasource.camel.db-kind=postgresql quarkus.datasource.camel.username=your-username quarkus.datasource.camel.password=your-password quarkus.datasource.camel.jdbc.url=jdbc:postgresql://localhost:5432/your-database quarkus.datasource.camel.jdbc.max-size=16
quarkus.datasource.camel.db-kind=postgresql
quarkus.datasource.camel.username=your-username
quarkus.datasource.camel.password=your-password
quarkus.datasource.camel.jdbc.url=jdbc:postgresql://localhost:5432/your-database
quarkus.datasource.camel.jdbc.max-size=16
如果选择不命名数据源,您可以通过定义端点 ("jdbc:default") 来解析默认的 DataSource。
2.38.3.1.1. 使用 Quarkus Dev 服务进行零配置 复制链接链接已复制到粘贴板!
在 dev 和 test 模式中,您可以利用 配置空闲数据库。您需要做的只是引用路由中的默认数据库。e.g to ("jdbc:default").
2.39. Jira 复制链接链接已复制到粘贴板!
与 JIRA 问题跟踪器交互。
2.39.1. 内部是什么 复制链接链接已复制到粘贴板!
-
JIRA 组件, URI 语法:
jira:type
有关使用和配置详情,请参阅上述链接。
2.39.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jira</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jira</artifactId>
</dependency>
2.39.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.40. JMS 复制链接链接已复制到粘贴板!
发送和接收来自 JMS Queue 或 Topic 的信息。
2.40.1. 内部是什么 复制链接链接已复制到粘贴板!
-
JMS 组件, URI 语法:
jms:destinationType:destinationName
有关使用和配置详情,请参阅上述链接。
2.40.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jms</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jms</artifactId>
</dependency>
2.40.3. 使用方法 复制链接链接已复制到粘贴板!
2.40.3.1. 带有 org.w3c.dom.Node的消息映射 复制链接链接已复制到粘贴板!
Camel JMS 组件支持 javax.jms.Message 和 org.apache.camel.Message 之间的消息映射。当希望转换 org.w3c.dom.Node 的 Camel 消息正文类型时,您必须确保 classpath 上存在 camel-quarkus-jaxp 扩展。
2.40.3.2. 对 javax.jms.ObjectMessage 的原生模式支持 复制链接链接已复制到粘贴板!
将 JMS 消息有效负载作为 javax.jms.ObjectMessage 发送时,您必须注解相关类以使用 @RegisterForReflection (serialization = true) 进行序列化。请注意,这个扩展会自动为您设置 quarkus.camel.native.reflection.serialization-enabled = true。如需更多信息,请参阅 原生模式用户指南。
2.40.3.3. 支持连接池和 X/Open XA 分布式事务 复制链接链接已复制到粘贴板!
连接池在此发行版本中为 Quarkus 的 Camel Extensions 是一个技术预览功能。
要在 camel-quarkus-jms 组件中使用连接池,您必须将 io.quarkiverse.artemis:quarkus-artemis 和 io.quarkiverse.messaginghub:quarkus-pooled-jms 添加到 pom.xml 中,并设置以下配置:
quarkus.pooled-jms.max-connections = 8
quarkus.pooled-jms.max-connections = 8
您可以使用 quarkus-pooled-jms 扩展来获取对 JMS 连接的池和 XA 支持。如需更多信息,请参阅 quarkus-pooled-jms 扩展文档。目前,它只适用于 quarkus-artemis-jms 扩展。只需将这两个依赖项添加到 pom.xml 中:
请注意,池会被默认启用。
要启用 XA,您需要在 application.properties 中添加以下配置:
quarkus.pooled-jms.xa.enabled=true
quarkus.pooled-jms.xa.enabled=true
池连接不支持 clientID 和 durableSubscriptionName。如果在池 重复使用 的连接上调用 setClientID,则会抛出 IllegalStateException。您将收到一些错误消息,如 Cause: setClientID 只能在创建连接后直接调用
2.40.4. 原生模式中的 transferException 选项 复制链接链接已复制到粘贴板!
要在原生模式中使用 transferException 选项,您必须启用对对象序列化的支持。如需更多信息,请参阅 原生模式用户指南。
您还需要为您要序列化的异常类启用序列化。例如:
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
2.41. JPA 复制链接链接已复制到粘贴板!
使用 Java Persistence API (DSL)从数据库存储和检索 Java 对象。
2.41.1. 内部是什么 复制链接链接已复制到粘贴板!
-
JPA component, URI 语法:
jpa:entityType
有关使用和配置详情,请参阅上述链接。
2.41.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jpa</artifactId>
</dependency>
2.41.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
扩展利用 Quarkus Hibernate ORM 通过 Hibernate 提供 JPA 实现。
请参阅 Quarkus Hibernate ORM 文档以了解如何配置 Hibernate 和数据源,
当使用单一持久性单元时,Camel Quarkus JPA 扩展将使用 EntityManagerFactory 和 TransactionManager 自动配置 JPA 组件。
2.42. JSON 路径 复制链接链接已复制到粘贴板!
针对 JSON 消息正文评估 JSONPath 表达式
2.42.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.42.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jsonpath</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jsonpath</artifactId>
</dependency>
2.43. JTA 复制链接链接已复制到粘贴板!
使用 Java Transaction API (JTA)和 Narayana 事务管理器将 Camel 路由包含在事务中
2.43.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.43.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jta</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jta</artifactId>
</dependency>
2.43.3. 使用方法 复制链接链接已复制到粘贴板!
当您需要在路由器中使用转换 ()EIP 时, 应添加此扩展。它利用 Quarkus 中的 narayana-jta 扩展提供的事务功能。
有关事务支持的详情,请参阅 Quarkus Transaction 指南。对于简单用途:
from("direct:transaction")
.transacted()
.to("sql:INSERT INTO A TABLE ...?dataSource=ds1")
.to("sql:INSERT INTO A TABLE ...?dataSource=ds2")
.log("all data are in the ds1 and ds2")
from("direct:transaction")
.transacted()
.to("sql:INSERT INTO A TABLE ...?dataSource=ds1")
.to("sql:INSERT INTO A TABLE ...?dataSource=ds2")
.log("all data are in the ds1 and ds2")
为各种事务策略提供支持。
| 策略 | 描述 |
|---|---|
|
| 支持当前事务;如果没有当前事务,则抛出异常。 |
|
| 不支持当前事务;如果存在当前事务,则抛出异常。 |
|
| 不支持当前的事务,而是始终执行非事务。 |
|
| 支持当前事务;如果不存在,创建一个新事务。 |
|
| 创建新事务,并在存在当前事务时挂起当前的事务。 |
|
| 支持当前事务;如果不存在,则执行非事务。 |
2.44. JSLT 复制链接链接已复制到粘贴板!
使用 JSLT 查询或转换 JSON 有效负载。
2.44.1. 内部是什么 复制链接链接已复制到粘贴板!
-
JSLT 组件, URI 语法:
jslt:resourceUri
有关使用和配置详情,请参阅上述链接。
2.44.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jslt</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jslt</artifactId>
</dependency>
2.44.3. 原生模式中的 allowContextMapAll 选项 复制链接链接已复制到粘贴板!
原生模式下不支持 allowContextMapAll 选项,因为它需要对安全敏感 camel 内核类(如 CamelContext 和 Exchange )进行反映访问。这被视为安全风险,因此默认不提供对该功能的访问。
2.44.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.44.4.1. 从原生模式的类路径加载 JSLT 模板 复制链接链接已复制到粘贴板!
此组件通常从 classpath 加载模板。要使它也以原生模式工作,您需要使用 quarkus.native.resources.includes 属性将模板文件明确嵌入到原生可执行文件中。
例如,以下路由将从名为 transformation.json 的类路径资源加载 JSLT 模式:
from("direct:start").to("jslt:transformation.json");
from("direct:start").to("jslt:transformation.json");
要在原生镜像中包含它(可能存储在 .json 文件中的其他模板),您必须将类似如下的内容添加到 application.properties 文件中:
quarkus.native.resources.includes = *.json
quarkus.native.resources.includes = *.json
2.44.4.2. 在原生模式中使用 JSLT 功能 复制链接链接已复制到粘贴板!
当在原生模式下使用 camel-quarkus 中的 JSLT 功能时,需要 注册托管函数的类来反映。当无法注册目标功能时,可能会最终编写 stub,如下所示。
目标功能 Math.pow (…) 现在可以通过 MathFunctionStub 类访问,这些类可以在组件中注册,如下所示:
2.45. Kafka 复制链接链接已复制到粘贴板!
发送和接收来自 Apache Kafka 代理的信息。
2.45.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Kafka 组件, URI 语法:
kafka:topic
有关使用和配置详情,请参阅上述链接。
2.45.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kafka</artifactId>
</dependency>
2.45.3. 使用方法 复制链接链接已复制到粘贴板!
2.45.3.1. Quarkus Kafka Dev Services 复制链接链接已复制到粘贴板!
Camel Quarkus Kafka 可以使用 Quarkus Kafka Dev 服务 来简化使用本地容器化 Kafka 代理的开发和测试。
在 dev 和 test 模式中默认启用 Kafka Dev Services。Camel Kafka 组件会自动配置,以便 brokers 组件选项被设置为指向本地容器化 Kafka 代理。这代表,无需自行配置这个选项。
可以使用配置属性 quarkus.kafka.devservices.enabled=false 来禁用此功能。
2.45.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
如果为 |
|
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.46. kamelet 复制链接链接已复制到粘贴板!
材料化路由模板
2.46.1. 内部是什么 复制链接链接已复制到粘贴板!
-
kamelet 组件, URI 语法:
kamelet:templateId/routeId
有关使用和配置详情,请参阅上述链接。
2.46.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kamelet</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kamelet</artifactId>
</dependency>
2.46.3. 使用方法 复制链接链接已复制到粘贴板!
2.46.3.1. 构建时预加载 Kamelets 复制链接链接已复制到粘贴板!
此扩展允许使用 quarkus.camel.kamelet.identifiers 属性在构建时预加载一组 Kamelets。
2.46.3.2. 使用 Kamelet Catalog 复制链接链接已复制到粘贴板!
可以在 /camel-kamelets/latest[Kamelet Catalog] 中找到一组 pre-made Kamelets。要使用目录中的 Kamelet,您需要复制其 yaml 定义(您可以在 classpath 项目中的 camel-kamelet repo中找到)。或者,您可以将 camel-kamelets-catalog 工件添加到 pom.xml 中:
<dependency>
<groupId>org.apache.camel.kamelets</groupId>
<artifactId>camel-kamelets-catalog</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.kamelets</groupId>
<artifactId>camel-kamelets-catalog</artifactId>
</dependency>
此工件将目录中所有可用的 kamelets 添加到 Camel Quarkus 应用程序,以进行构建时间处理。如果您包括了它并提供了范围,工件不应是运行时类路径的一部分,但在构建时,所有通过 quarkus.camel.kamelet 列出的所有 kamelets 属性列出的 kamelets 都应该被预加载。
2.46.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
构建时预加载的 kamelets 标识符列表。每个单独的标识符都用于设置相关的 |
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.47. Kubernetes 复制链接链接已复制到粘贴板!
对 Kubernetes API 执行操作
2.47.1. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
2.47.2. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
在这个 Camel Extensions for Quarkus 发行版本中,只有将 camel-quarkus-master 扩展用作集群服务时,才支持 camel-quarkus-kubernetes 扩展。另外,为了支持 camel-quarkus-kubernetes 扩展,您必须在应用程序中明确添加对 quarkus-openshift-client 扩展的依赖项。
2.47.2.1. 自动注册 Kubernetes 客户端实例 复制链接链接已复制到粘贴板!
扩展会自动注册名为 kubernetesClient 的 Kubernetes 客户端 Bean。您可以在路由中引用 bean,如下所示:
from("direct:pods")
.to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
from("direct:pods")
.to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
默认情况下,客户端从本地 kubeconfig 文件中配置。您可以通过 application.properties 中的属性自定义客户端配置:
quarkus.kubernetes-client.master-url=https://my.k8s.host quarkus.kubernetes-client.namespace=my-namespace
quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
完整的配置选项包括在 Quarkus Kubernetes 客户端指南 中。
2.47.2.2. 在从给定端点消耗的集群中只有一个使用者 复制链接链接已复制到粘贴板!
当将同一路由部署到多个 pod 时,最好将这个扩展与 Master 结合使用。在这种情况下,单个消费者将在整个 camel master 命名空间间处于活跃状态。
例如,在多个 pod 上部署了以下路由:
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
可使用类似如下的属性启用 kubernetes 集群服务:
quarkus.camel.cluster.kubernetes.enabled = true
quarkus.camel.cluster.kubernetes.enabled = true
因此,单个消费者将在 ns camel master 命名空间中激活。这意味着,在一个给定时间,只有一个计时器将在整个集群中生成交换。换句话说,在某个时间点上,消息将在单个 pod 上每 100ms 进行一次日志记录。
kubernetes 集群服务可以通过调整 quarkus.camel.cluster.kubernetes the 属性来 进一步调整。
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
Kubernetes 集群服务是否应根据 'quarkus.camel.cluster.kubernetes.*' 配置自动配置。 |
|
|
|
集群服务 ID (默认为 null)。 |
| |
|
Kubernetes master 的 URL (默认为 Kubernetes 客户端属性读取)。 |
| |
|
向 Kubernetes API 服务器发出请求时使用的连接超时(毫秒)。 |
| |
|
包含 pod 和 configmap 的 Kubernetes 命名空间的名称(默认自动检测到)。 |
| |
|
当前 pod 的名称(默认为从容器主机名中检测)。 |
| |
|
要应用 jitter 因素,以防止所有 pod 在同一即时调用 Kubernetes API (默认为 1.2)。 |
| |
|
当前领导领导租期的默认持续时间(默认为 15000)。 |
| |
|
领导必须停止其服务的截止时间,因为它可能会丢失领导权(默认为 10000)。 |
| |
|
连续两次尝试检查并获取领导权利之间的时间。它利用 jitter 因子(默认为 2000)进行自定义。 |
| |
|
服务查找顺序/优先级(默认为 2147482647)。 |
| |
|
用于进行优化锁定的租期资源的名称(默认为"leaders")。当底层 Kubernetes 资源可以管理单个锁定时,资源名称用作前缀。 |
| |
|
Kubernetes 中使用的租期资源类型,可以是 'config-map' 或 'lease'(默认为 'lease')。 |
| |
|
camel master 命名空间领导是否应在集群中的所有 camel 上下文中平均分配。 |
|
|
|
用于识别组成集群的 pod 的键/值,默认为空映射。 |
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.48. Log 复制链接链接已复制到粘贴板!
将消息记录到底层日志记录机制。
2.48.1. 内部是什么 复制链接链接已复制到粘贴板!
-
日志组件, URI 语法:
log:loggerName
有关使用和配置详情,请参阅上述链接。
2.48.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-log</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-log</artifactId>
</dependency>
2.49. Mail 复制链接链接已复制到粘贴板!
使用 imap、pop3 和 smtp 协议发送和接收电子邮件。将附件附加到 MIME-Multipart 消息和后端的 marshal Camel 消息。
2.49.1. 内部是什么 复制链接链接已复制到粘贴板!
-
IMAP 组件, URI 语法:
imap:host:port -
IMAPS (安全)组件, URI 语法:
imaps:host:port - MIME 多部分数据格式
-
POP3 组件, URI 语法:
pop3:host:port -
POP3S 组件, URI 语法:
pop3s:host:port -
SMTP 组件, URI 语法:
smtp:host:port -
SMTPS 组件, URI 语法:
smtps:host:port
有关使用和配置详情,请参阅上述链接。
2.49.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mail</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mail</artifactId>
</dependency>
2.50. Master 复制链接链接已复制到粘贴板!
集群中只有一个消费者从给定端点消耗;如果 JVM 结束,则自动故障转移。
2.50.1. 内部是什么 复制链接链接已复制到粘贴板!
-
master 组件, URI 语法:
master:namespace:delegateUri
有关使用和配置详情,请参阅上述链接。
2.50.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-master</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-master</artifactId>
</dependency>
2.50.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
此扩展可与以下扩展一起使用:
2.51. MicroProfile Fault Tolerance 复制链接链接已复制到粘贴板!
使用 Microprofile Fault Tolerance 的断路器 EIP
2.51.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.51.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-fault-tolerance</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-fault-tolerance</artifactId>
</dependency>
2.52. MicroProfile Health 复制链接链接已复制到粘贴板!
通过 MicroProfile Health 公开 Camel 健康检查
2.52.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.52.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-health</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-health</artifactId>
</dependency>
2.52.3. 使用方法 复制链接链接已复制到粘贴板!
默认情况下,扩展 AbstractHealthCheck 的类都注册为存活度和就绪度检查。您可以覆盖控制此行为的 isReadiness 方法。
应用程序提供的任何检查都会被自动发现并绑定到 Camel registry。它们将通过 Quarkus 健康端点 /q/health/live 和 /q/health/ready 获得。
您还可以提供自定义 HealthCheckRepository 实现,它们也会自动发现并绑定到 Camel registry。
如需更多信息,请参阅 Quarkus 健康指南。
2.52.3.1. 提供的健康检查 复制链接链接已复制到粘贴板!
一些检查会自动为您的应用程序注册。
2.52.3.1.1. Camel Context Health 复制链接链接已复制到粘贴板!
检查 Camel 上下文状态,如果状态不是"Started",则会导致健康检查状态为 DOWN。
2.52.3.1.2. Camel Route Health 复制链接链接已复制到粘贴板!
检查每个路由的状态,并在任何路由状态不是"Started"时导致健康检查状态为 DOWN。
2.52.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
设置是否启用 Camel 健康检查 |
|
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.53. MicroProfile Metrics 复制链接链接已复制到粘贴板!
从 Camel 路由公开指标。
2.53.1. 内部是什么 复制链接链接已复制到粘贴板!
-
MicroProfile Metrics 组件, URI 语法:
microprofile-metrics:metricType:metricName
有关使用和配置详情,请参阅上述链接。
2.53.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-metrics</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-microprofile-metrics</artifactId>
</dependency>
2.53.3. 使用方法 复制链接链接已复制到粘贴板!
microprofile-metrics 组件自动公开一组 Camel 应用程序指标。其中一些包括:
2.53.3.1. Camel 上下文指标 复制链接链接已复制到粘贴板!
| 指标名称 | 类型 |
|---|---|
|
由 | 量表 |
|
Camel 上下文运行时间(毫秒) | 量表 |
|
完成的交换总数 | 计数 |
|
失败交换总数 | 计数 |
|
inflight 交换总数 | 量表 |
|
所有交换的总数 | 计数 |
|
所有外部 redeliveries 的总数 | 计数 |
|
所有故障处理的总数 | 计数 |
2.53.3.2. Camel Route 指标 复制链接链接已复制到粘贴板!
| 指标名称 | 类型 |
|---|---|
|
路由数量 | 量表 |
|
正在运行的路由数量 | 量表 |
|
路由已完成的交换总数 | 计数 |
|
路由失败交换总数 | 计数 |
|
路由 inflight 交换总数 | 量表 |
|
路由的所有交换总数 | 计数 |
|
路由的所有外部 redeliveries 的总数 | 计数 |
|
为路由处理的所有故障总数 | 计数 |
所有指标都标有 Camel 上下文的名称以及适用的路由的 id。
您还可以在 Camel 路由中生成自己的自定义指标。如需更多信息,请参阅 microprofile-metrics 组件文档。
指标作为应用程序指标公开给 Quarkus,可以通过 http://localhost:8080/q/metrics/application 浏览它们。
2.53.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
设置是否启用 MicroProfileMetricsRoutePolicyFactory,以便在路由处理时间捕获指标。 |
|
|
|
设置是否启用 MicroProfileMetricsMessageHistoryFactory,以便在单个路由节点上捕获指标。根据配置的路由节点的数量,可能会创建大量指标。因此,默认禁用这个选项。 |
|
|
|
设置是否启用 MicroProfileMetricsExchangeEventNotifier,以便在交换处理时间捕获指标。 |
|
|
|
设置是否启用 MicroProfileMetricsRouteEventNotifier,以捕获路由总数和运行的路由总数的指标。 |
|
|
|
设置是否启用 MicroProfileMetricsCamelContextEventNotifier 以捕获 CamelContext 的指标,如状态和运行时间。 |
|
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.54. MLLP 复制链接链接已复制到粘贴板!
使用 MLLP 协议与外部系统通信。
2.54.1. 内部是什么 复制链接链接已复制到粘贴板!
-
MLLP 组件, URI 语法:
mllp:hostname:port
有关使用和配置详情,请参阅上述链接。
2.54.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mllp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mllp</artifactId>
</dependency>
2.54.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
-
如果要使用
defaultCharset组件选项,请检查原生模式指南的 Character encodings 部分。
2.55. Mock 复制链接链接已复制到粘贴板!
使用模拟测试路由和介质规则。
2.55.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Mock 组件, URI 语法:
mock:name
有关使用和配置详情,请参阅上述链接。
2.55.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mock</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mock</artifactId>
</dependency>
2.55.3. 使用方法 复制链接链接已复制到粘贴板!
要在测试中使用 camel-mock 功能,需要访问 MockEndpoint 实例。
CDI 注入可用于访问实例(请参阅 Quarkus 文档)。您可以使用 @Inject 注释将 camelContext 注入测试。然后,可使用 Camel 上下文来获取模拟端点。请参见以下示例:
用于示例测试的路由:
2.55.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
CDI Bean 的注入(在 Usage 中相同)无法在原生模式下工作。
在原生模式下,测试下的测试和应用程序在两个不同的进程中运行,且无法在它们间共享模拟 Bean (请参阅 Quarkus 文档)。
2.56. MongoDB 复制链接链接已复制到粘贴板!
对 MongoDB 文档和集合执行操作。
2.56.1. 内部是什么 复制链接链接已复制到粘贴板!
-
MongoDB 组件, URI 语法:
mongodb:connectionBean
有关使用和配置详情,请参阅上述链接。
2.56.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mongodb</artifactId>
</dependency>
2.56.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
扩展利用 Quarkus MongoDB 客户端 扩展。Mongo 客户端可以通过 Quarkus MongoDB Client 配置选项配置。
Camel Quarkus MongoDB 扩展会自动注册名为 camelMongoClient 的 MongoDB 客户端 bean。这可以在 mongodb endpoint URI connectionBean path 参数中引用。例如:
from("direct:start")
.to("mongodb:camelMongoClient?database=myDb&collection=myCollection&operation=findAll")
from("direct:start")
.to("mongodb:camelMongoClient?database=myDb&collection=myCollection&operation=findAll")
如果您的应用程序需要使用多个 MongoDB 服务器,您可以通过注入客户端和相关配置,在路由中创建"名为"客户端并在路由中引用,如 Quarkus MongoDB 扩展客户端注入 中所述。例如:
//application.properties quarkus.mongodb.mongoClient1.connection-string = mongodb://root:example@localhost:27017/
//application.properties
quarkus.mongodb.mongoClient1.connection-string = mongodb://root:example@localhost:27017/
请注意,在使用命名客户端时,仍会生成"default" camelMongoClient bean。如需更多信息,请参阅 多个 MongoDB 客户端中的 Quarkus 文档。
2.57. Netty 复制链接链接已复制到粘贴板!
使用带有 Netty 4.x 的 TCP 或 UDP 的套接字级别网络。
2.57.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Netty components, URI 语法:
netty:protocol://host:port
有关使用和配置详情,请参阅上述链接。
2.57.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-netty</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-netty</artifactId>
</dependency>
2.58. OpenAPI Java 复制链接链接已复制到粘贴板!
公开 Camel REST DSL 中定义的 OpenAPI 资源
2.58.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.58.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-openapi-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-openapi-java</artifactId>
</dependency>
2.58.3. 使用方法 复制链接链接已复制到粘贴板!
您可以使用此扩展来向 Quarkus OpenAPI 公开 REST DSL 服务。使用 quarkus-smallrye-openapi 时,您可以通过 /q/openapi?format=json 访问它们。
如需更多信息,请参阅 Quarkus OpenAPI 指南。
这是一个实验性功能。您可以通过以下方法启用它
quarkus.camel.openapi.expose.enabled=true
quarkus.camel.openapi.expose.enabled=true
用户负责使用 @RegisterForReflection 来注册所有模型类以进行反映。
它目前不支持 org.apache.camel.builder.LambdaRouteBuilder 右侧的其他服务。另外,它无法在 RouteBuilder configure () 中使用 CDI 注入,因为我们在构建时获取其余定义,而 CDI 不可用。
2.58.4. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
不支持 apiContextIdListing 配置选项。由于 不支持多个 CamelContext,并且 Quarkus 应用程序独立运行,因此没有尝试解析特定 'CamelContext 的 OpenApi 规格 的情况会很有用。它还引入了一些需要 JMX 的开销(不支持原生模式),以及额外的 Camel Quarkus 扩展来处理 XML。
2.59. OpenTelemetry 复制链接链接已复制到粘贴板!
使用 OpenTelemetry 的分布式追踪
2.59.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.59.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>
2.59.3. 使用方法 复制链接链接已复制到粘贴板!
扩展会自动创建一个 Camel OpenTelemetry Tracer,并将其绑定到 Camel registry。
要将捕获的 trace 发送到追踪系统,您需要在 application.properties 中配置一些属性,如下所示。
请注意,您必须在要使用的 OpenTelemetry exporter 中添加依赖项。
目前,Quarkus 支持 Jaeger 和 OpenTelemetry 协议规格(OTLP)。
对于 Jaeger:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
</dependency>
对于 OTLP:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-otlp</artifactId>
</dependency>
有关配置选项的完整列表,请参阅 Quarkus OpenTelemetry 指南。
通过在 application.properties 中配置名为 quarkus.camel.opentelemetry.exclude-patterns 的属性,可以从追踪中排除路由端点。例如:
Exclude all direct & netty-http endpoints from tracing
# Exclude all direct & netty-http endpoints from tracing
quarkus.camel.opentelemetry.exclude-patterns=direct:*,netty-http:*
2.59.3.1. 追踪 CDI bean 方法执行 复制链接链接已复制到粘贴板!
当从 Camel 路由检测 CDI bean 方法时,您应该为此类方法添加 io.opentelemetry.extension.annotations.WithSpan。使用 @WithSpan 注解的方法将创建一个新的 Span,并与当前 Trace 上下文建立任何所需的关系。
例如,若要从 Camel 路由检测 CDI bean,首先请确保使用 @WithTrace 标注了适当的方法。
接下来,使用 Camel 路由中的 bean。
为确保记录的 span 序列正确,您必须使用 full to ("bean:") 端点 URI,而不是短的 .bean () EIP DSL 方法。
Quarkus OpenTelemetry 指南中的 CDI 检测的更多信息。
2.59.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
设置是否需要编码标头名称。如果 OpenTelemetry 传播程序可能会设置与目标系统不兼容的格式,则很有用。例如,用于 JMS,其中规格强制标头名称是有效的 Java 标识符。 |
|
|
|
设置是否禁用与给定模式匹配的端点 URI 的追踪。模式可以采用以下格式: 1.端点 URI 完全匹配。e.g platform-http:/some/path 2.通配符匹配。例如 platform-http:* 3.与端点 URI 匹配的正则表达式。例如 platform-http:/prefix/.* |
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.60. paho 复制链接链接已复制到粘贴板!
使用 Eclipse Paho MQTT 客户端与 mq 消息代理通信。
2.60.1. 内部是什么 复制链接链接已复制到粘贴板!
-
paho 组件, URI 语法:
paho:topic
有关使用和配置详情,请参阅上述链接。
2.60.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-paho</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-paho</artifactId>
</dependency>
2.61. Paho MQTT5 复制链接链接已复制到粘贴板!
使用 Eclipse Paho MQTT v5 客户端与 MQTT 消息代理进行通信。
2.61.1. 内部是什么 复制链接链接已复制到粘贴板!
-
paho MQTT 5 组件, URI 语法:
paho-mqtt5:topic
有关使用和配置详情,请参阅上述链接。
2.61.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-paho-mqtt5</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-paho-mqtt5</artifactId>
</dependency>
2.62. 平台 HTTP 复制链接链接已复制到粘贴板!
此扩展允许创建 HTTP 端点来消耗 HTTP 请求。
它基于由 quarkus-vertx-http 扩展提供的 Eclipse Vert.x HTTP 服务器。
2.62.1. 内部是什么 复制链接链接已复制到粘贴板!
-
平台 HTTP 组件, URI 语法:
platform-http:path
有关使用和配置详情,请参阅上述链接。
2.62.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
2.62.3. 使用方法 复制链接链接已复制到粘贴板!
2.62.3.1. 基本用法 复制链接链接已复制到粘贴板!
在 /hello 端点上提供所有 HTTP 方法:
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
仅在 /hello 端点上服务 GET 请求:
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
2.62.3.2. 通过 Camel REST DSL 使用 platform-http 复制链接链接已复制到粘贴板!
要将 Camel REST DSL 与 platform-http 组件搭配使用,请将 camel-quarkus-rest 添加到 pom.xml 中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
然后,您可以使用 Camel REST DSL:
2.62.3.3. 处理 多部分/格式数据 文件上传 复制链接链接已复制到粘贴板!
您可以通过列出它们来限制上传到某些文件扩展:
2.62.3.4. 保护 platform-http 端点 复制链接链接已复制到粘贴板!
Quarkus 提供了各种安全性和身份验证机制,可用于保护 platform-http 端点。如需更多详细信息,请参阅 Quarkus 安全文档。
在路由中,可以获取经过身份验证的用户及其关联的安全Identity 和 主体 :
另外,查看 Quarkus 文档, esp 中的 quarkus.http.body the 配置选项。quarkus.http.body.handle-file-uploads,quarkus.http.body.uploads-directory 和 quarkus.http.body.delete-uploaded-files-on-end.
2.62.3.5. 实现反向代理 复制链接链接已复制到粘贴板!
平台 HTTP 组件可以充当反向代理,本例中为 Exchange.HTTP_URI,Exchange.HTTP_HOST 标头从 HTTP 请求请求行上接收的绝对 URL 填充。
以下是 HTTP 代理的示例,只需将交换重定向到原始服务器。
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
2.62.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.62.4.1. 平台 HTTP 服务器配置 复制链接链接已复制到粘贴板!
平台 HTTP 服务器配置由 Quarkus 管理。有关配置选项的完整列表,请参阅 Quarkus HTTP 配置指南。
要为平台 HTTP 服务器配置 SSL,请遵循 与 SSL 指南的安全连接。请注意,目前不支持使用 SSLContextParameters 为 SSL 配置服务器。
2.62.4.2. 字符编码 复制链接链接已复制到粘贴板!
如果您希望应用程序使用非默认编码发送或接收请求,请检查原生模式指南的 Character encodings 部分。
2.63. quartz 复制链接链接已复制到粘贴板!
使用 Quartz 2.x 调度程序调度消息发送。
2.63.1. 内部是什么 复制链接链接已复制到粘贴板!
-
quartz 组件, URI 语法:
quartz:groupName/triggerName
有关使用和配置详情,请参阅上述链接。
2.63.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-quartz</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-quartz</artifactId>
</dependency>
2.63.3. 使用方法 复制链接链接已复制到粘贴板!
2.63.3.1. 集群 复制链接链接已复制到粘贴板!
对 Quartz 集群的支持由 Quarkus Quartz 扩展提供。以下步骤概述了如何配置 Quarkus Quartz 以用于 Camel。
启用 Quartz 集群模式,并将
DataSource配置为持久性 Quartz 作业存储。示例配置如下:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向应用添加正确的 JDBC 驱动程序扩展,使其与
quarkus.datasource.db-kind的值对应。在上例中使用了postgresql,因此需要以下 JDBC 依赖项:根据您的需要进行调整。DataSource支持还需要 agroal。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quarkus Flyway 可以自动为您创建必要的 Quartz 数据库表。将
quarkus-flyway添加到应用程序(可选)。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-flyway</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-flyway</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,为您选择的数据库类型添加 Quartz 数据库创建脚本。Quartz 项目提供可从 这里 复制的脚本。将 SQL 脚本添加到
src/main/resources/db/migration/V1.0.0__QuarkusQuartz.sql。Quarkus Flyway 将在启动时检测它,并将继续创建 Quartz 数据库表。将 Camel Quartz 组件配置为使用 Quarkus Quartz 调度程序。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
进一步自定义 Quartz 调度程序,可以通过各种配置属性来完成。如需更多信息,请参阅 Quarkus Quartz 配置指南。
2.64. Ref 复制链接链接已复制到粘贴板!
根据 Camel Registry 中的名称,将消息路由到端点动态查找。
2.64.1. 内部是什么 复制链接链接已复制到粘贴板!
-
ref component, URI 语法:
ref:name
有关使用和配置详情,请参阅上述链接。
2.64.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-ref</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-ref</artifactId>
</dependency>
2.64.3. 使用方法 复制链接链接已复制到粘贴板!
CDI 生成者方法可被利用来将端点绑定到 Camel registry,以便使用 Camel 路由中的 ref URI 方案解析它们。
例如,生成端点 Bean:
使用 ref: 引用绑定到 Camel registry 的 CDI Bean 的名称:
2.65. rest 复制链接链接已复制到粘贴板!
公开 REST 服务及其 OpenAPI 规格或调用外部 REST 服务。
2.65.1. 内部是什么 复制链接链接已复制到粘贴板!
-
REST 组件, URI 语法:
rest:method:path:uriTemplate -
REST API 组件, URI 语法:
rest-api:path
有关使用和配置详情,请参阅上述链接。
2.65.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
2.65.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
此扩展取决于 平台 HTTP 扩展,并将其配置为提供 REST 传输的组件。
2.65.3.1. 包含带有 platform-http 的特殊字符的路径参数 复制链接链接已复制到粘贴板!
使用 platform-http REST 传输时,路径参数名称中不允许某些字符。这包括 '-' 和 '$' 字符。
要使以下示例 REST /dashed/param 路由正常工作,需要 io.vertx.web.route.param.extended-pattern=true。
在 Vert.x Web 文档中,这个信息还有更多背景信息。
2.65.3.2. 配置备用 REST 传输供应商 复制链接链接已复制到粘贴板!
要使用另一个 REST 传输提供程序,如 netty-http 或 servlet,您需要将对应的扩展添加为项目的依赖项,并在 RouteBuilder 中设置提供程序。例如,对于 servlet,您必须添加 org.apache.camel.quarkus:camel-quarkus-servlet 依赖项并设置供应商,如下所示:
2.66. REST OpenApi 复制链接链接已复制到粘贴板!
根据 OpenAPI 规格文档配置 REST producer,委派到实施 RestProducerFactory 接口的组件。
2.66.1. 内部是什么 复制链接链接已复制到粘贴板!
-
REST OpenApi 组件, URI 语法:
rest-openapi:specificationUri#operationId
有关使用和配置详情,请参阅上述链接。
2.66.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest-openapi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest-openapi</artifactId>
</dependency>
2.66.3. 使用方法 复制链接链接已复制到粘贴板!
2.66.3.1. 所需的依赖项 复制链接链接已复制到粘贴板!
在使用 rest-openapi 扩展时,必须有一个 RestProducerFactory 实现。当前已知的扩展有:
- camel-quarkus-http
- camel-quarkus-netty-http
Maven 用户需要将其中一个依赖项添加到其 pom.xml 中,例如:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-http</artifactId>
</dependency>
根据使用哪个机制来加载 OpenApi 规格,可能需要额外的依赖项。使用 文件 资源 locator 时,必须将 org.apache.camel.quarkus:camel-quarkus-file 扩展添加为项目依赖项。当使用 ref 或 bean 加载规格时,不仅必须添加 org.apache.camel.quarkus:camel-quarkus-bean 依赖项,而是必须使用 @RegisterForReflection 注解 bean 本身。
将 classpath 资源 locator 与原生代码搭配使用时,必须在 application.properties 文件的 quarkus.native.resources.includes 属性中指定 OpenAPI 规格的路径。例如:
quarkus.native.resources.includes=openapi.json
quarkus.native.resources.includes=openapi.json
2.67. Salesforce 复制链接链接已复制到粘贴板!
使用 Java DTO 与 Salesforce 通讯。
2.67.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Salesforce 组件, URI 语法:
salesforce:operationName:topicName
有关使用和配置详情,请参阅上述链接。
2.67.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-salesforce</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-salesforce</artifactId>
</dependency>
2.67.3. 使用方法 复制链接链接已复制到粘贴板!
2.67.3.1. 使用 Salesforce- maven-plugin生成 Salesforce DTO 复制链接链接已复制到粘贴板!
测试内容。
要为项目生成 Salesforce DTO,请使用 Salesforce -maven-plugin。以下的示例代码片段为 Account 帐户创建一个单一的 DTO。
2.67.4. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.68. XQuery 复制链接链接已复制到粘贴板!
使用 XQuery 和 Saxon 查询和/或转换 XML 有效负载。
2.68.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.68.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-saxon</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-saxon</artifactId>
</dependency>
2.68.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
此组件可以从 classpath 加载 XQuery 定义。要使它也以原生模式工作,您需要使用 quarkus.native.resources.includes 属性在原生可执行文件中明确嵌入查询。
例如,以下两个路由分别从名为 myxquery.txt 和 another-xquery.txt 的两个 classpath 资源加载 XQuery 脚本:
from("direct:start").transform().xquery("resource:classpath:myxquery.txt", String.class);
from("direct:start").to("xquery:another-xquery.txt");
from("direct:start").transform().xquery("resource:classpath:myxquery.txt", String.class);
from("direct:start").to("xquery:another-xquery.txt");
要在原生镜像中包含这些(可能存储在 .txt 文件中的其他查询),您必须将类似如下的内容添加到 application.properties 文件中:
quarkus.native.resources.includes = *.txt
quarkus.native.resources.includes = *.txt
2.69. scheduler 复制链接链接已复制到粘贴板!
使用 java.util.concurrent.ScheduledExecutorService 以指定间隔生成消息。
2.69.1. 内部是什么 复制链接链接已复制到粘贴板!
-
调度程序组件, URI 语法:
调度程序:name
有关使用和配置详情,请参阅上述链接。
2.69.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-scheduler</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-scheduler</artifactId>
</dependency>
2.70. SEDA 复制链接链接已复制到粘贴板!
在同一 JVM 中异步调用任何 Camel 上下文的另一个端点。
2.70.1. 内部是什么 复制链接链接已复制到粘贴板!
-
SEDA 组件, URI 语法:
seda:name
有关使用和配置详情,请参阅上述链接。
2.70.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-seda</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-seda</artifactId>
</dependency>
2.71. Slack 复制链接链接已复制到粘贴板!
向/从 Slack 发送和接收消息。
2.71.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Slack 组件, URI 语法:
slack:channel
有关使用和配置详情,请参阅上述链接。
2.71.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-slack</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-slack</artifactId>
</dependency>
2.71.3. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.72. SOAP 数据格式 复制链接链接已复制到粘贴板!
marshal Java 对象到 SOAP 消息,并返回。
2.72.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.72.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-soap</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-soap</artifactId>
</dependency>
2.73. SNMP 复制链接链接已复制到粘贴板!
接收陷阱和轮询 SNMP (简单网络管理协议)功能的设备。
2.73.1. 内部是什么 复制链接链接已复制到粘贴板!
URI 语法: snmp:host:port
有关使用和配置详情,请参阅 SNMP 组件。
2.73.2. Maven 协调 复制链接链接已复制到粘贴板!
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-snmp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-snmp</artifactId>
</dependency>
2.73.3. Camel Quarkus 限制 复制链接链接已复制到粘贴板!
此扩展使用 org.snmp4j:snmp4j 作为 SNMP 协议实现。这与使用 org.apache.servicemix.bundles.snmp4j:org.apache.servicemix.bundles 的 Camel 3.18.x 不同。
这个变化的动机是两倍:
-
org.snmp4j:snmp4j增加了更高的稳定性和修复许多漏洞。 -
Camel 在版本 4 中切换到
org.snmp4j.snmp4j,因此 Camel Quarkus 用户可以在之前获得同样的好处。
这个更改不会影响 SNMP 组件的配置。
2.73.3.1. SNMP v3 限制 复制链接链接已复制到粘贴板!
SNMP 版本 3 仅支持操作 轮询。(此限制是由 Camel 3.18.6 中的问题导致的。如需更多信息,请参阅 CAMEL-19298。
2.74. SQL 复制链接链接已复制到粘贴板!
执行 SQL 查询。
2.74.1. 内部是什么 复制链接链接已复制到粘贴板!
-
SQL 组件, URI 语法:
sql:query -
SQL 存储的步骤组件, URI 语法:
sql-stored:template
有关使用和配置详情,请参阅上述链接。
2.74.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-sql</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-sql</artifactId>
</dependency>
2.74.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.74.3.1. 配置数据源 复制链接链接已复制到粘贴板!
此扩展利用 Quarkus Agroal 用于 DataSource 支持。可以通过 配置属性 实现数据源。
quarkus.datasource.db-kind=postgresql quarkus.datasource.username=your-username quarkus.datasource.password=your-password quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/your-database quarkus.datasource.jdbc.max-size=16
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=your-username
quarkus.datasource.password=your-password
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/your-database
quarkus.datasource.jdbc.max-size=16
Camel SQL 组件将自动从 registry 解析 DataSource bean。在配置多个数据源时,您可以通过 URI 选项 数据源 或 dataSourceRef 指定在 SQL 端点上使用哪些数据。如需了解更多详细信息,请参阅 SQL 组件文档。
2.74.3.1.1. 使用 Quarkus Dev 服务进行零配置 复制链接链接已复制到粘贴板!
在 dev 和 test 模式中,您可以利用 配置空闲数据库。Camel SQL 组件将自动配置为使用 数据源,该数据源指向与您选择的 JDBC 驱动程序类型匹配的数据库的本地容器化实例。
2.74.3.2. SQL 脚本 复制链接链接已复制到粘贴板!
当将 sql 或 sql-stored 端点配置为引用 classpath 中的脚本文件时,请设置以下配置属性,以确保它们以原生模式可用。
quarkus.native.resources.includes = queries.sql, sql/*.sql
quarkus.native.resources.includes = queries.sql, sql/*.sql
2.74.3.3. 原生模式的 SQL 聚合存储库 复制链接链接已复制到粘贴板!
要在原生模式中使用类似 JdbcAggregationRepository 的 SQL 聚合存储库,您必须启用原生序列化支持。
此外,如果您的交换正文是自定义类型,则必须通过使用 @RegisterForReflection (serialization = true) 注解其类声明来进行序列化。
2.75. 电话报 复制链接链接已复制到粘贴板!
发送并接收作为站报 Bot 报 Bot API 的消息。
2.75.1. 内部是什么 复制链接链接已复制到粘贴板!
-
telegram 组件, URI 语法:
telegram:type
有关使用和配置详情,请参阅上述链接。
2.75.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-telegram</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-telegram</artifactId>
</dependency>
2.75.3. 使用方法 复制链接链接已复制到粘贴板!
2.75.4. Webhook 模式 复制链接链接已复制到粘贴板!
Tailoringgram 扩展支持在 Webhook 模式中使用。
要启用 Webhook 模式,用户首先需要在其应用程序中添加 REST 实现。例如,Maven 用户可以将 camel-quarkus-rest 扩展添加到其 pom.xml 文件中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
2.75.5. SSL 处于原生模式 复制链接链接已复制到粘贴板!
此扩展会在原生模式下自动启用 SSL 支持。因此,您不需要自行将 quarkus.ssl.native=true 添加到 application.properties。另请参阅 Quarkus SSL 指南。
2.76. timer 复制链接链接已复制到粘贴板!
使用 java.util.Timer 以指定间隔生成消息。
2.76.1. 内部是什么 复制链接链接已复制到粘贴板!
-
计时器组件, URI 语法:
timer:timerName
有关使用和配置详情,请参阅上述链接。
2.76.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-timer</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-timer</artifactId>
</dependency>
2.77. Vert.x HTTP 客户端 复制链接链接已复制到粘贴板!
使用 Vert.x Camel HTTP 客户端支持
2.77.1. 内部是什么 复制链接链接已复制到粘贴板!
-
Vert.x HTTP Client 组件, URI 语法:
vertx-http:httpUri
有关使用和配置详情,请参阅上述链接。
2.77.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-vertx-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-vertx-http</artifactId>
</dependency>
2.77.3. 原生模式中的 transferException 选项 复制链接链接已复制到粘贴板!
要在原生模式中使用 transferException 选项,您必须启用对对象序列化的支持。如需更多信息,请参阅 原生模式用户指南。
您还需要为您要序列化的异常类启用序列化。例如:
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
2.77.4. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.77.5. 在原生模式中允许JavaSerializedObject 选项 复制链接链接已复制到粘贴板!
当在原生模式中使用 allowJavaSerializedObject 选项时,可能需要启用对序列化的支持。如需更多信息,请参阅 原生模式用户指南。
2.77.5.1. 字符编码 复制链接链接已复制到粘贴板!
如果应用程序需要使用非默认编码来发送和接收请求,请检查 Native 模式指南的 Character encodings 部分。
2.78. 验证器 复制链接链接已复制到粘贴板!
使用 XML 架构和 JAXP 验证来验证有效负载。
2.78.1. 内部是什么 复制链接链接已复制到粘贴板!
-
验证器组件, URI 语法:
validator:resourceUri
有关使用和配置详情,请参阅上述链接。
2.78.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-validator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-validator</artifactId>
</dependency>
2.79. Velocity 复制链接链接已复制到粘贴板!
使用 kiosky 模板转换消息。
2.79.1. 内部是什么 复制链接链接已复制到粘贴板!
-
velocity 组件, URI 语法:
velocity:resourceUri
有关使用和配置详情,请参阅上述链接。
2.79.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-velocity</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-velocity</artifactId>
</dependency>
2.79.3. 使用方法 复制链接链接已复制到粘贴板!
2.79.3.1. 自定义正文作为原生模式的域对象 复制链接链接已复制到粘贴板!
当使用自定义对象作为消息正文并在原生模式中引用其属性时,需要注册所有类以进行反映( 请参阅文档)。
例如:
@RegisterForReflection
public interface CustomBody {
}
@RegisterForReflection
public interface CustomBody {
}
2.79.4. 原生模式中的 allowContextMapAll 选项 复制链接链接已复制到粘贴板!
原生模式下不支持 allowContextMapAll 选项,因为它需要对安全敏感 camel 内核类(如 CamelContext 和 Exchange )进行反映访问。这被视为安全风险,因此默认不提供对该功能的访问。
2.79.5. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
这个组件通常从 classpath 加载 Velocity 模板。要使它也以原生模式工作,您需要使用 quarkus.native.resources.includes 属性将模板明确嵌入到原生可执行文件中。
例如,以下路由会从名为 template/simple.vm 的类路径资源中加载 sVirty 模板:
from("direct:start").to("velocity://template/simple.vm");
from("direct:start").to("velocity://template/simple.vm");
要在原生镜像中包含它(可能存储在 模板 目录中的 .vm 文件中的其他模板),您必须将类似如下的内容添加到 application.properties 文件中:
quarkus.native.resources.includes = template/*.vm
quarkus.native.resources.includes = template/*.vm
2.80. XML IO DSL 复制链接链接已复制到粘贴板!
用于解析 XML 路由定义的 XML 堆栈
2.80.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.80.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-io-dsl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xml-io-dsl</artifactId>
</dependency>
2.80.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
2.80.3.1. XML 文件编码 复制链接链接已复制到粘贴板!
默认情况下,一些 XML 文件编码可能无法以原生模式开箱即用。请选中 Character encodings 部分以了解 如何修复。
2.81. XPath 复制链接链接已复制到粘贴板!
根据 XML 有效负载评估 XPath 表达式
2.81.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.81.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xpath</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xpath</artifactId>
</dependency>
2.81.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
这个组件可以从 classpath 资源加载 xpath 表达式。要使它也以原生模式工作,您需要使用 quarkus.native.resources.includes 属性将表达式文件明确嵌入到原生可执行文件中。
例如,以下示例会从名为 myxpath.txt 的 classpath 资源加载 XPath 表达式:
from("direct:start").transform().xpath("resource:classpath:myxpath.txt");
from("direct:start").transform().xpath("resource:classpath:myxpath.txt");
要在原生镜像中包含它(可能存储在 .txt 文件中的其他表达式),您必须将类似如下的内容添加到 application.properties 文件中:
quarkus.native.resources.includes = *.txt
quarkus.native.resources.includes = *.txt
2.82. XSLT 复制链接链接已复制到粘贴板!
使用 XSLT 模板转换 XML 有效负载。
2.82.1. 内部是什么 复制链接链接已复制到粘贴板!
-
XSLT 组件, URI 语法:
xslt:resourceUri
有关使用和配置详情,请参阅上述链接。
2.82.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xslt</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-xslt</artifactId>
</dependency>
2.82.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
要优化 XSLT 处理,扩展需要在构建时知道 XSLT 模板的位置。XSLT 源 URI 必须通过 quarkus.camel.xslt.sources 属性传递。可以使用逗号分隔多个 URI。
quarkus.camel.xslt.sources = transform.xsl, classpath:path/to/my/file.xsl
quarkus.camel.xslt.sources = transform.xsl, classpath:path/to/my/file.xsl
无方案 URI 将解释为 classpath: URI。
只支持 classpath : 在 Quarkus 原生模式下支持 URI。文件: http: 和其他类型的 URI 只能用于 JVM 模式。
现在,只有 JVM 模式支持 XSLT 元素 {clu}。{ssagi}
如果使用 聚合 DSL,则必须使用 XsltSaxonAggregationStrategy,例如
另外,它只在 JVM 模式中被支持。
2.82.3.1. 配置 复制链接链接已复制到粘贴板!
可使用以下属性配置 TransformerFactory 功能:
quarkus.camel.xslt.features."http\://javax.xml.XMLConstants/feature/secure-processing"=false
quarkus.camel.xslt.features."http\://javax.xml.XMLConstants/feature/secure-processing"=false
2.82.3.2. 扩展功能支持 复制链接链接已复制到粘贴板!
- 禁用安全处理
- 函数在单独的 jar 中定义
- 函数在原生构建阶段增强。例如,可以注册它们以进行反映:
@RegisterForReflection(targets = { my.Functions.class })
public class FunctionsConfiguration {
}
@RegisterForReflection(targets = { my.Functions.class })
public class FunctionsConfiguration {
}
XSLT 源 URI 的内容在构建时被解析并编译到 Java 类中。这些 Java 类是运行时 XSLT 信息的唯一来源。XSLT 源文件根本不包含在应用程序存档中。
| 配置属性 | 类型 | 默认 |
|---|---|---|
|
要编译的模板的逗号分隔列表。 |
| |
|
生成的类的软件包名称。 |
|
|
|
TransformerFactory 功能。 |
|
构建时修复的配置属性。所有其他配置属性可在运行时覆盖。
2.83. YAML DSL 复制链接链接已复制到粘贴板!
用于解析 YAML 路由定义的 YAML 堆栈
2.83.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.83.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-yaml-dsl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-yaml-dsl</artifactId>
</dependency>
2.83.3. 使用方法 复制链接链接已复制到粘贴板!
2.83.3.1. 原生模式 复制链接链接已复制到粘贴板!
在 Camel YAML DSL 标记中定义时,需要您注册类以进行反映。详情请参考 原生模式 指南。
2.83.3.1.1. Bean 定义 复制链接链接已复制到粘贴板!
YAML DSL 提供了定义 Bean 的功能,如下所示:
在本例中,需要注册 GreetingBean 类以进行反映。这适用于您在 YAML 路由中的 Bean 键下引用的任何类型。
@RegisterForReflection
public class GreetingBean {
}
@RegisterForReflection
public class GreetingBean {
}
2.83.3.1.2. 异常处理 复制链接链接已复制到粘贴板!
Camel 提供了各种处理异常的方法。其中一些要求注册 DSL 定义中引用的任何异常类以进行反映。
on-exception
@RegisterForReflection
public class MyHandledException {
}
@RegisterForReflection
public class MyHandledException {
}
throw-exception
@RegisterForReflection
public class ForcedException {
}
@RegisterForReflection
public class ForcedException {
}
do-catch
@RegisterForReflection(targets = FileNotFoundException.class)
public class MyClass {
}
@RegisterForReflection(targets = FileNotFoundException.class)
public class MyClass {
}
2.84. zip 文件 复制链接链接已复制到粘贴板!
使用 java.util.zip.ZipStream 压缩和解压缩流。
2.84.1. 内部是什么 复制链接链接已复制到粘贴板!
有关使用和配置详情,请参阅上述链接。
2.84.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-zipfile</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-zipfile</artifactId>
</dependency>