Red Hat Fuse 7.9 发行注记
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 Fuse 7.9 产品概述
1.1. Fuse 分发
Fuse 7.9 以三种不同发行版的形式提供,如下所示:
- Fuse 独立
在多个操作系统上支持的 Fuse 的经典分发。以下容器类型支持以下发行版本:
- Apache Karaf
- JBoss Enterprise Application Platform (EAP)
- Spring Boot
- OpenShift 上的 Fuse
在 OpenShift 上运行集成应用程序的 Fuse 发行版(在 Red Hat Enterprise Linux 操作系统上支持)。在这种情况下,支持的容器类型以 docker 格式的容器镜像的形式提供:
- Java 镜像(用于 Spring Boot)
- Apache Karaf 镜像
- JBoss EAP 镜像
- Fuse Online
使用基于浏览器的 UI 访问简化的工作流,适用于非专家集成的 Fuse 发行版。此发行版可用于以下类型的部署:
- 在 OpenShift Dedicated (OSD)集群中。
- 用于在内部 OpenShift 集群上安装
1.2. 新功能
Fuse 7.9 包括几个主要组件升级和大量新功能。详情请查看每个 Fuse 发行版本 的新功能 部分:
1.3. 支持的配置
要在 Apache Karaf 中运行 Fuse,我们推荐使用 OpenJDK 8u282 或 OpenJDK 8u302。不要使用 OpenJDK 8u292,它有一个影响凭证存储的已知问题(请参阅 ENTESB-16417)。OracleJDK 1.8.0_291 也会受到此问题的影响。
有关版本 7.9 中支持的配置、标准和组件的详情,请查看以下客户门户网站文章:
第 2 章 Fuse Online
Fuse Online 提供了一个 Web 浏览器界面,让企业专家能够在不编写代码的情况下集成两个或多个不同应用程序或服务。它还提供一些功能,允许在复杂用例需要时添加代码。
Fuse Online 在 OpenShift 上作为使用 Apache Camel 的 Spring Boot 应用程序运行集成。
2.1. 关于 Fuse 在线发行版本
Fuse Online 是红帽基于 Web 的集成平台。Syndesis 是 Fuse Online 的开源项目。Fuse Online 在这些 OpenShift 环境中运行:
主机环境 | 安装 |
OpenShift Dedicated | 红帽在红帽基础架构上安装并调配 Fuse Online。 |
OpenShift Container Platform | 客户安装和管理。 |
2.2. Fuse Online 7.9 中的新功能
Fuse Online 7.9 提供以下新功能:
SOAP API 客户端连接器
您可以添加自定义 SOAP API 客户端连接器,然后将 SOAP API 客户端的连接添加到 Fuse Online 集成。如需更多信息,请参阅创建 SOAP API 客户端连接器。
这个 SOAP API 客户端连接器发行版本有一些限制,如 Fuse Online 的重要备注所述。
新的数据映射程序功能
- 支持新的条件表达式。对于具有多个字段的集合,数据映射程序现在可以根据不同 source 字段的值(在同一集合中)过滤一个 source 字段中的值。
支持两个新转换:
-
CopyTo
Cop 将源字符串字段的值复制到目标集合的指定字段中,而无需分割。 -
当将一个简单的类型映射到数组类型时,请使用从简单类型获取的值填充多个数组字段。
-
- 在数据映射器 UI 中,XML 属性现在由 @ 符号表示。
Fuse Online 7.9 数据映射器从 AtlasMap 2.0.0 升级到 2.2.2。有关 2.2.2 中的程序错误修复和次要增强的详情,请查看以下上游 AtlasMap 发行注记:
https://github.com/atlasmap/atlasmap/releases/tag/atlasmap-2.1.1
https://github.com/atlasmap/atlasmap/releases/tag/atlasmap-2.1.2
https://github.com/atlasmap/atlasmap/releases/tag/atlasmap-2.2.0
https://github.com/atlasmap/atlasmap/releases/tag/atlasmap-2.2.1
https://github.com/atlasmap/atlasmap/releases/tag/atlasmap-2.2.2
FTP 连接器操作
在以前的版本中,FTP 连接器有两个操作(
下载
和上传
)。从 Fuse Online 7.9 开始,FTP 服务器有两个额外的操作:DownloadNamedFile
和UploadNamedFile
。另外,对于 文件名表达式,您现在提供了一个 Apache Camel 文件语言 表达式,以指定要下载或上传的文件或文件。
2.3. Fuse Online 7.9 的变化
Fuse Online 7.9 更改 Fuse Online 7.8 功能,如下所示:
启用示例 PostgresDB 数据库和连接的新选项
默认情况下,当您部署 Fuse Online 时,示例 PostgresDB 数据库和连接器被禁用(未安装)。要启用它们,请通过将
demoData
选项设置为true
来编辑复合 CR。如需更多信息,请参阅在 OpenShift Container Platform 上安装和操作 Fuse Online 中的将示例数据添加到 OCP 上运行的 Fuse 环境中。Slack 连接器现在使用 Bot User OAuth 访问令牌
当您创建 Slack 连接器时,现在您可以指定 Bot User OAuth 访问令牌来授权对 Slack 应用程序的访问。Slack 已被弃用旧的令牌授权。
保存时应用 Fuse Online 自定义资源的更新
当您在 Fuse Online 自定义资源的
components.server
部分中进行更改时,Fuse Online 会在保存自定义资源后应用您的更新。从 Fuse Online 7.9 开始,您不再需要手动删除syndesis-server
pod 以使更改生效。
2.4. 升级 Fuse 在线集成
要升级在 OCP 现场运行的 Fuse Online 环境,您必须使用操作器更新 Fuse Online,然后重新发布任何正在运行的集成,如升级 Fuse Online 所述。
请注意,无论您如何安装 Fuse Online 7.8 (使用安装脚本或 OperatorHub),都应从 Fuse Online 7.8 升级到 7.9。
2.5. Fuse Online 的重要备注
Fuse Online 发行版本的 Fuse 7.9 发行版本的重要备注:
SOAP API 客户端连接器功能
SOAP API 客户端连接器支持以下功能:
- SOAP 1.1 和 1.2 消息格式
- RPC 和 Document 绑定只支持 Literal 编码。
- 所有 Workday WSDLs 使用内联模式、SOA 记录字面绑定和 WS Username 令牌密码身份验证。
- 嵌套循环引用类型。
- 外部架构 - 仅基于 URL 的 WSDL 支持基于 WSDL 基础路径中的相对 URL。WSDL URL 必须在运行时提供给 SOAP 连接器进行解析和验证。因此,请确保在永久 URL 上托管 WSDL 和模式。
- 多个模式 - 内联和外部(WSDL URL)支持多个具有唯一命名空间的模式。
与安全相关的功能:
- WS_Basic 配置文件和列表组合。
- 对于基本身份验证,支持 HTTPS 用户名/密码。
- 对于 Username Token 配置集,支持 Text 和 Digest 密码。
在本发行版本中,SOAP API 客户端连接器不包括对以下功能的支持:
- 外部模式 - 不支持在 WSDL 文件中直接导入到连接器(使用文件上传表单)中引用的基于磁盘的外部模式。上传的 WSDL 文件必须使用内联模式。但是,基于 URL 的 WSDL 支持托管在 WSDLs 的外部模式。
- 不支持 SOAP 编码。
- 为安全起见,不支持 SAML。
Kafka 代理 URI 不会为 AMQ Streams 自动发现
AMQ Streams 的 CRD 版本在 Fuse Online 中增加到
v1beta2
,如 AMQ 发行注记 所述。如果您使用 AMQ Streams,当您在 Fuse Online 中创建新的 Kafka Message Broker 连接时,Kafka Broker URI 不会被自动发现,且不显示在 Kafka Broker URI 下拉列表中。相反,您必须输入 URI。- Fuse Online 不再支持 Camel K 运行时或 KNative 连接器。
- 当在红帽基础架构上安装和配置 Fuse Online 时,该帐户仅限于一次可以运行的特定数量集成。详情请查看定价计划。
- 上传到 Fuse Online 的 OpenAPI 模式可能无法定义输入/输出类型。当 Fuse Online 从 OpenAPI 模式创建自定义 API 客户端时,它没有指定输入/输出类型,则无法创建集成数据将集成数据映射到 API 客户端处理的字段或来自 API 客户端处理的字段。如果集成需要数据映射到自定义 API,那么当您上传 OpenAPI 模式时,点 Review/Edit 以打开 API Designer,它是一个 API 编辑工具,并添加输入/输出类型规格。
- 自 Fuse 7.8 起,用于自定义 API 客户端连接器或 API 供应商集成的 OpenAPI 文档不能具有 cyclic 模式引用。例如,指定请求或响应正文的 JSON 模式无法作为整体引用,也无法通过任意数量的中间模式引用其自身的任何部分。
2.6. 获取 Fuse Online 的技术支持
要获得技术支持,请在 Fuse 在线控制台中,在左侧导航面板中点 Support。使用 Support 页面下载所有集成或您选择的一个或多个集成的诊断信息。该页面还提供打开支持问题单的链接,并提供您下载的诊断信息。
2.7. Fuse Online 中的技术预览功能
此发行版本包括以下列出的技术预览功能。
红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需更多信息,请参阅红帽技术预览功能支持范围。
Fuse 在线审计
Fuse Online 支持对以下 Fuse 在线组件的任何用户所做的更改进行的基本审核:
-
Connection - Fuse Online Web 控制台的连接器 Details 页面中显示的
Name
和任何其他字段。 -
连接器 -
Name
字段。 -
集成 -
Name
字段。
-
Connection - Fuse Online Web 控制台的连接器 Details 页面中显示的
在数据映射程序中,您可以指定一个条件表达式并将其应用到数据映射。例如,一个条件表达式可以指定 source 字段的评估,以及如何填充 target 字段(如果 source 字段为空)。您可以指定的一组有限表达式与 Microsoft Excel 表达式类似。
数据映射程序中用户定义的属性的文档范围
在数据映射程序中,您可以指定您为源和目标映射定义的属性的范围。在 Mapping Details 面板中,单击 Properties 旁边的 Add (+)。在 Create Property 对话框中,用于新的 Scope 选项,您可以选择当前消息标头、上一步中的消息标头,或 Camel Exchange Property for Camel 特定属性。
对于使用 OAuth 的 REST API 客户端,当您创建 API 客户端连接器时,您可以更改您从该连接器创建的连接的默认 OAuth2 行为。对 OpenAPI 规格的 Fuse 在线供应商扩展支持以下内容:
- 将客户端凭据作为参数提供。
- 根据 HTTP 响应状态代码获取新的访问令牌。
第 3 章 OpenShift 上的 Fuse
OpenShift 上的 Fuse 可让您在 OpenShift Container Platform 上部署 Fuse 应用程序。
3.1. 支持的 OpenShift 版本
OpenShift Container Platform 4.x 和 OpenShift Container Platform 3.11 支持 OpenShift 上的 Fuse。有关 OpenShift 上 Fuse 支持的 OpenShift Container Platform 版本(或版本)的详情,请查看 支持的配置页面。
3.2. 支持的镜像
OpenShift 上的 Fuse 提供以下 Docker 格式的镜像:
-
fuse7/fuse-java-openshift-rhel8
mvapich-PROFILESpring Boot -
fuse7/fuse-java-openshift-jdk11-rhel8
— Spring Boot -
fuse7/fuse-karaf-openshift-rhel8
— Apache Karaf -
fuse7/fuse-eap-openshift-jdk8-rhel7
— Red Hat JBoss Enterprise Application Platform -
fuse7/fuse-eap-openshift-jdk11-rhel8
— Red Hat JBoss Enterprise Application Platform -
fuse7/fuse-console-rhel8
mvapich-wagonFuse 控制台 -
fuse7/fuse-console-rhel8-operator
mvapich-wagonFuse 控制台 operator -
fuse7/fuse-apicurito-generator-rhel8
criu-PROFILEApicurito REST 应用程序生成器 -
fuse7/fuse-apicurito-rhel8
criu-wagonApicurito REST API 编辑器 -
fuse7/fuse-apicurito-rhel8-operator
mvapich-mvapichAPI Designer Operator
3.3. OpenShift 上的 Fuse 7.9 中的新功能
OpenShift 上的 Fuse 在版本 7.9 中提供以下新功能:
支持 JDK 11
Fuse 7.9 支持使用 JDK 11 在 OpenShift 快速入门上构建 Fuse。
使用
openshift-maven-plugin
运行快速入门当使用 Maven archtypes 构建并运行 Fuse 时,Fuse 7.9 会使用新的
openshift-maven-plugin
。
3.4. 重要备注
在 OpenShift 发行版上的 Fuse 7.9 发行版本的重要备注:
- Data Virtualization 已被删除
- 从 Fuse 7.7 开始,数据虚拟化已被弃用,已从 Fuse 7.8 中删除。
- Spring Boot 1 已被删除
- 从 Fuse 7.7 开始,Spring Boot 1 已被弃用,已从 Fuse 7.8 中删除。建议您按照 Spring Boot 2.0 迁移指南中的指导将 Spring Boot 应用程序迁移到 Spring Boot 2。
- Fabric8 Maven 插件现已弃用
- Fabric8 Maven 插件已弃用,自 Fuse 7.9 起被 OpenShift Maven 插件 替代。使用 OpenShift Maven 插件构建和部署应用程序。
- 使用 JDK11 运行快速入门
- 如果要在运行时使用基于 JDK11 的镜像,请在编译时使用正确的 JDK11 配置集。使用 JDK11 构建和部署快速入门时,请确保已在构建机器上安装 JDK11,然后使用正确的 JDK11 配置集构建快速入门。
eap-camel-jpa
quickstart 已被删除-
由于依赖项存在问题,
eap-camel-jpa
Quickstart 已从 Fuse 7.8 中删除。 - 在 Fuse 7.8 上无法访问 Jolokia
- 从 Fuse 7.8 开始,Jolokia 默认协议从 HTTP 切换到 HTTPS。
第 4 章 Fuse Standalone
4.1. 支持的容器
以下运行时容器支持 Fuse standalone 7.9:
- Spring Boot 2 (standalone)
- Apache Karaf
- Red Hat JBoss Enterprise Application Platform (JBoss EAP)
4.2. Fuse 7.9 中的新功能
7.9 中 Fuse 独立的主要新功能是:
- 配置 undertow 线程池名称
Undertow 线程池及其名称现在可以在每个服务/捆绑包基础上配置,以改进 Hawtio 控制台的监控和调试。
如需更多信息,请参阅 Apache Karaf 安全指南 中的 Worker IO 配置部分。
- 在 Camel 中实施消费者优先级
某些代理(特别是 Artemis)允许您为您要发送的消息指定消费者优先级。在 Fuse 7.9 中,此配置选项在
camel-amqp
和camel-jms
组件中公开。如需更多信息,请参阅 Apache Camel 组件参考中的 JMS 组件部分。
- 支持 Salesforce Bulk API V2
Camel SAP Salesforce Bulk 2.0 API 现在被支持,并可用于快速将大量数据加载到 Salesforce 中,或者从 Salesforce 中查询大量数据。
如需更多信息,请参阅 Apache Camel 组件参考 中的 Bulk 2.0 API 部分。
- 支持 Camel SAP 组件中的快速 RFC 序列化
camel-sap
组件现在支持快速 RFC 序列化。如需更多信息,请参阅 Apache Camel 组件参考中的目标配置 部分。https://access.redhat.com/documentation/zh-cn/red_hat_fuse/7.9/html-single/apache_camel_component_reference/index#SAP-DestConfig
- 支持 Karaf 上 Fuse 的 Spring Security
-
现在支持
camel-spring-security
组件。
4.3. 技术预览功能
Fuse 独立的以下功能 只是技术预览,在 Fuse 7.9 中不支持:
- saga EIP
- Saga Enterprise Integration Pattern (EIP)是一个技术预览功能,仅具有 In-Memory Saga 服务(不适用于生产环境)。不支持 LRA Saga 服务。如需了解更多详细信息,请参阅"Apache Camel 开发指南"中的 Saga EIP 部分。
4.3.1. Fuse Tooling 支持 Apache Camel
Fuse 工具为 Camel 应用程序开发提供了跨平台、跨 IDE 方法,支持 Visual Studio Code、Eclipse IDE 和 Eclipse Che 的 Apache Camel 语言支持扩展或插件。
对于 Visual Studio Code,您还可以添加向 Camel Rest DSL 支持提供 WSDL 的扩展。
注意: 这些功能已默认包含在用于 Red Hat CodeReady Studio 的 Fuse Tooling 中。
Visual Studio Code 功能
VS Code Apache Camel 扩展是社区功能。红帽不支持它们。
Apache Camel 扩展的语言支持为 Camel URI 提供功能,如下所示:
对于 XML DSL 和 Java DSL:
- 您可以在 VS Code outline 面板中导航到端点,并在 Go > ; Go to Symbol in File 导航面板中进入端点。
- 当您输入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 将鼠标悬停在 Camel 组件上时,编辑器显示组件的简短描述(来自 Apache Camel 组件参考)。
- 编辑文件时,编辑器对 Camel 代码执行 Apache Camel 验证检查。
- 您可以选择 File → Preferences → Settings → Apache Camel Tooling → Camel catalog version 来指定特定的 Camel Catalog 版本。
- 您可以使用 "Quick fix" 功能来处理无效的 enum 值和未知 Camel URI 组件属性。
仅限 XML DSL:
- 您可以在 VS Code outline 面板中导航到 Camel 上下文和路由,并在 File 导航面板中的 Go > ; Go to Symbol 中 进入 Camel 上下文和路由。
-
当您输入时,编辑器为直接 ID、
直接
虚拟机
SEDA
组件提供代码完成。 -
您可以在所有打开的 Camel 文件中找到
直接
组件的引用。和直接
虚拟机
对于属性:
- Camel 组件属性的完成
- 诊断
WSDL 2 Camel Rest DSL 扩展(wsdl2rest 实施)提供 WSDL 到 Camel Rest DSL 支持。通过指定现有的 WSDL 文件,您可以使用此扩展来生成 Camel Rest DSL + CXF 解决方案,以进行 REST 风格的访问。WSDL 文件可以位于本地文件系统上,或者从可访问的 Web URL 上。
要访问 Apache Camel 和 WSDL 到 Camel Rest DSL 功能的 语言支持,您可以添加一个或多个扩展。
Apache Camel 扩展包安装 以下 VS Code 扩展:
另外,您可以单独安装扩展。
如需了解更多详细信息,请参阅以下 readme 文件:
- Apache Camel 扩展包的 README
- Visual Studio Code 的 Apache Camel 语言服务器协议的 README
- 适用于 WSDL 到 Camel Rest DSL的 README
Eclipse IDE 功能
Apache Camel Eclipse 插件的语言支持为 Camel URI 提供以下功能:
在 XML DSL 和 Java DSL 的通用 Eclipse 文本编辑器中:
- 当您输入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 将鼠标悬停在 Camel 组件上时,编辑器显示组件的简短描述(来自 Apache Camel 组件参考)。
使用 Eclipse XML 或 Java 编辑器时,只提供自动完成功能。
要访问 Apache Camel 功能的语言支持,您可以从 Eclipse Marketplace 安装 Eclipse 插件。详情请查看 Eclipse IDE 的 Apache Camel 语言服务器协议的 readme 文件。
Eclipse Che 功能
Eclipse Che 7 的 Apache Camel 插件的语言支持 在 XML DSL 和 Java DSL 中提供 Camel URI。
- 当您输入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 将鼠标悬停在 Camel 组件上时,编辑器显示组件的简短描述(来自 Apache Camel 组件参考)。
- 保存文件时,编辑器对 Camel 代码执行 Apache Camel 验证检查。
要为 Eclipse Che 激活此插件,您可以使用 "Apache Camel based on Spring Boot" 堆栈或编辑工作区配置。
4.4. Fuse 7.9 的 BOM 文件
要将 Maven 项目配置为使用支持的 Fuse 7.9 工件,请使用本节中介绍的 BOM 版本。
4.4.1. BOM 文件
要将 Fuse 独立应用程序升级到使用 7.9 依赖项,请编辑 Maven pom.xml
并更改下表中列出的 BOM 和 Maven 插件的版本:
容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.9 版本 |
---|---|---|
Spring Boot 2 |
|
|
|
| |
|
| |
Apache Karaf |
|
|
|
| |
JBoss EAP |
|
|
有关使用 BOM 的详情,请参阅 迁移指南。
4.5. 重要备注
Fuse 独立发行版本的 Fuse 7.9 发行版本的重要备注:
- EAP 上的 Fuse 升级到使用 JBoss EAP 7.4.0 (从 JBoss EAP 7.3.2)
- Fuse 7.9 发行版本现在在 JBoss Enterprise Application Platform (EAP) 7.4 容器上运行(在以前版本的 Fuse 中从 JBoss EAP 7.3.2 升级)。如需了解更多详细信息,请参阅 JBoss EAP 7.4.0 发行注记。
- 更新了 Jackson 库
- 将 Jackson 库从 2.9 和 2.10 更新至 2.12.1。
- 在 Apache Karaf 中使用 OpenJDK 8u292
- 在 Apache Karaf 中运行 Fuse 时,红帽建议使用 OpenJDK 8u282。不要使用 OpenJDK 8u292,它有一个影响凭证存储的已知问题。
- 在 Karaf 上升级 Fuse
Fuse 7.9 发行版本恢复 Apache Karaf 机制(在 Fuse 7.8 中删除),它可让您对 Apache Karaf 容器应用修复,而无需在 Karaf 上重新安装 Fuse 的更新版本。
有关在 Karaf 上升级到 Fuse 7.9 的详情,请参阅 Fuse 迁移指南。
第 5 章 弃用和删除的功能
如果您需要任何帮助,或者对 Fuse 7 中即将推出的更改有任何疑问,请联系 support@redhat.com。
5.1. 已弃用
Fuse 7.9 中已弃用以下功能,并可能在以后的发行版本中删除:
- fabric8-maven-plugin 已被弃用
-
自 Fuse 7.9 起,
fabric8-maven-plugin
已被弃用。在 Fuse 7.9 之后,我们建议您使用openshift-maven-plugin
在 OpenShift 上的 Fuse 中构建和部署 Maven 项目。该插件由 Eclipse JKube 维护,它为插件提供了广泛的 文档。 - Fuse Online 安装脚本,用于在 OCP 4 上安装
- 自 Fuse 7.8 起,Fuse Online 安装脚本在 OpenShift Container Platform (OCP) 4.x 版本上安装 Fuse Online 已被弃用。在 OCP 4.x 版本中,我们建议您使用 Fuse Online Operator。在 OCP 3.11 上安装 Fuse Online 时仍支持 Fuse Online。
- 在 Camel 应用程序中弃用了 PHP、Python 和 Ruby 脚本语言
- 自 Fuse 7.4 起,PHP、Python 和 Ruby 脚本语言在 Camel 应用程序中被弃用,并将在以后的版本中删除。从 Camel 2.19 开始,Camel 社区已弃用 PHP、Python 和 Ruby (请参阅 CAMEL-10973)。这适用于所有 Fuse 容器类型:Apache Karaf、JBoss EAP 和 Spring Boot。
- HP-UX OS 已被弃用
- HP-UX 操作系统已被弃用,因为 Fuse 7.2 和对此操作系统的支持可能会在以后的 Fuse 发行版本中删除。特别是,JBoss EAP 7.2 容器已丢弃了对 HP-UX 的支持,因此任何在 JBoss EAP 7.2 上运行的 Fuse 版本都不支持在 HP-UX 上。
- Camel MQTT 组件已弃用
- Camel MQTT 组件在 Fuse 7.0 中已弃用,并将在以后的 Fuse 发行版本中删除。您可以使用 Camel Paho 组件,它使用流行的 Eclipse Paho 库来支持 MQTT 消息传递协议。
- 除了 Linux 外,Camel LevelDB 组件在所有操作系统中都已弃用
-
自 Fuse 6.3 起,Camel LevelDB (
camel-leveldb
)组件在所有操作系统上已被弃用,但 Red Hat Enterprise Linux 除外。未来,Camel LevelDB 组件仅在 Red Hat Enterprise Linux 上被支持。 - Camel SJMS 组件的 BatchMessage 类已弃用
- Camel SJMS 组件的 BatchMessage 类在 Fuse 7 中被弃用(自 Apache Camel 2.17 起弃用),并可能从未来版本的 Apache Camel 和 Fuse 中删除。
5.2. 在 Fuse 7.8 中删除
- Spring Boot 1
- Fuse 7.8 不再支持 Spring Boot 1。建议您按照 Spring Boot 2.0 迁移指南中的指导将 Spring Boot 应用程序迁移到 Spring Boot 2。
- Fuse Online 中的 Camel K 运行时
- Fuse 7.8 不再支持 Fuse Online 中的 Camel K 运行时(技术预览功能)。
- Camel XmlJson 组件已在 7.8 中删除
-
Camel XmlJson (
camel-xmljson
)组件已在 Fuse 7.8 中删除。
5.3. 在 Fuse 7.5 中删除
Fuse 7.5 中删除了以下功能:
- 7.5 中丢弃了对与 MS SQL Server 2014 集成的支持
- MS SQL Server 2014 不再经过测试并支持与 Fuse 7.5 集成。我们建议您使用 MS SQL Server 最新版本,而不是 iwl-setuptools,例如,MS SQL Server 2016 或 2017。
- Camel LinkedIn 组件已在 7.5 中删除
在 Fuse 7.5 中删除了
camel-linkedin
组件。重要虽然从 Fuse 7.5 中删除,但
camel-linkedin
组件可能会在以后的发行版本中恢复。
5.4. 在 Fuse 7.3 中删除
Fuse 7.3 中删除了以下功能:
- Camel YQL 组件已在 7.3 中删除
- Camel YQL 组件已在 Fuse 7.3 中删除。
- 7.3 中已删除了 openjpa 和 OpenzFCP3 Karaf 功能
-
openjpa
功能和openjpa3
功能已从 7.3 中的 Apache Karaf 容器中删除。对于 Java Persistence 架构(diag)实现,请使用支持的hibernate
功能。 - 在 7.3 中删除了 camel-jetty Karaf 功能
-
camel-jetty
功能已从 7.3 中的 Apache Karaf 容器中删除,因为它使用 Jetty 8。改为使用camel-jetty9
功能。 - 在 7.3 中删除了 Pax-jms-oracleaq Karaf 功能
-
pax-jms-oracleaq
功能已从 7.3 中的 Apache Karaf 容器中删除,因为它需要第三方非免费 Oracle AQ 库。 - 在 7.3 中,camel-elasticsearch 组件已从 EAP 上的 Fuse 中删除(Wildfly Camel)
-
camel-elasticsearch
组件已从 7.3 中的 EAP 上的 Fuse (Wildfly Camel)中删除。改为使用较新的camel-elasticsearch-rest
组件。
5.5. 在 Fuse 7.2 中删除
Fuse 7.2 中删除了以下功能:
- Camel XMLRPC 组件已在 7.2 中删除
- Camel XMLRPC 组件已在 Fuse 7.2 中删除。
- Camel Netty 组件已在 7.2 中删除
- Camel Netty 组件已在 Fuse 7.2 中删除。建议您改用 Camel Netty4 组件。
5.6. 在 Fuse 7.0 中删除
Fuse 7.0 中删除了以下功能:
- 7.0 中删除了对 Red Hat JBoss Operations Network (JON)的支持
- 自 Fuse 7.0 起,Flytron 上的 Fuse 不再支持 JON,不再提供用于与 JON 运行时集成的 JON 插件。
- 7.0 中删除了嵌入的 ActiveMQ 代理
- 自 Fuse 7.0 起,Fleti 上的 Fuse 不再提供嵌入式 ActiveMQ Broker。客户应直接连接到受支持的远程代理。有关我们支持的代理的更多信息,请参阅 Red Hat Fuse 支持的配置 页面中的 "支持消息传递提供程序"部分。
- 7.0 中删除了 Fuse 集成包
- 对运行规则和流程的支持由 Red Hat JBoss BPM Suite 和 Red Hat JBoss BRMS 附带的组件提供。
- 7.0 中已删除用于子容器管理的 Karaf 控制台命令
自 Fuse 7.0 起,不支持 用于子容器管理的 Karaf 控制台命令。也就是说,不支持以
instance:
(Karaf 4.x 语法)和前缀为admin:
(Karaf 2.x 语法)的控制台命令。注意在 Fuse 7.0 GA 版本中,
instance:
命令不会被删除。这是个已知问题。- 7.0 中已删除了 SwitchYard
- 自 Fuse 7.0 起,drad 已被删除,您应该直接使用 Apache Camel。如需更多信息,请参阅Swoning Support Plan after Releasing Fuse 7。
- 7.0 中删除了对 Fabric8 1.x 的支持
自 Fuse 7.0 起,Fabra8 v1 已被 OpenShift 上的 Fuse (以前为 Fuse 集成服务)替代,其中包括 Fabric8 v2 技术的组件。OpenShift 上的 Fuse 提供了一组工具和 Docker 格式镜像,支持 OpenShift 中集成微服务的开发、部署和管理。
虽然 OpenShift 上的 Fuse 具有不同的架构,但它满足 Fabric8 v1 提供的相同调配、自动化、中央配置和管理要求。如需更多信息,请参阅 OpenShift 上的 Fuse 指南。
- 7.0 中删除了 Google App Engine 的 Camel 组件
-
Fuse 7.0 中删除了 Google App Engine 的 Camel 组件(
camel-gae
)。 - 在 7.0 中删除了 Camel jBPM 组件
-
Camel jBPM 组件(
camel-jbpm
)已在 Fuse 7.0 中删除。 - 7.0 中删除了将 Fuse 安装为服务的 Tanuki 的打包程序
-
在 Fuse 7.0 中删除了基于 Tanuki 的 wrapper 脚本,使用
wrapper:install
Karaf console command iwl-wagon for 将 Fuse 作为服务安装。要将 Apache Karaf 容器安装为一个服务,建议您改为使用bin/contrib
目录中的新的karaf-service indices.sh
脚本。 - 在 7.0 中删除了 Smooks
- 自 Fuse 7.0 起,Smooks 组件已删除。
- 在 7.0 中删除了 puppetlabs
- VirtIO (基于 Riftsaw 项目)已从 Fuse 7.0 中删除。如果您当前正在使用 mvapich,建议您考虑迁移到红帽 JBoss BPM 套件。
- 7.0 中删除了设计时间监管
- Design Time Governance 组件已在 7.0 中删除。
- 7.0 中删除了运行时监管
- 自 Fuse 7.0 起,删除了 Runtime Governance (RTGov)组件。
- 在 7.0 中删除 s-RAMP
- Fuse 7.0 中删除了 SOA Repository Artifact Model and Protocol (S-RAMP)组件。
- bin/patch 脚本已在 7.0 中删除
-
在 Fuse 7.0 中删除了
bin/patch
脚本(bin\patch.bat
on Windows O/S)。 - 7.0 不支持 Spring Dynamic Modules (Spring-DM)
- Fuse 7.0 不支持 Spring XML 与 Apache Karaf 中的 OSGi 服务层集成,您应该改为使用 Blueprint 框架。使用 Blueprint XML 不会阻止您使用 Spring 框架中的 Java 库:最新版本的 Spring 与 Blueprint 兼容。
- 7.0 不支持 Apache Open JPA
- Fuse7.0 不支持 Java Persistence API (JPA)的 Apache Open JPA 实现。建议您使用 Hibernate 实现。
5.7. 在 Fuse 7.0 中替换
Fuse 7.0 中替换了以下功能:
第 6 章 Fuse 7.9 中不支持的功能
Red Hat Fuse 7.9 不支持以下功能。
- OCP 3.11 不支持使用 Operator 安装 Fuse 控制台
- 不支持使用 Operator 安装 Fuse 控制台,且不适用于 OpenShift Container Platform (OCP) 3.11。在 OCP 3.11 上安装 Fuse Console 的建议方法是使用模板。
- 不支持 Apache Karaf EclipseLink 功能
- Fuse 不支持 Apache Karaf EclipseLink 功能,因为此功能依赖于 JPA 2.2,而 Fuse 7.2 的 Karaf 容器与 JPA 2.1 一致。
- 不支持 Apache Aries Blueprint Web 模块
- Fuse 不支持 Apache Aries Blueprint Web 模块。在 Apache Camel 的社区版中存在一个包含 Blueprint Web 的示例(作为单独的下载提供) 并不意味着 Fuse 中支持此功能。
- Apache Camel on Apache Karaf 不支持 PHP 脚本语言
- Apache Karaf 容器上的 Camel 应用程序 不支持 PHP 脚本语言,因为 PHP 没有适用于 PHP 的 OSGi 捆绑包。PHP 脚本语言在 JBoss EAP 容器和 Spring Boot 容器中的 Camel 应用程序中被弃用。
- Apache Camel on Apache Karaf 不支持 Python 脚本语言
- Apache Karaf 容器上的 Camel 应用程序 不支持 Python 脚本语言,因为 Python 没有适用于 Python 的 OSGi 捆绑包。Python 脚本语言在 JBoss EAP 容器和 Spring Boot 容器中的 Camel 应用程序中被弃用。
第 7 章 已知问题
以下小节描述了版本 7.9 中的已知问题。
7.1. CVE 安全漏洞
作为中间件集成平台,Fuse 可能会与大量第三方组件集成。无法始终排除 Fuse 的一些第三方依赖项可能会存在安全漏洞。本节记录了与影响 Fuse 7.9 的第三方安全性相关的已知常见漏洞和暴露(CVE)。
- CVE-2020-13936 CVE-2020-13936 velocity: 当攻击者能够修改模板时执行任意代码
可以修改 Velocity 模板的攻击者可以执行任意 Java 代码,或运行任意系统命令,其特权与运行 Servlet 容器的帐户相同。这适用于允许不受信任的用户上传/修改 velocity 模板的应用程序,这些模板运行 Apache Velocity Engine 版本(最多 2.2)。
Fuse 7.9 修改了其依赖项,以确保它只使用 Velocity 版本(即版本 2.3)来保护这个安全漏洞。如果您的应用程序代码对 Apache Velocity 组件有明确的依赖项,我们建议您升级这些依赖项以使用固定版本。
- ENTESB-8113 CVE-2018-10237 guava: Unbounded memory allocation in AtomicDoubleArray 和 CompoundOrdering 类允许远程攻击者拒绝服务 [fuse-7.0.0]
Google Guava 版本 11.0 到 24.1 会受到
AtomicDoubleArray
类中未绑定的内存分配(当使用 Java 序列化序列化)和CompoundOrdering
类(当使用 research 序列化序列化)中无限的内存分配。攻击者可以利用使用 Guava 和反序列化不序列化数据的应用程序,从而导致拒绝 service iwl-osgi。如需更多信息,请参阅 CVE-2018-10237。要避免此安全漏洞,我们建议您:
-
从未知源不会反序列化
AtomicDoubleArray
实例或CompoundOrdering
实例。 - 避免使用 Guava 版本 24 及更早版本(虽然在某些情况下无法避免早期版本)。
为了便于避免之前(vulnerable)的 Guava 版本,Fuse 7.7 已为所有容器配置了 Maven Bill of Materials (BOM)文件,以默认选择 Guava 27。这意味着,如果您在 Maven 项目中将 Fuse BOM 整合到 Maven 项目中(通过将 BOM 的依赖添加到 POM 文件的
dependencyManagement
部分),然后在没有指定显式版本 的情况下 指定 Guava 工件的依赖关系,Genava 版本将默认为 BOM 中指定的版本,即 Fuse 7.7 BOM 的版本 27。但是,至少有一个常见的用例涉及 Apache Karaf (OSGi)容器,在这种情况下,无法避免使用 Guava:如果您的 OSGi 应用程序使用 Guava 和 Swagger,则您很难使用 Guava 20,因为这是 Swagger 所需的版本。在这里我们解释为什么如此,以及如何配置 POM 文件来恢复之前(vulnerable) Genava 20 库。首先,您需要了解 双 OSGi 链 的概念。
双 OSGi 链
OSGi 运行时中的捆绑包使用软件包约束(软件包名称 + 可选版本/范围)来连接 together,以及 exports。每个捆绑包可以有多个导入,通常那些导入一个带有多个捆绑包的捆绑包。例如:
BundleA +-- BundleB | +-- BundleCa +-- BundleCb
其中
BundleA
依赖于BundleB
和BundleCb
,而BundleB
则依赖于BundleCa
。BundleCa
和BundleCb
应相同捆绑包,如果导出相同的软件包,但由于版本(范围)约束,BundleB
使用(有线)与BundleA
不同的修订版本/版本BundleC
。重写前面的图,以反映应用程序中的 Guava 和 Swagger 的依赖关系时发生的情况:
org.jboss.qe.cxf.rs.swagger-deployment +-- Guava 27 +-- Swagger 1.5 +-- reflections 0.9.11 +-- Guava 20
如果您尝试部署此捆绑包配置,您会收到错误
org.osgi.framework.BundleException: Uses constraint violation
。恢复到 Guava 20
如果您的项目同时使用 Guava 和 Swagger 库(直接或间接),您应该将
maven-bundle-plugin
配置为对 Guava 捆绑包导入使用显式版本范围(或根本没有范围),如下所示:<Import-Package> com.google.common.base;version="[20.0,21.0)", com.google.common.collect;version="[20.0,21.0)", com.google.common.io;version="[20.0,21.0)" </Import-Package>
此配置会强制您的 OSGi 应用程序恢复到(vulnerable) Garava 20 库。因此,在这种情况下,务必要避免反序列化
AtomicDoubleArray
实例。-
从未知源不会反序列化
- CVE-2017-12629 Solr/Lucene -security 绕过访问敏感数据 - CVE-2017-12629
Apache Solr 是一个流行的开源搜索平台,它使用 Apache Lucene 搜索引擎。如果您的应用程序使用 Apache Solr 与 Apache Lucene (例如,使用 Camel Solr 组件)的 Apache Solr 的组合,则可能会受此安全漏洞的影响。有关此漏洞的详情以及要采取的缓解方案,请参阅链接的安全公告。
注意Fuse 运行时 不直接 使用 Apache Solr 或 Apache Lucene。只有在集成应用程序上下文中同时使用 Apache Solr 和 Apache Lucene 时(例如,使用 Camel Solr 组件时),才会出现安全风险。
7.2. Fuse Online
Fuse Online 发行版有以下已知问题:
- ENTESB-17137 无法在断开连接的环境中访问 Fuse Online
在 Fuse 7.9 中,在断开连接的 OpenShift Container Platform (OCP)集群中安装 Fuse Online 后,您无法访问 Fuse Online 的 UI。当您尝试访问 UI 时,您会收到以下错误:
504 Gateway Time-out The server didn't respond in time.
要临时解决这个问题,您需要将 Fuse Online Operator 缩减为零,然后在 Syndesis OAuth Proxy 部署配置中设置三个环境变量。您可以在命令行中输入以下命令进行此操作:
oc scale deployment fuse-online-operator --replicas 0 sleep 10 oc set env deploymentconfig/syndesis-oauthproxy HTTP_PROXY=$(oc get proxy cluster -o jsonpath='{.status.httpProxy}') oc set env deploymentconfig/syndesis-oauthproxy HTTPS_PROXY=$(oc get proxy cluster -o jsonpath='{.status.httpsProxy}') oc set env deploymentconfig/syndesis-oauthproxy NO_PROXY=$(oc get proxy cluster -o jsonpath='{.status.noProxy}')
请注意,Fuse Online Operator 必须保持在零扩展。如果将 Operator 扩展至一个,它将覆盖环境变量,将其重置为(正确)默认值。
- ENTESB-16987 [Hawtio] Broken 布局,用于 OSGi → Features 中的下拉菜单
- 自 Fuse 7.8 起,在 Apache Karaf 上使用 Fuse 控制台时,在 OSGi | Features 选项卡上,根据存储库下拉菜单过滤 具有错误的布局。
- ENTESB-16989 DataMapper 反斜杠分隔符仅在消息有双反斜杠时才能正常工作
-
自 Fuse 7.9 起,当使用 DataMapper
单对多
分割转换时,如果您选择反斜杠字符\
,作为定义分割点的分隔符,则只有反斜杠字符被另一个反斜杠转义时,分割转换才会成功。换句话说,会在出现双反斜杠\\
时进行分割。JSON 标准要求使用另一个反斜杠转义反斜杠文字,因此此行为与 JSON 标准一致。 - 分割转换中的 ENTESB-16990 DataMapper 多空格分隔符的行为是"double space"分隔符
-
自 Fuse 7.9 起,当使用 DataMapper
单对多
分割转换时,如果您选择了由两个以上空格组成的多空间分隔符来定义分割点,则分割内容将包含额外的空间。例如,在使用由n
空格组成的多空间分隔符时,生成的分割字段将假定为n-2
空格。换句话说,分割转换的行为就像在双空格上分割一样。 - ENTESB-15063 Unable to override maven repository
从 Fuse 7.8 开始,如果您在离线(从互联网断开连接)环境中运行 Fuse Online,并且已将 Fuse Online 自定义资源(CR)配置为使用本地网络上的自定义 Maven 存储库,例如:
... server: features: maven: append: false repositories: customRepo1: http://192.0.2.0:8080 ...
然后,除了指定的
customRepo1
外,还需要查看其他 Maven 存储库,尽管在 CR 中指定append: false
标志。例如,如果 Fuse Online 被配置为使用下载 Maven 依赖项的扩展,则可以发生这种情况。通常,这个问题会导致构建时间较长,因为不正确的 Maven 存储库在指定的自定义 Maven 存储库 之前 被查阅,这在构建过程中浪费时间。- ENTESB-15348 Syndesis-jaeger 在 OCP 3.11 上使用未产品的镜像
从 Fuse 7.8 开始,如果您试图在启用了 Jaeger 附加组件的 OCP 3.11 上安装 Fuse Online (增强活动跟踪),您可能会遇到以下错误:
Unknown desc = toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
这是因为 productised Jaeger 容器引用 Dockerhub 镜像,镜像不由红帽控制。要临时解决这个问题,您可以等待速率限制窗口超时,或者禁用 Jaeger 附加组件。
- 由 Syndesis 1.11 安装的 ENTESB-14518 Jaeger operator 会影响其他命名空间
-
自 Fuse 7.8 起,当您在 OpenShift 集群上安装 Fuse 7.8 Online (Syndesis 1.11)时,Jaeger Operator (与 Fuse Online 一起安装)会被配置为默认管理 所有命名空间。此行为的一个副作用是,当您在集群中安装了 Fuse 7.7 Online (Syndesis 1.10),然后在不同的命名空间中安装 Fuse 7.8 Online 时,使用 Fuse 7.8 Online 安装的 Jaeger Operator 会尝试管理 Fuse 7.7 Online 命名空间上安装的 Jaeger 实例。结果是,在 Fuse 7.7 Online 命名空间中的现有
syndesis-jaeger
syndesis-jaeger
pod 会进入CrashLoopBackOff
状态。原始 Fuse 7.7 Online 实例不受影响,可以安全地忽略崩溃的复合 pod。 - 部署集成 API 的 ENTESB-13966 发现功能被禁用,但不真正禁用
- 从 Fuse 7.7 开始,在创建一个包含 API 的新集成后,集成详情页面会错误地表示这个集成禁用了 3scale 发现。另外,集成详情页面不会显示 API URL。通过单击此按钮三次(单击" 启用 ",然后单击" 禁用 "),您可以重新同步页面,以便启用 3scale 发现,并显示 API URL。
7.3. OpenShift 上的 Fuse
本节列出了影响在 OpenShift 中部署 Fuse 应用程序的问题。有关影响特定容器的问题详情,请参阅 Spring Boot、Apache Karaf 上的 Fuse 部分,以及 JBoss EAP 上的 Fuse。OpenShift 发行版上的 Fuse 有以下已知问题:
- 由 Apicurito Generator 生成的 ENTESB-17144 Fuse Camel 项目没有公开管理端口
在 Fuse 7.9 中,由 API Designer (Apicurito Generator)生成的 Fuse Camel 项目不会公开管理端口,因为文件配置了
src/main/resources/application.yml
。生成的src/main/resources/application.yml
文件有以下配置:management: port: 8081 endpoints: enabled: false health: enabled: true
此配置必须更改为:
management: server: port: 8081 endpoints: enabled-by-default: false endpoint: health: enabled: true
此外,生成的项目中的
pom.xml
文件使用fabric8-maven-plugin
,它已被弃用。最好在 Maven 项目中使用新的openshift-maven-plugin
。- ENTESB-17125 Quickstart Spring-Boot Soap2Rest 集成测试因为无效算法参数失败
- 在 Fuse 7.9 中,Spring Boot Soap2Rest 集成测试失败,但这不会影响功能。
- ENTESB-17091 Missing metering 标签 on spring-boot-camel-rhosak quickstart
- 在 Fuse 7.9 中,在 Spring Boot 2 上运行的 Fuse 不支持 metering 标签。
- ENTESB-15994 API Designer 从 7.8 升级到 7.9 需要删除并重新创建
- 在 Fuse 7.9 中,当从 API Designer 7.8 升级到 API Designer 7.9 时,正常的 Operator 升级过程无法正常工作。要将 API Designer 从 Fuse 7.8 升级到 Fuse 7.9,您必须删除 7.8 API Designer 操作器,然后安装 7.9 API Designer operator。
- ENTESB-16814 监控资源在文档中错误地链接
- 从 Fuse 7.8 开始,在 2.5.2 部分中引用监控资源的位置。在 OpenShift 指南上设置 Fuse 的 Prometheus 不正确,并返回 404 异常。本文档的步骤将在GA 后文档更新中解决。
- ENTESB-16287 Unable 来启动 Karaf
在 Fuse 7.9 中,在 OpenShift 上构建 Karaf 应用程序时,您必须编辑
pom.xml
,向 POM 文件的Import-Package
部分添加一行,以指定javax.annotation
;version="[1.3,2.0)例如,如果您的
pom.xml
文件中的Import-Package
部分类似如下:<Import-Package> javax.ws.rs;version="[2, 3)", javax.ws.rs.core;version="[2, 3)", javax.ws.rs.ext;version="[2, 3)", javax.xml.bind;version="[2,3)", javax.xml.bind.annotation;version="[2,3)", org.osgi.service.blueprint, org.apache.cxf.transport.http, * </Import-Package>
您将使用
javax.annotation;version="[1.3,2.0)"
添加一行,以便该部分如下所示:<Import-Package> javax.annotation;version="[1.3,2.0)", javax.ws.rs;version="[2, 3)", javax.ws.rs.core;version="[2, 3)", javax.ws.rs.ext;version="[2, 3)", javax.xml.bind;version="[2,3)", javax.xml.bind.annotation;version="[2,3)", org.osgi.service.blueprint, org.apache.cxf.transport.http, * </Import-Package>
需要这样做的原因是,一些常见的第三方依赖项可能会将
javax.annotations
库的错误版本拉取到 Karaf 容器中。
7.4. Apache Karaf 上的 Fuse
Apache Karaf 上的 Fuse 有以下已知问题:
- ENTESB-16417 凭证存储默认使用 PBEWithSHA1AndDESede
- OpenJDK 8u292 和 OracleJDK 1.8.0_291 中的安全 API 返回不完整的安全提供程序列表,这会导致 Apache Karaf 中的凭证存储失败(因为所需的安全供应商似乎不可用)。导致此问题的根本问题是 https://bugs.openjdk.java.net/browse/JDK-8249906。我们建议您使用早期的 OpenJDK 版本、OpenJDK 8u282 或更新的 OpenJDK 版本 OpenJDK 8u302,它们没有这个程序错误。
- Windows 上的 ENTESB-16526 fuse-karaf 无法在补丁期间重启:install
在 Windows 平台上的 Apache Karaf 容器中运行
patch:install
时,在某些情况下,在patch:install
命令尝试自动重启容器时可能会遇到以下错误:Red Hat Fuse starting up. Press Enter to open the shell now... 100% [========================================================================] Karaf started in 18s. Bundle stats: 235 active, 235 total '.tmpdir' is not recognized as an internal or external command, operable program or batch file. There is a Root instance already running with name ~14 and pid ~13. If you know what you are doing and want to force the run anyway, SET CHECK_ROOT_INSTANCE_RUNNING=false and re run the command.
如果您遇到此错误,只需手动重新启动 Karaf 容器。
- ENTESB-8140 Start 级别热部署捆绑包默认为 80
从 Fuse 7.0 GA 版本开始,在 Apache Karaf 容器中,热部署的捆绑包的开始级别默认为 80。这可能会导致热部署捆绑包出现问题,因为有很多系统捆绑包和功能具有相同的启动级别。要临时解决这个问题,并确保热部署的捆绑包可靠地启动,请编辑
etc/org.apache.felix.fileinstall-deploy.cfg
文件并更改felix.fileinstall.start.level
设置,如下所示:felix.fileinstall.start.level = 90
- ENTESB-7664 安装框架安全特性终止 karaf
必须使用
--no-auto-refresh
选项安装framework-security
OSGi 功能,否则此功能将关闭 Apache Karaf 容器。例如:feature:install -v --no-auto-refresh framework-security
7.5. JBoss EAP 上的 Fuse
JBoss EAP 上的 Fuse 有以下已知问题:
- JBEAP-21929 (7.4.z) org.infinispan.client.hotrod 模块缺少对 org.infinispan.protostream 的依赖
在 Fuse 7.9 中,Camel Infinispan (
camel-infinispan
)组件不适用于 JBoss EAP 上的 Fuse,因为 JBoss EAP 7.4.0 缺少对org.infinispan.protostream
的依赖(请参阅 ENTESB-16186)。如果您在 JBoss EAP 7.4.0 上的 Fuse 中使用 Camel Infinispan 组件时遇到以下错误:java.lang.NoClassDefFoundError: org/infinispan/protostream/SerializationContextInitializer Caused by: java.lang.ClassNotFoundException: org.infinispan.protostream.SerializationContextInitializer from [Module \"org.infinispan.client.hotrod\" version 11.0.9.Final-redhat-00001 from local module loader
您可以通过修改
$EAP_HOME/modules/system/layers/base/org/infinispan/client/hotrod/main/module.xml
,添加org.infinispan.protostream
模块来解决此问题,如下所示:<module name="org.infinispan.client.hotrod" xmlns="urn:jboss:module:1.x"> <properties> <property name="jboss.api" value="private"/> </properties> <resources> <resource-root path="infinispan-client-hotrod-x.x.x.Final-redhat-00001.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="com.google.protobuf" optional="true"/> <module name="io.netty"/> <module name="org.infinispan.commons"/> <module name="org.jboss.logging"/> <module name="org.infinispan.protostream" optional="true"/> <!-- add this line --> </dependencies> </module>
当底层 JBoss EAP 容器出现此问题时,在修复可用后立即升级到 JBoss EAP 的固定(和支持)版本可以解决此问题。
- EAP 域模式上的 ENTESB-13168 Camel 部署无法在 Windows 上工作
- 从 Fuse 7.6.0 开始,对于 JBoss EAP 上的 Fuse,在 Windows OS 上的域模式中无法部署 Camel 子系统。
7.6. Fuse 工具
Fuse 工具有以下已知问题:
- FUSETOOLS-3460 Fuse Tooling 临时使用已弃用的模板
-
在 CodeReady Studio 12.21 发布后,Fuse Tooling 将使用
fabric8-maven-plugin
从 迁移到openshift-maven-plugin
。 - _FUSETOOLS-3384_Fuse Tooling 临时使用 Java 8
- 虽然 Fuse 工具当前与 Java 11 配合使用,但对使用 Java 11 的模板的完全支持将在 CodeReady Studio 12.21 版本中提供 Fuse Tooling。
7.7. Apache Camel
Apache Camel 有以下已知问题:
- ENTESB-15343 XSLT 组件无法与 IBM1.8 JDK 正常工作
-
在 Fuse 7.8 中,Camel XSLT 组件无法与 IBM 1.8 JDK 正常工作。出现这个问题的原因是,XSLT 的 Apache Xerces 实现不支持
javax.xml.XMLConstants#FEATURE_SECURE_PROCESSING
属性(请参阅 XERCESJ-1654)。 - ENTESB-11060 [camel-linkedin] V1 API 不再被支持
- 自 Fuse 7.4.0 起,Camel LinkedIn 组件无法再与 LinkedIn 服务器通信,因为它使用 LinkedIn Version 1.0 API 实施,它不再受 LinkedIn 支持。Camel LinkedIn 组件将更新为在以后的 Fuse 版本中使用 Version 2 API。
- ENTESB-7469 Camel Docker 组件无法在 EAP 上使用 Unix 套接字连接
-
自 Fuse 7.0 起,
camel-docker
组件只能通过其 REST API 连接到 Docker,而不通过 UNIX 套接字连接。 - ENTESB-5231 PHP 脚本语言无法正常工作
- Apache Karaf 容器上的 Camel 应用程序 不支持 PHP 脚本语言,因为 PHP 没有适用于 PHP 的 OSGi 捆绑包。
- ENTESB-5232 Python 语言无法正常工作
- Apache Karaf 容器上的 Camel 应用程序 不支持 Python 脚本语言,因为 Python 没有适用于 Python 的 OSGi 捆绑包。
- ENTESB-2443 Google Mail API - 发送消息和草案不是同步
- 当您发送消息或草案时,响应包含一个 ID 的 Message 对象。可能无法通过另一个调用 API 立即获取此消息。您可能需要等待和重试调用。
- ENTESB-2332 Google Drive API JSON 响应用于更改返回首页的项目的错误计数
-
Google Drive API JSON 响应用于更改返回首页的项目的错误计数。为列表操作设置
maxResults
可能无法返回第一个页面中的所有结果。您可能需要通过多个页面来获取完整的列表(即在新请求中设置pageToken
)。
第 8 章 修复了 Fuse 7.9 中的问题
以下小节列出了 Fuse 7.9 中修复的问题:
8.1. Fuse 7.9 中的增强
下表列出了 Fuse 7.9 中的增强功能。
问题 | 描述 |
---|---|
为凭证存储提供更强大的屏蔽(PBE)算法 | |
使用 openshift-maven-plugin 进行 quickstarts / archetypes | |
"backport to camel 2463 | |
camel-sap 支持 SAP 的快速 RFC 序列化功能 | |
在 camel 中实施消费者优先级 | |
postgres 12 测试 | |
增强请求:后端端口 [CAMEL-14118] : camel-http4 - Add option getWithBody | |
允许配置 undertow 线程池名称 | |
Web 控制台 / Hawtio 中的 reintroduce Quartz 调度程序页面 | |
将 activemq-http 传输添加到 EAP 安装的 Fuse | |
添加对组件 paho-mqtt5 的支持 | |
[foo] 在 OCP 4.9 中为 API 弃用计划 | |
升级 Fuse Online 以使用 Postgres 12 | |
为 fuse-online 7.9 使用 rhel8 基于镜像 | |
将 AtlasMap 更新至 2.2.1 | |
使用基于 rhel8 的 AMQ 镜像用于 fuse-online 7.9 | |
显示索引和更改顺序 | |
属性和 Constants | |
内联通知 | |
源文件冲突示例 | |
记录并测试从基于脚本安装到 Operatorhub 订阅的迁移 | |
在安装时进行 nodeAffinity 和 toleration 配置 | |
Fuse Online Jaeger 启用 | |
"允许使用外部 DB 进行 Syndesis (可用于 RHMI) | |
编辑和管理查找模式 | |
Atlasmap CSV 模态窗口设计 | |
更新 Fuse Console 频道以符合 RHI 提议 | |
Fuse Online 7.9 到 2.1.x 中的 AtlasMap 更新 | |
在基于 Operator 的项目中添加 Kustomize 安装方法 | |
"增强补丁机制 | |
将 affinity/tolerations 设置为 syndesis-jaeger pod | |
重新加载 ConfigMap,以避免手动 pod 重新运行 | |
在 Fuse Online 中支持 OSD | |
迁移 FoO Quickstarts off Arqullian | |
升级到 EAP-7.4.0.CD21 | |
SOAP Connector GA | |
Respin Fuse 7.9 镜像 [OpenJDK 8u282] | |
将 AtlasMap 更新至 2.2.2 | |
改进表达式中的 enum 支持 | |
Respin Fuse 7.9 镜像 [OpenJDK 8u302] | |
支持为 AtlasMap 属性映射的 Camel 消息标头 | |
更新 Fuse Online 频道以符合 RHI 提议 | |
使用所有可更改的属性的默认值填充 default-cr.yml 文件 | |
noauth jaeger 查询服务用于 Jaeger 混合用例 | |
在 OCP 4.9 中计划 API 弃用 |
8.2. Fuse 7.9 中的功能请求
下表列出了 Fuse 7.9 中的功能请求。
问题 | 描述 |
---|---|
在 karaf 上带有嵌入式 undertow 服务器的 cxf 的 record-request-start-time 访问日志记录选项 | |
在 karaf 上带有嵌入式 undertow 服务器的 cxf 访问日志支持 | |
在 karaf 上带有嵌入式 undertow 服务器的 cxf 支持 RequestLimitingHandler | |
[CAMEL-14968] Configurable shutdownAwaitTermination on Kafka Consumer Graceful Shutdown | |
支持 Fuse 7 中的 Java 11 - Spring Boot 2 运行时 | |
支持 Fuse 7 中的 Java 11 - EAP 运行时 | |
支持 Red Hat Fuse 中的 Microsoft SQL Server 2019 | |
RequestLimitingHandler 由 karaf (pax-web-undertow)上的受管 pax-web-undertow 的支持 | |
请求为 Salesforce Bulk API V2 添加组件 | |
在 Fuse Online 中添加审计功能 | |
RHEL 8 | |
FUSE (camel-sap) SAP 认证与 SAP S4/HANA | |
"如何使用""useIAMCredentials""用于 Camel 中的 aws SQS 组件?" | |
为 SAP S/4HANA (1809/1909)认证 Fuse | |
扩展 ftp 连接器 | |
升级 camel-ssh,使其与 EAP-7.4 兼容 | |
端口 infinispan 身份验证支持 |
8.3. Fuse 7.9 中的冲突
下表列出了 Fuse 7.9 中的冲突。
问题 | 描述 |
---|---|
在 Fuse 7.8.0.GA 上应用完整的 7.9 补丁时,不可靠。 |
8.4. 在 Fuse 7.9 中解决的错误
下表列出了 Fuse 7.9 中已解析的错误。
问题 | 描述 |
---|---|
Fuse console operator 描述应该修改 | |
[CXF-8251] Lack of org.apache.cxf.transports.http_undertow.EnableHttp2 option | |
"Fuse Online - Warn message ""Configuration required""在导入集成后显示" | |
当 tempFile 也配置时,fileExist=Move 无法正常工作 [Fuse 7.x] | |
在 Karaf 环境中使用带有 OpenApi V3 的 cxf rest 端点 | |
使 Spring Security 在 Fuse/Karaf 中工作 | |
配置管理员与非小写凭证存储密钥不匹配 | |
Fuse 7 (在 Karaf 上): camel-ssh 不支持 EdDSA 数字签名 | |
Red Hat Fuse 7.x on EAP : 当密钥存储和信任存储详情被设置为 EAP 中的系统属性时,ssl 无法正常工作。 | |
将 SpringBoot 2 应用程序从 7.7 升级到 7.8 可防止加载所有 Camel 上下文 | |
[Fuse Online] Export integrations leaves open connections to the syndesis-db | |
在 SpringBoot 上通过 Camel 重复自定义 RoutePolicyFactory | |
"Camel undertow 组件强制设置""text/plain"" even Rest DSL 将 ""application/json""设为""produces""选项" | |
没有选项可以配置 allowOptimisedComponents in toD EIP,使用 Java DSL | |
升级到 Narayana 5.11.3.Final-redhat-00001 - Fuse Spring Boot narayana-jta 不对待 com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass () | |
"""Java.lang.NoSuchMethodException""从 org.apache.cxf.common.util.ReflectionInvokationHandler.invoke ()on karaf 中抛出,因为载入多个 CodeWriter 实例" | |
springboot2 cxf 会抛出 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of | |
"Since 7.8 | |
patch:add command from 7.8.0.GA 无法从 7.8 的热修复补丁中提取一切 | |
camel-salesforce: 标准的平台事件 iwl-CAMCAMEL-15338 的错误频道名称 | |
Camel 流缓存数据丢失问题 | |
fuse-EAP 镜像使用过时的 EAP 镜像。 | |
Red Hat Fuse 7.8 on Karaf : camel-activemq consumer throw javax.jms.MessageNotWriteableException with AMQ7 | |
在资源片段的情况下,ImageChangeTags 不适用于插件生成的 DeploymentConfig。 | |
Ehcache 从 jackson-databind 中嵌入了不是最新的类 | |
向后移植 CAMEL-16181 到 fuse 7.x Latest 版本 | |
backport CAMEL-16343 - 如果用户手动提交偏移量,则 Avoid 在PartitionsRevoked 上提交偏移量 | |
CVE-2017-5645 log4j: Socket receiver deserialization vulnerability [fuse-7.8] | |
"""camel-ldif"" 功能缺少 org.apache.directory.api/api-ldap-net-mina 工件" | |
CVE: Narayana 捆绑包包含带有一些 CVE 的 Netty jar | |
proxyHost / proxyPort 参数看似被 HTTP4 组件(和 HTTP 组件)忽略 | |
[Fuse Online] - DataMapper : Convert kafka message to json end with org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: java.util.List | |
将 commons-beanutils 添加到 Fuse Spring-Boot BOM | |
[CAMEL-15027]KafkaEndpoint Sourced Headers 被 Overwritten By Default Propagation | |
当通过 OSGi 公开时,无法使用 org.apache.camel.spi.RoutePolicy | |
集成测试在 spring-boot-2-camel-soap-rest-bridge quickstart 中失败 | |
Fuse Online syesis-db 升级失败 | |
创建 SOAP 客户端连接器时 NullPointerException | |
Fuse Online syndesis-db-upgrade pod 处于错误状态 | |
Fuse 7.9 AR7 中的非产品工件 | |
Fuse Online AR11 atlasmap UI 后端不匹配 | |
输出消息中缺少 DataMapper 常量 | |
当启用了 Jaeger 附加组件时,审计功能无法正常工作 | |
缺少 Periodic 存储的流程调用步骤的返回类型 | |
在路由关闭过程中,paho-mqtt5 NPE | |
Karaf java 默认内存参数已更改 | |
UI 在编辑条件流过程中抛出错误 | |
构建 Syndesis 时出错 | |
编辑时,数组中的字段缺少映射详情 | |
7.9 的产品化提升程序缺失 | |
Karaf cxf jaxws 应用失败 | |
javax.activation.UnsupportedDataTypeException in google.mail.AttachmentsTest | |
Camel 2.23 下游测试失败 | |
安装集群阶段不会更新 CRD | |
ServiceNow 集成中的 NoClassDefFoundError | |
Syndesis 不显示 PostgreSQL 演示数据步骤 | |
DataMapper 版本不匹配警告 | |
[react-UI] 映射预览并带有表达式无法正常工作 | |
使用扩展连接器缺少属性属性时创建连接挂起 | |
API 供应商数据类型 Mismatch | |
[Fuse Console] RBAC 在从 Operator 部署时不会被默认设置为 True | |
[应用程序模板] fis 和 fuse 模板中的 Wrong 版本 | |
Fuse Online 捆绑包错误地引用特定的镜像版本 | |
API 供应商集成因为 FailedToStartRouteException 而无法启动 | |
通过 spring-boot-2-camel-soap-rest-bridge 的应用程序模板 S2I 流失败 | |
因为不匹配 env 变量,S2I Quickstarts karaf-camel-amq 会失败 | |
无法在 java 容器中执行 jps 命令 | |
UUID 数据库列错误 | |
Fuse 7.9 AR11 Build - Misalignments with 组件对齐文档 | |
About 页面中缺少提交 ID | |
JKube Pod ReplicaCount 不适用于 OMP 产品化版本 | |
因为多个消费者,快速入门 spring-boot-camel-rest-sql 会失败 | |
spring-boot-camel-infinispan Quickstart 缺少标签 | |
spring-boot-camel-xa quickstart 中缺少 pod 角色 | |
在 Karaf 快速入门中使用 OMP 生成的探测 | |
在后台创建新的条件流步骤 | |
当一个常量用于没有 Count 的 Repeat 转换时出现错误 | |
在 fabric8-quickstarts/spring-boot-cxf-jaxws 上缺少 rerunFailingTestsCount 配置 | |
替换对 geronimo-ws-metadata_2.0_spec 的引用 | |
[Fuse Console] Fuse Console Operator Metadata is missing | |
Camel Opentracing broken | |
左侧面板显示在创建新过程中的下一步 | |
quickstart archetypes 在 README.adoc 中有未对齐的标签版本 | |
注销用户 | |
如果一个补丁成功安装了补丁,则 patch:list to show installed = 'true' 而不是 'root' | |
DataMapper 只映射 GoogleSpreadsheet sheets 集合中的一个元素 | |
在数据映射程序中无法使用电子邮件地址 | |
FHIR 事务集成在 AtlasMap 更新后停止工作 | |
Operator pod 不包含 redhat metering 标签 | |
无法删除集成中间步骤 | |
GlobalModules & WFCExtrasModule on EAP-7.4 / JDK11 | |
无法安装 2 个功能 | |
部署到 OpenShift 4.6 无法使用登录参数而不是 oc login | |
导入 JDBC 扩展期间的错误 | |
application-templates [2.1.0.fuse-sb2-790017-redhat-00001] 没有 productized 标签 | |
DataMapper 在构建 AR1 上无法正常工作 | |
Fuse Online 捆绑包使用错误的频道名称 | |
无法安装 14 Karaf 功能 | |
许多到很多映射无法正常工作 | |
camel-ssh 客户端无法使用 ed25519 证书连接到服务器 | |
7.9.AR10 中的组件校准文档为 Misalignments | |
补丁 Maven 插件无法在多模块 Maven 项目中查找 Fuse BOM | |
显示来自以前 Fuse Online 版本的无效 SQL 查询 | |
由于绝对路径链接,postgres-exporter 无法构建 | |
camel-example-spring-boot-xml 示例返回 404 | |
EmbeddedCassandraServer 无法在 JDK11 上启动 | |
Apicurito pod 包含带有不正确的值的 metering 标签 | |
fuse-sb2 7.9.AR1 中的非产品化 tomcat-annotations-api | |
将 Fuse Online 7.8 升级到 7.9 | |
当必填字段为空时,下一个按钮不会被禁用 | |
Quickstarts archetype 仍然引用 fabric8 插件 | |
映射预览在 Mapping 表页面中无法正常工作 | |
链接 Secret Creation 页面到 Quickstarts | |
没有为导入的 CSV 文件生成 UUID | |
backport CAMEL-15974 - 在 HttpSendDynamicAware 中修复 RAW 参数解析 | |
从 API 连接器创建连接会预先填充旧值 | |
spring 引导初学者中没有包括一些 kafka 类 | |
使用产品化镜像进行备份 | |
对于产品化版本,版本验证失败 | |
从 Operatorhub 在线安装的 Fuse 使用错误的 Syndesis 和 Camel 版本 | |
显示 hint 时,字段会从条件映射文本字段中消失 | |
[fabric8 quickstarts] rhel7 被使用而不是 rhel8 | |
应用程序模板 rhosak 使用错误的 git 引用 | |
在读取 source 字段时抛出意外异常 | |
从 Operatorhub 安装的 FO Operator 无法创建到 Jaeger 的订阅 | |
不匹配与 7.9.AR17 中的组件对齐文档的不匹配 | |
spring-kafka-test 无法正常工作 | |
无法安装 camel-salesforce 功能 | |
Camel 上下文启动过程中找不到 XPathFactoryImpl | |
postgres-exporter 链接到错误镜像的默认值 | |
带有 ON CONFLICT 的 SQL 查询不再有效 | |
从无效规格(可能?)创建 WSDL 连接器时,不会显示任何错误 | |
Camel 2.23 在版本协调后测试失败(Fuse 7.9) | |
通过 OperatorHub 安装可能会使用旧的 CRD | |
无法在 openshift3 上安装 jaeger-operator | |
现有 API 供应商集成的错误处理 | |
使用 JDK11 的 Spring-boot-camel-infinispan-archetype 错误 | |
S2I Quickstart Spring Boot Soap2Rest 在应用程序模板中没有 Route 定义 | |
带有最新的 openjdk1.8.0 的 Camel 2.23 下游测试失败 | |
"Camel-sql | sql-stored 组件 queryTimeout 选项不存在" | |
以用户用户身份安装时部署/终结器的权限问题 | |
Camel 2.23 下游测试失败 | |
在刷新 AtlasMap UI 后 CSV 文档会消失 | |
使用 UI 创建 Select/Filter 表达式时的表达式格式错误 | |
当 API 包含错误时缺少 API Connector 查看页面 | |
Quickstart S2I 在 README.adoc 中有未对齐的标签版本 | |
Atlasmap - 导入的 CSV 文件在页面刷新时不会保留状态 | |
Atlasmap camel header/property lookup not working in UI | |
FHIR Patch 操作中缺少补丁正文 | |
没有生成 SOAP 连接器的图标 | |
camel-Swagger 与 fasterxml-jackson-2.12.1 不兼容 | |
Jackson2 版本与 EAP 7.4.0.GA 不兼容。 | |
camel-example-spring-boot-health-checks - 检查返回 404 | |
在 Karaf 快速入门上使用 OMP 公开 Jolokia 端口 | |
quickstart karaf-camel-amq 无法按预期执行 | |
Camel salesforce 不在 IBM java 上运行 | |
应用程序模板 Eap Camel 使用错误的 git 参考 | |
产品化 org.apache.servicemix.bundles.xalan-2.7.2.3-fuse-redhat-0000x.jar 有不正确的标头 | |
使用字符 '@' 命名的源字段映射在 Fuse Online Data Mapper 中无法正常工作 | |
WildFly-camel BOM 包含对不存在的工件的引用 | |
"删除 EAP 7.4.0.beta 支持 | |
Camel 2.23 下游测试失败 | |
README 指的是错误的 maven 插件(FMP 而不是 OMP) | |
从捆绑包安装时,Fuse 在线 Operator 会崩溃 | |
对齐复合安装和 csv 生成中使用的部署资源 | |
demoData 选项使其禁用 sampleDB 填充 | |
"在连接创建过程中为""时,所有填充的字段都将被删除" | |
Fuse Online - 删除 -p / --project 开关,因为 install_ocp.sh 脚本失败 | |
camel-google-sheets 组件中的 divergence | |
当添加到流时,Slack 连接器在 UI 中失败 | |
链接的文档适用于版本 7.8,而不是版本 7.9 | |
Quickstarts 公司 metering 标签不会被创建 | |
带有 undertow 组件的 Windows 用户证书存储无法正常工作 | |
Salesforce 集成失败并显示授权问题 | |
"增强补丁机制 | |
InfinispanIntegration 失败,EAP-7.4 / JDK11 | |
Camel CXF 与 EAP-7.3.3.GA-redhat-00004 不兼容 | |
凭证在 IBM jdk 8 上存储 NoSuchAlgorithmException | |
camel-infinispan 停止在 EAP 上工作 | |
在 patch:update 和 patch:install 会破坏补丁机制后添加的补丁 | |
Quickstart archetypes 具有非一致性的 readmes | |
camel-olingo4 组件的比较 | |
JPA 无法加入事务 | |
无法安装功能 pax-jdbc-pool-aries | |
OMP Route 通过 jkube.createExternalUrls 参数创建无法正常工作 | |
SpringRedisIntegration 失败,带有 CNF redis.clients.jedis.util.Pool | |
quickstarts pom.xml 中 docker 镜像的错误版本 | |
Fuse 7.9 Boosters 没有迁移到 Eclipse JKube | |
SB Fuse BOM 和 Curator 之间的未对齐 spring-boot 版本 | |
bin/client 请求密码 .ssh/id_rsa | |
应该重构 Openshift 快速入门上的 AMQ Online Fuse | |
Oracle.jdbc.internal.Monitor not found by ojdbc8 | |
无法在 EAP 7.4-beta 上安装 Fuse 7.9 | |
camel-example-spring-boot-supervising-route-controller 示例返回 404 | |
在 Karaf 7.6 和 7.7 上修复 Fuse to 7.9 的问题 | |
无法在窗口中使用 JMX 连接 | |
FMP quickstart spring-boot-camel-rest-3scale 中的 Openshift Service Object 缺少标签 | |
无法安装 camel-olingo4 功能 | |
CXFRSSecureConsumerIntegrationTest 无法找到有效的认证路径 |