红帽构建的 Apache Camel for Quarkus 发行注记
红帽构建的 Apache Camel 新功能
摘要
第 1 章 Red Hat build of Apache Camel for Quarkus 3.2 发行注记 复制链接链接已复制到粘贴板!
1.1. Red Hat build of Apache Camel for Quarkus 功能 复制链接链接已复制到粘贴板!
- 快速启动和低 RSS内存
- 使用 Quarkus 优化的构建时间和提前(AOT)编译功能,您的 Camel 应用程序可在构建时预先配置,从而导致启动时间。
- 应用程序生成器
- 使用 Quarkus 应用程序生成器 引导应用程序并发现其扩展生态系统。
- 高可配置
红帽构建的 Apache Camel for Quarkus 应用程序的所有重要方面均可以编程方式使用 CDI (Contexts 和 Dependency Injection)或使用配置属性来设置。默认情况下,配置 CamelContext 并为您自动启动。
如需有关 bootstrap 和 配置应用程序的不同方法的更多信息,请参阅使用属性文件配置 Quarkus 应用程序。
- 与现有 Quarkus 扩展集成
- 红帽构建的 Apache Camel for Quarkus 为一些 Camel 组件使用的库和框架提供扩展,它们继承了原生支持和配置选项。
1.2. 支持的平台、配置、数据库和扩展 复制链接链接已复制到粘贴板!
- 有关红帽构建的 Apache Camel for Quarkus 版本 3.2 中支持的平台、配置和数据库的详情,请查看客户门户网站中的支持的配置页面(需要登录)。https://access.redhat.com/articles/6507531
- 有关红帽构建的 Apache Camel for Quarkus 扩展列表以及每个扩展的红帽支持级别,请参阅 Red Hat build of Apache Camel for Quarkus Reference 中的 Extensions Overview 章节(需要登录)。
-
要将红帽构建的 Apache Camel for Quarkus 版本 3.2 项目配置为使用支持的扩展,请使用来自 Redhat Maven Repository 的最新 Bill Of Materials (BOM)版本
3.2.10.Final-redhat-00002或更新版本。
有关 BOM 依赖项管理的更多信息,请参阅使用红帽构建的 Apache Camel for Quarkus 开发应用程序
1.4. 技术预览扩展 复制链接链接已复制到粘贴板!
在 Red Hat build of Apache Camel for Quarkus Reference 的 Extensions Overview 章节中,指定为技术预览的项目有有限的支持性,如技术预览功能支持范围所定义。
1.5. 已知问题 复制链接链接已复制到粘贴板!
1.5.1. SAP 扩展 Camel Quarkus 限制 复制链接链接已复制到粘贴板!
SAP 扩展不支持打包类型 uber-jar,这会导致应用程序抛出运行时异常,如下所示:
Caused by: java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.ExceptionInInitializerError: Illegal JCo archive "sap-1.0.0-SNAPSHOT-runner.jar". It is not allowed to rename or repackage the original archive "sapjco3.jar".
Caused by: java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.ExceptionInInitializerError: Illegal JCo archive "sap-1.0.0-SNAPSHOT-runner.jar". It is not allowed to rename or repackage the original archive "sapjco3.jar".
1.5.2. 仅 JVM 支持标签缺少 复制链接链接已复制到粘贴板!
目前 ,http://code.quarkus.redhat.com 不会列出以下扩展的正确支持信息:
| 扩展 | 工件 | JVM 支持级别 | 原生支持级别 | 描述 |
|---|---|---|---|---|
| Azure-servicebus | 技术预览 | None | 向 Azure 服务总线发送和接收信息。 | |
| SAP | 产品支持 | None | 提供 SAP Camel 组件。 | |
| SNMP | 产品支持 | None | 接收陷阱和轮询 SNMP (简单网络管理协议)功能的设备。 |
1.5.3. 其他已知问题 复制链接链接已复制到粘贴板!
- CEQ-6085 支持扩展: camel-quarkus-micrometer
如果您要从
smallrye-metrics迁移到micrometer,您可能需要手动将一些 Bean 定义为有范围。在
smallrye-metrics中,为指标注册的类(例如,@COUNTED、@METRIC),但不注册为有范围 Bean。这不会在微主题中发生。在
微主题中,您需要手动注册通过 CDI 访问的 Bean,例如添加@Dependent注解。- CEQ-5705 Camel-quarkus-snmp 不支持原生
-
在红帽构建的 Apache Camel for Quarkus 中,我们仅在 JVM 模式中支持
camel-quarkus-snmp组件。
1.6. 已知的 CXF 问题 复制链接链接已复制到粘贴板!
这个版本还有 CXF 的问题。
1.6.1. 支持的扩展 复制链接链接已复制到粘贴板!
目前,只支持 这些 quarkus-cxf 扩展:
隐式,作为 camel-quarkus-cxf-soap 的传输依赖项:
-
quarkus-cxf -
quarkus-cxf-rt-features-logging
另外,如果您需要 WS-Security 或其他相关功能,您可以添加以下支持的扩展:
-
quarkus-cxf-rt-ws-security -
quarkus-cxf-services-sts -
quarkus-cxf-xjc-plugins
1.6.1.1. WS-ReliableMessaging 复制链接链接已复制到粘贴板!
对 CXF WS-ReliableMessaging 当前还不支持,它仍然在版本 3.2 中处于技术预览阶段。
1.6.2. 使用 java.net.http.HttpClient的 CXF 客户端可能的 DoS 向量 复制链接链接已复制到粘贴板!
如果您的 CXF 客户端使用 java.net.http.HttpClient 作为底层 HTTP 客户端,那么如果创建了许多客户端,应用可能会崩溃,因为线程不会终止。https://issues.apache.org/jira/browse/CXF-8885
当重复创建 CXF 客户端时,这个问题会出现在 java.net.http.HttpClient 中,例如每个请求。如果您在应用的整个生命周期内保持客户端,则不会出现这个问题。
从 Apache Camel for Quarkus 3.2.0 和 Quarkus CXF 2.2.3 开始,某些特定 CXF 客户端的 HTTP 客户端实现选择通过 quarkus.cxf.client.yourClient.http-conduit-factory 属性控制。默认情况下,由 Quarkus CXF 创建的 CXF 客户端使用 java.net.HttpURLConnection 作为 HTTP 客户端,因此默认不会出现这个问题。如果您设置了 quarkus.cxf.client.yourClient.http-conduit-factory=HttpClientHTTPConduitFactory,则可能会出现此问题。
1.6.2.1. DoS 向量的缓解方案 复制链接链接已复制到粘贴板!
-
如果您绝对确保客户端仅在应用的生命周期内创建一次,则只使用
java.net.http.HttpClient支持的 CXF 客户端。 -
使用由不同 HTTP 客户端实现(如 HC5 或
java.net.HttpURLConnection)支持的 CXF 客户端。
1.7. 重要备注 复制链接链接已复制到粘贴板!
1.7.1. javax 到 jakarta 软件包命名空间更改 复制链接链接已复制到粘贴板!
Java EE 移至 Eclipse Foundation 和 Jakarta EE 的建立,因为用于所有 EE API 的 Jakarta EE 9 软件包已改为 jakartaGalaxy
文档中的代码片段已更新为使用 jakarta prerequisites 命名空间,但您需要注意和查看您自己的应用程序。
这个更改不会影响作为 Java SE 一部分的 javax 软件包。
将应用程序迁移到 EE 10 时,您需要:
-
将
javax软件包中的 EE API 类的任何导入声明或其他源代码使用到jakarta。 -
更改任何 EE 指定的系统属性或其他配置属性,其名称以
javax 开始。从jakarta 开始。 -
使用
META-INF/services/jakarta.[rest_of_name]名称格式来识别使用实现 EE 接口或以java.util.ServiceLoader机制引导的应用程序中的实施类。
1.7.1.1. 迁移工具 复制链接链接已复制到粘贴板!
- 源代码迁移: 如何使用 Red Hat Migration Toolkit for Application Auto-Migration for a Application to the Jakarta EE 10 命名空间
- bytecode 转换:对于源代码迁移不是选项的情况,开源 Eclipse Transformer
1.7.2. Java 复制链接链接已复制到粘贴板!
- 最小 Java 版本 - JDK 17
- 红帽构建的 Apache Camel for Quarkus 版本 3.2 需要 JDK 17 或更新版本。
- 支持 AdoptiumJDK
- 红帽构建的 Apache Camel for Quarkus 版本 3.2 包括对 AdoptiumJDK 17 的支持。
1.7.3. 升级 复制链接链接已复制到粘贴板!
- Camel 从 3.14.2 升级到 3.18.6
红帽构建的 Apache Camel for Quarkus 版本 3.2 已从 Camel 版本 3.18.6 升级到 Camel 版本 4.0.0。有关每个 intervening Camel 补丁发行版本的详情,请参考以下内容:
- Apache Camel 3.18.7 发行注记
- Apache Camel 3.18.8 发行注记
- Apache Camel 3.19.0 发行注记
- Apache Camel 3.20.0 发行注记
- Apache Camel 3.20.1 发行注记
- Apache Camel 3.20.2 发行注记
- Apache Camel 3.20.3 发行注记
- Apache Camel 3.20.4 发行注记
- Apache Camel 3.20.5 发行注记
- Apache Camel 3.20.6 发行注记
- Apache Camel 3.20.7 发行注记
- Apache Camel 3.20.8 发行注记
- Apache Camel 3.21.0 发行注记
- Apache Camel 3.21.1 发行注记
- Apache Camel 3.21.2 发行注记
- Apache Camel 4.0.0 发行注记
- Camel Quarkus 从 2.7 升级到 2.13 版本
Red Hat build of Apache Camel for Quarkus 版本 3.2 已从 Camel Quarkus 版本 2.13 升级到 Camel Quarkus 版本 3.2。有关每个 intervening Camel Quarkus 补丁发行版本的详情,请参考:
1.8. 已解决的问题 复制链接链接已复制到粘贴板!
下表列出了影响红帽构建的 Apache Camel for Quarkus 的已知问题,这些问题已在 Red Hat build of Apache Camel for Quarkus 版本 3.2 中解决。
已解决的问题
- CEQ-7591
- quarkus CXF:因为默认块大小低传输大量响应
- CEQ-7086
- CEQ 入门指南不会告知用户要配置哪些 Maven 存储库
- CEQ-6604
- 使用 camel-cxf-soap 命名空间更改更新 CEQ 迁移说明
- CEQ-6217
- 如果在路由模板之前处理模板,则模板路由会失败
- CEQ-6263
- OpenTelemetry 跟踪没有按顺序生成
- CEQ-6203
- 在 OpenShift 上带有 CXF 的 CQ 需要 quarkus.cxf.path 属性
- CEQ-4878
- JMS 组件连接池(通用客户端,完全支持)
- CEQ-1203
- 平台支持:KNative/Serverless 部署
1.8.1. 之前的版本 复制链接链接已复制到粘贴板!
有关 Camel Quarkus 2.13 和 Camel Quarkus 3.2 之间解决问题的详情,请查看每个补丁发行版本的发行注记。???
1.9. 红帽构建的 Apache Camel for Quarkus 版本 3.2 中的已弃用的功能 复制链接链接已复制到粘贴板!
红帽构建的 Apache Camel for Quarkus 版本 Red Hat build of Apache Camel for Quarkus 没有已弃用的功能。
1.10. 在红帽构建的 Apache Camel for Quarkus 版本 3.2 中删除了扩展 复制链接链接已复制到粘贴板!
下表列出了此红帽构建的 Apache Camel for Quarkus 版本 Red Hat build of Apache Camel for Quarkus 的扩展。
| 扩展 | 工件 | 描述 | 备注 |
|---|---|---|---|
| MicroProfile Metrics |
| 从 Camel 路由公开指标。 |
1.11. 在红帽构建的 Apache Camel for Quarkus 版本 3.2 中添加了扩展 复制链接链接已复制到粘贴板!
下表列出了此红帽构建的 Apache Camel for Quarkus 版本 Red Hat build of Apache Camel for Quarkus 的扩展。
| 扩展 | 工件 | 描述 | 备注 |
|---|---|---|---|
| AMQP |
| 使用 Apache QPid 客户端与 AMQP 协议进行消息传递. | |
| Azure-servicebus |
| 向 Azure 服务总线发送和接收信息。 | |
| CLI-connector |
| 使用 Camel CLI 连接的运行时适配器 | |
| crypto |
| 使用 Java Cryptographic 扩展(JCE)的签名服务签名并验证交换。 | |
| GRPC |
| 公开 gRPC 端点并访问外部 gRPC 端点。 | |
| JDBC |
| ||
| 语言 |
| ||
| LDAP |
| 在 LDAP 服务器上执行搜索。 | |
| 管理 |
| JMX 管理策略和相关管理资源。 | |
| Mapstruct |
| 使用 Mapstruct 的 type Conversion | |
| Micrometer |
| 使用 Micrometer 库直接从 Camel 路由收集各种指标。 | |
| minio |
| 使用 Minio SDK 从 Minio Storage Service 存储和检索对象。 | |
| Mybatis |
| 使用 MyBatis 在相关数据库中执行查询、轮询、插入、更新或删除。 | |
| netty-http |
| 使用 Netty 4.x 的 Netty HTTP 服务器和客户端。 | |
| SAP |
| 提供 SAP Camel 组件。 | |
| saxon |
| 使用 XQuery 和 Saxon 查询和/或转换 XML 有效负载。 | |
| Splunk |
| 在 Splunk 中发布或搜索事件。 | |
| Vertx-http |
| ||
| Vertx-websocket |
| 带有 Vert.x 的 Camel WebSocket 支持 | |
| XSLT-Saxon |
| 使用 Saxon 的 XSLT 模板转换 XML 有效负载。 |
1.12. 红帽构建的 Apache Camel for Quarkus 版本 3.2 中的扩展 复制链接链接已复制到粘贴板!
下表列出了在此 Red Hat build of Apache Camel for Quarkus 版本 Red Hat build of Apache Camel for Quarkus 版本中更改了支持级别的扩展。
| 扩展 | 工件 | 描述 | 备注 |
|---|---|---|---|
| AWS2-CW |
| 使用 AWS SDK 版本 2.x 将指标发送到 AWS CloudWatch。 | |
| CXF-soap |
| 使用 Apache CXF 公开 SOAP WebServices 或使用 CXF WS 客户端连接到外部 WebServices。 | |
| telegram |
| 发送和接收充当 Telegram Botram Bot API 的消息。 | |
| XML IO DSL |
| 用于解析 XML 路由定义的 XML 堆栈。 | |
| yaml-dsl |
| 用于解析 YAML 路由定义的 YAML 堆栈 |
有关支持级别的详情,请参考 Red Hat build of Apache Camel for Quarkus 参考
1.13. 在红帽构建的 Apache Camel for Quarkus 版本 3.2 中添加了数据格式 复制链接链接已复制到粘贴板!
下表列出了在此 Red Hat build of Apache Camel for Quarkus 版本 3.2 中添加的数据格式。
| 扩展 | 工件 | 描述 |
|---|---|---|
| JAXP |
| XML JAXP 类型转换器和解析器 |