Red Hat Fuse 7.10 发行注记
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 Fuse 7.10 产品概述
1.1. Fuse 分发
Fuse 7.10 以三种不同的发行版的形式提供,如下所示:
- 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.10 包括多个主要组件升级和大量新功能。详情请查看每个 Fuse 发行版本 的新功能 部分:
1.3. Fuse 7.10.1 备注
对于 OpenShift 7.10.1 上的 Fuse,镜像流的 BASEURL 是 https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_10_1-00010-redhat-00001
。
对于 Fuse Online,若要从 Fuse Online 7.9.x 升级到 7.10.1,请按照 第 2.4 节 “从 Fuse Online 7.9.x 升级到 7.10.x 需要手动升级步骤” 中的说明操作。
对于 Fuse 独立,将 7.10.1 fuse.version
属性设置为 第 4.4.2 节 “BOM 文件用于 Fuse 7.10.1” 中列出的相应 BOM 版本。
1.4. Fuse 7.10.2 备注
对于 OpenShift 7.10.2 上的 Fuse,镜像流的 BASEURL 是 https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_10_2-00001-redhat-00001
。
对于 Fuse Online,若要从 Fuse Online 7.9.x 升级到 7.10.2,请按照 第 2.4 节 “从 Fuse Online 7.9.x 升级到 7.10.x 需要手动升级步骤” 中的说明操作。
对于 Fuse 独立,将 7.10.2 fuse.version
属性设置为 第 4.4.1 节 “BOM 文件用于 Fuse 7.10.2” 中列出的相应 BOM 版本。
1.5. 重要备注
Fuse 7.10 包含对 Log4j 2.x 安全问题的修复,CVE-2021-44228 (填充称为 Log4Shell)。
Fuse 7.10.1 还包括对 Log4j 2.x 安全问题的以下修复:
Fuse 7.10.2 包含 Spring MVC 安全问题的修复,CVE-2022-22965 (填充称为 Spring4Shell)。
1.6. 支持的配置
要在 Apache Karaf 中运行 Fuse,我们推荐使用 OpenJDK 8u282 或 OpenJDK 8u302。不要使用 OpenJDK 8u292,它有一个影响凭证存储的已知问题(请参阅 ENTESB-16417)。OracleJDK 1.8.0_291 也会受到此问题的影响。
有关版本 7.10 中支持的配置、标准和组件的详情,请查看以下客户门户网站文章:
第 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.10 中的新功能
Fuse Online 7.10 提供以下新功能:
支持连接到 Red Hat Managed Kafka
要支持连接到 Red Hat Managed Kafka,Kafka Message Broker 连接器包括以下字段:
- 安全协议
- SASL 机制
- 用户名
- 密码
- SASL 登录回调处理程序类
OAuth 令牌端点 URI
如需更多信息,请参阅将 Fuse 在线 连接到应用程序和服务中的第 15 章"连接到 Kafka "。
集成标签
保存集成时,您可以对它应用一个或多个标签。标签(label)是一个键值对标签,您可以应用到集成(或其他 OpenShift 资源)以便稍后过滤并在 OpenShift 中选择。例如,OpenShift admin 用户可以通过标签过滤正在运行的 Pod 或部署的列表。
集成环境变量
另外,当您保存集成时,您可以设置一个或多个 Fuse Online 应用到集成 Pod 的环境变量。您可以使用这些环境变量来设置 Spring Boot 配置选项,例如设置
SERVER_MAX_HTTP_HEADER_SIZE
。手动设置的现有环境变量会被保留。请注意,当您保存集成不会更改或影响手动设置的任何其他环境设置时,在 Fuse Online 中设置这些环境变量,例如通过 OpenShift Web 控制台界面设置。
Maven 镜像设置
您可以指定您希望 Fuse Online 在构建集成时用于访问 Maven 工件的 Maven 存储库。在 Syndesis 自定义资源中,将 Maven 存储库指定为
components:server:features:maven:mirror
设置的值。
2.3. Fuse Online 7.10 的变化
Fuse Online 7.10 更改 Fuse Online 7.9 功能,如下所示:
要启用示例 Postgres 数据库,请使用
todo addon
选项在以前的版本中,如果您要在 Fuse Online 安装中包含示例数据库和示例数据库连接器,请在 Fuse Online 自定义资源中设置
demoData
选项。从 Fuse Online 7.10 开始,您可以通过设置todo addon
选项来启用示例数据库和连接器,这还包括用于测试集成的示例 Todo app。Kafka 代理 URI 为 AMQ Streams 自动发现
如果您使用 AMQ Streams (API 版本 v1beta1 或 v1beta2),当您在 Fuse Online 中创建新的 Kafka Message Broker 连接时,Kafka Broker URI 会被自动发现并在 Kafka Broker URI 下拉列表中显示。
断开连接的环境需要设置环境变量
要使 Fuse Online 在断开连接的环境中安装和工作,您必须将以下环境变量设置为
syndesis-oauthproxy
:-
HTTPS_PROXY
-
HTTP_PROXY
-
NO_PROXY
-
deployIntegrations
标记不再可用Fuse Online 自定义资源中的
deployIntegrations
选项控制是否部署了集成。
2.4. 从 Fuse Online 7.9.x 升级到 7.10.x 需要手动升级步骤
如果您安装了 Fuse Online 7.9.x,并希望升级到 Fuse Online 7.10.x,您必须首先手动升级到 Fuse Online 7.10.0。
- 在 OpenShift Container Platform Web 控制台的 Administrator 视角中,进入到 Operators > Installed Operators。
- 点 Red Hat Integration Fuse Online 7.9.3 Operator。
- 点 Subscription 标签页。
验证 Update approval 是否已设置为 Manual :
- 如果 Update approval 设为 Manual,则跳至下一步。
如果 Update approval 设置为 Automatic :
- 单击 Automatic。
- 在 Change Update Approval Strategy 对话框中,选择 Manual,然后点 Save。
- 在 Update channel 下,点 7.9.3。
对于 Change subscription 更新频道,请选择 7.10.x。
注:
最新的
、candidate
和stable
频道是技术预览功能。- 在 Upgrade status 下,单击 Upgrade available。
- 点 Preview InstallPlan,然后点 Approve。
验证 Operator 是否已完成到 Fuse Online 7.10.0 的升级:
- 进入到 Operators & gt; Installed Operators 页面,然后点 Red Hat Integration Fuse Online。Operator Details 页面将打开。
-
选择 Sydnesis 选项卡。Fuse Online 实例的状态(默认名称为 app)最初显示
Installed
(表示安装了 Fuse Online 7.9.3)。然后,它将分为几个阶段(安装
、启动
和Installed
)。当它再次到达Installed
阶段时,升级到 7.10.0 已完成。
- 返回到 Operators > ; Installed Operators 页面,然后点 Red Hat Integration Fuse Online operator 的 Upgrade available。
- 点 Preview InstallPlan,然后点 Approve。
验证 Operator 是否已完成到 Fuse Online 7.10.x 的升级:
-
导航到 Networking > Routes,然后点
syndesis
的位置链接来打开 Fuse Online web 控制台。 - 在 Fuse Online 控制台右上角,单击 ? 图标,然后选择 About。
-
验证 About 页面是否在版本号中包含
7_10_x
。
-
导航到 Networking > Routes,然后点
2.5. 升级 Fuse 在线集成
要升级在 OCP 现场运行的 Fuse Online 环境,您必须使用操作器更新 Fuse Online,然后重新发布任何正在运行的集成,如升级 Fuse Online 所述。
在 OCP 4.9 上,当您使用 operator 升级到 7.10 时,Fuse Online Operator 升级过程中会显示以下警告:
W1219 18:38:58.064578 1 warning.go:70] extensions/v1beta1 Ingress 在 v1.14+ 中弃用,在 v1.22+ 中不可用;使用 networking.k8s.io/v1 Ingress
出现这个警告的原因是,客户端(用于 Kubernetes/OpenShift API 初始化代码的 Fuse Online 使用)访问已弃用的 Ingress 版本。这个警告 不是 使用已弃用 API 的指示器,且没有升级到 Fuse Online 7.10 的问题。
2.6. Fuse Online 的重要备注
Fuse Online 发行版的 Fuse 7.10 发行版的重要备注:
- 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 模式无法作为整体引用,也无法通过任意数量的中间模式引用其自身的任何部分。
在 OCP 4.9 (或更新版本)上,
application-monitoring
项目不再有效。监控 Fuse 在线集成和基础架构组件与 Prometheus 和 Grafana 的先决条件。要临时解决这个问题,您可以使用 内置的监控堆栈(在
openshift-monitoring
命名空间中)使用openshift-user-workload-monitoring
功能和grafana-operator
来使用ops addon
,如以下在 OCP 4.9 (或稍后的)上添加 Fuse Online 监控资源(Prometheus 和 Grafana) 所述。
2.7. 获取 Fuse Online 的技术支持
要获得技术支持,请在 Fuse 在线控制台中,在左侧导航面板中点 Support。使用 Support 页面下载所有集成或您选择的一个或多个集成的诊断信息。该页面还提供打开支持问题单的链接,并提供您下载的诊断信息。
2.8. Fuse Online 中的技术预览功能
此发行版本包括以下列出的技术预览功能。
红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需更多信息,请参阅红帽技术预览功能支持范围。
数据映射程序支持 CSV 数据
对于任何具有可定义数据操作的 Fuse Online 连接器,您现在可以选择指定 CSV 实例(除了用于指定 JSON 模式、JSON 实例、XML 模式或 XML 实例的选项之外)。例如,在 Webhook 连接中,您可以将 CSV 文件指定为操作的数据输出类型。
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 上 Fuse 支持的 OpenShift Container Platform 版本(或版本)的详情,请查看 支持的配置页面。
3.2. 支持的镜像
OpenShift 上的 Fuse 提供以下 Docker 格式的镜像:
镜像 | 平台 | 支持的构架 |
---|---|---|
| Spring Boot | AMD64 和 Intel 64 (x86_64) |
| Spring Boot |
AMD64 和 Intel 64 (x86_64) |
| Apache Karaf | AMD64 和 Intel 64 (x86_64) |
| Apache Karaf | AMD64 和 Intel 64 (x86_64) |
| Red Hat JBoss Enterprise Application Platform | AMD64 和 Intel 64 (x86_64) |
| Red Hat JBoss Enterprise Application Platform | AMD64 和 Intel 64 (x86_64) |
| Fuse 控制台 |
AMD64 和 Intel 64 (x86_64) |
| Fuse console operator |
AMD64 和 Intel 64 (x86_64) |
| Apicurito REST 应用生成器 | AMD64 和 Intel 64 (x86_64) |
| Apicurito REST API 编辑器 | AMD64 和 Intel 64 (x86_64) |
| API Designer Operator | AMD64 和 Intel 64 (x86_64) |
3.3. OpenShift 上 Fuse 7.10 中的新功能
OpenShift 上的 Fuse 在版本 7.10 中提供以下新功能:
Fuse 控制台性能调整(仅限 OpenShift 4.x)
您可以通过设置任何
clientBodyBufferSize
、proxyBuffers
和subrequestOutputBufferSize
环境变量来调整 Fuse 控制台的性能。注: OpenShift 3.11 不支持此功能。
支持 JDK 11
Fuse 7.10 支持使用 JDK 11 在 OpenShift 快速入门上构建 Fuse。
使用
openshift-maven-plugin
运行快速入门当使用 Maven archtypes 在 OpenShift 快速入门上构建并运行 Fuse 时,Fuse 7.10 使用新的
openshift-maven-plugin
。支持 IBM Power 系统、IBM Z 和 LinuxONE
Fuse 7.10 添加了对 Red Hat OpenShift Container Platform 4.9 及更高版本上的 IBM Power Systems (ppc64le)、IBM Z 和 LinuxONE (s390x)的支持。
注意在 Fuse 7.10 中,不支持在 IBM Power Systems、IBM Z 和 LinuxONE 上的 OpenShift 镜像流和模板上安装 Fuse。IBM Power Systems、IBM Z 和 LinuxONE 仅支持在 OpenShift Operator 上使用 Fuse 安装的组件。
3.4. 重要备注
在 OpenShift 发行版上 Fuse 的 Fuse 7.10 发行版本的重要备注:
- 用于 IBM Z 和 IBM Power 系统的 OpenJ9 镜像已弃用
- 用于 IBM Z 和 IBM Power 系统的 OpenJ9 镜像在 Fuse 7.10 中弃用。OpenJDK11 Builder 和 Runtime 镜像已更新,以支持多个架构。
- 支持 OpenShift Container Platform (OCP) 4.9 上的 Fuse 7.10
- Fuse 7.10 包含相应的更新,使其能够用于 OpenShift Container Platform (OCP) 4.9。如果您计划升级到 OCP 4.9,则必须将 Fuse 升级到 7.10,然后才能将 OCP 升级到 4.9。早期版本的 Fuse (prior 到 7.10)不支持 OCP 4.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.10 完全删除,并替换为自 Fuse 7.10 起的 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 独立 7.10 :
- Spring Boot 2 (standalone)
- Apache Karaf
- Red Hat JBoss Enterprise Application Platform (JBoss EAP)
4.2. Fuse 7.10 中的新功能
在版本 7.10 中 Fuse 独立的主要新功能是:
- Apache Karaf 支持 Java 11
- Java 11 现在在 Apache Karaf 运行时上被支持。
4.3. 技术预览功能
Fuse 独立的以下功能 只是技术预览,在 Fuse 7.10 中不支持:
- 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 语言支持扩展或插件。
注意: 这些功能已默认包含在用于 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 组件属性的完成
- 诊断
要访问 Apache Camel 功能的语言支持,您可以添加一个或多个扩展。
Apache Camel 扩展包安装 以下 VS Code 扩展:
另外,您可以单独安装扩展。
如需了解更多详细信息,请参阅以下 readme 文件:
Eclipse IDE 功能
Apache Camel Eclipse 插件的语言支持为 Camel URI 提供以下功能:
在 XML DSL 和 Java DSL 的通用 Eclipse 文本编辑器中:
- 当您输入时,编辑器为 Camel 组件、属性和属性值列表提供代码完成。
- 将鼠标悬停在 Camel 组件上时,编辑器显示组件的简短描述(来自 Apache Camel 组件参考)。
要访问 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.10、Fuse 7.10.1 和 Fuse 7.10.2 的 BOM 文件
要将 Maven 项目配置为使用受支持的 Fuse 7.10, 7.10.1, 和 7.10.2 工件,请使用本节中记录的 BOM 版本。
4.4.1. BOM 文件用于 Fuse 7.10.2
要将 Fuse 独立应用程序升级到使用 7.10.2 依赖项,请编辑 Maven pom.xml
并更改下表中列出的 BOM 和 Maven 插件的版本:
容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.10 的版本 |
---|---|---|
Spring Boot 2 |
|
|
|
| |
Apache Karaf |
|
|
|
| |
JBoss EAP |
|
|
有关使用 BOM 的详情,请参阅 迁移指南。
4.4.2. BOM 文件用于 Fuse 7.10.1
要将 Fuse 独立应用程序升级到使用 7.10.1 依赖项,请编辑 Maven pom.xml
并更改下表中列出的 BOM 和 Maven 插件的版本:
容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.10 的版本 |
---|---|---|
Spring Boot 2 |
|
|
|
| |
Apache Karaf |
|
|
|
| |
JBoss EAP |
|
|
有关使用 BOM 的详情,请参阅 迁移指南。
4.4.3. BOM 文件,用于 Fuse 7.10
要将 Fuse 独立应用程序升级到使用 7.10 依赖项,请编辑 Maven pom.xml
并更改下表中列出的 BOM 和 Maven 插件的版本:
容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.10 的版本 |
---|---|---|
Spring Boot 2 |
|
|
|
| |
Apache Karaf |
|
|
|
| |
JBoss EAP |
|
|
有关使用 BOM 的详情,请参阅 迁移指南。
4.5. 重要备注
Fuse standalone distribution 的 Fuse 7.10 发行版本的重要备注:
- Apache Karaf 支持 Java 11
- Fuse 7.10 发行版本现在支持 Apache Karaf 运行时上的 Java 11。
- 使用 MongoClients 工厂创建到 MongoDB 的连接
在 Fuse 7.10 中,使用
com.mongodb.client.MongoClient
而不是com.mongodb.MongoClient
创建与 MongoDB 的连接(请注意完整路径中的额外 .client 子软件包)。这会影响使用
camel-mongodb
的任何用户应用程序,现在需要创建一个连接 bean 作为com.mongodb.client.MongoClient
实例。此外,此类公开的方法与旧类完全相同,这需要重构用户代码。例如,创建一个到 MongoDB 的连接,如下所示:
import com.mongodb.client.MongoClient;
然后您可以创建 MongoClient bean,如下例所示:
return MongoClients.create("mongodb://admin:password@192.168.99.102:32553");
第 5 章 弃用和删除的功能
如果您需要任何帮助,或者对 Fuse 7 中即将推出的更改有任何疑问,请联系 support@redhat.com。
5.1. 已弃用
Fuse 7.10 中已弃用以下功能,并可能在以后的版本中删除:
- OpenWire 协议已弃用
- 从 Fuse 7.10 开始,使用 OpenWire 协议(可用于连接 AMQ Broker 实例)已弃用。请注意,自 AMQ Broker 版本 7.9.0 后,OpenWire 协议也被弃用。
wsdl2rest
工具已弃用-
自 Fuse 7.10 起,
wsdl2rest
命令行工具已被弃用。VS Code 的 WSDL 2 Camel Rest DSL 扩展也已被弃用。 - 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.10 中删除
- fabric8-maven-plugin
-
fabric8-maven-plugin
已从 Fuse 7.10 中完全删除。我们建议您使用openshift-maven-plugin
在 OpenShift 上的 Fuse 中构建和部署 Maven 项目。该插件由 Eclipse JKube 维护,它为插件提供了广泛的 文档。
5.3. 在 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.4. 在 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.5. 在 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.6. 在 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.7. 在 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.8. 在 Fuse 7.0 中替换
Fuse 7.0 中替换了以下功能:
第 6 章 Fuse 7.10 中不支持的功能
Red Hat Fuse 7.10 不支持以下功能:
- IBM PowerPC 和 Z 平台上的 Fuse 不支持
camel-leveldb
组件 - 当在 IBM PowerPC 或 IBM Z 平台上安装 Fuse 时,不支持 Camel LevelDB 组件。
- 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.10 中的已知问题。
7.1. CVE 安全漏洞
作为中间件集成平台,Fuse 可能会与大量第三方组件集成。无法始终排除 Fuse 的一些第三方依赖项可能会存在安全漏洞。本节记录了与影响 Fuse 7.10 第三方依赖项的安全性相关的已知常见漏洞和暴露(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 及更早版本(虽然在某些情况下无法避免早期版本)。
为了便于避免较早版本的 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 组件时),才会出现安全风险。
- CVE-2021-30129 mina-sshd-core: 在 Apache Mina SSHD 服务器中内存泄漏拒绝服务
Apache Mina SSHD 的 sshd-core 中的漏洞允许攻击者溢出服务器导致 OutOfMemory 错误。此问题会影响 Apache Mina SSHD 版本 2.0.0 及更新版本的 SFTP 和端口转发功能。它在 Apache Mina SSHD 2.7.0 中解决
Apache Mina SSHD 中的此漏洞由 SSHD-1004 解决,它弃用了存在此漏洞的某些加密算法。在 JBoss EAP 上的 Fuse 7.10 和 Fuse 7.10 中,这些已弃用的算法仍被支持(出于向后兼容性的原因)。但是,如果您使用这些已弃用的算法之一,强烈建议您重构应用程序代码以使用不同的算法。
在 Fuse 7.10 中,默认的加密算法已更改,如下所示:
Fuse 7.9 Fuse 7.10 在 Fuse 7.10 中被弃用? aes128-ctr
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
arcfour128
arcfour128
是
aes128-cbc
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
3des-cbc
是
blowfish-cbc
blowfish-cbc
是
在 Fuse 7.10 中,默认的密钥交换算法已更改,如下所示:
Fuse 7.9 Fuse 7.10 在 7.10 中被弃用? diffie-hellman-group-exchange-sha256
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp521
ecdh-sha2-nistp521
ecdh-sha2-nistp384
ecdh-sha2-nistp384
ecdh-sha2-nistp256
ecdh-sha2-nistp256
diffie-hellman-group18-sha512
diffie-hellman-group17-sha512
diffie-hellman-group16-sha512
diffie-hellman-group15-sha512
diffie-hellman-group14-sha256
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha1
是
diffie-hellman-group1-sha1
diffie-hellman-group1-sha1
是
7.2. Fuse Online
Fuse Online 发行版有以下已知问题:
- ENTESB-17674 Monitoring Fuse Online with Prometheus 和 Grafana on OCP 4.9 (或更新版本)需要临时解决方案
在 OCP 4.9 (或更新版本)上,
application-monitoring
项目不再有效。监控 Fuse 在线集成和基础架构组件与 Prometheus 和 Grafana 的先决条件。要临时解决这个问题,您可以使用 内置的监控堆栈(在
openshift-monitoring
命名空间中 )使用openshift-user-workload-monitoring
功能,以及grafana-operator
来使用ops addon
,如这些 发行注记的 Fuse Online 部分所述。- 在 AtlasMap 步骤中不会更新 _ENTESB-17796_CSV 参数
在 Fuse Online 集成中,如果您更改了 CSV 参数的值,您还必须通过进行一些更改(例如,添加并删除所有常量值)来更新映射,还要编辑使用该数据的所有映射步骤。
请注意,对 CSV 数据的数据映射程序支持是一个技术预览功能。
- 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 有以下已知问题:
- ENTESB-17895 [ Fuse Console ] 升级订阅不会更新 Hawtio
- 在 Fuse 7.10 中,如果您通过将 Operator 订阅频道更改为版本 7.10 来更新 Fuse 控制台,Fuse Console 会保留在 vesion 7.9 上。即使 Fuse 控制台容器和 pod 具有标签 7.10,它们仍然使用 7.9 镜像。要临时解决这个问题,请通过删除旧版本的 Fuse 控制台来执行升级,然后进行全新的 Fuse Console 版本 7.10 安装。
- ENTESB-17861 Apicurito generator 无法生成 Fuse Camel 项目
在 Fuse 7.10 中,如果 API Designer (Apicurito)通过 Apicurito Operator 安装(giving a Invalid Cert Error)安装它无法正常工作。要临时解决这个问题:
- 在 https://apicurito-service-generator-apicurito.apps 上打开一个新标签页。集群URL (对于 fo.49-c,它是 https://apicurito-service-generator-apicurito.apps.fo-49-c.openshift-aws.rhocf-dev.net)。
- 接受证书。
- 切换到应用程序,然后再次单击 generate 按钮。
- ENTESB-17848 fis-image-streams 使用非组fied API 资源(已弃用)
在 Fuse 7.10 中,在 OpenShift 上安装 Fuse 的镜像流(例如,使用
oc create -n openshift -f ${BASEURL}/fis-image-streams.json
)在 OCP 4 上看到警告信息:W1119 13:27:43.408688 22220 shim_kubectl.go:55] Using non-groupfied API resources is deprecated and will be removed in a future release, update apiVersion to "image.openshift.io/v1" for your resource
您可以安全地忽略这些警告信息。
- ENTESB-17836 [ Fuse Console ] 在 Camel 树中不会显示新添加的路由
- 在 Fuse 7.10 中,部署应用程序后,Fuse Console 上的 Camel 树中不会显示路由(或路由)。您可以通过刷新页面来解决此问题,这应该会显示路由。
- ENTESB-17741 [ Fuse Console ] Open pod 详情会导致 Page not Found
- 在 Fuse 7.10 中,在部署一些快速入门后,如果您打开 Fuse 控制台的 Discover 页面,请单击 pod 的下拉菜单(3点图标),然后单击 Pod 详情页面,然后单击 Page Not Found 错误。
- ENTESB-16814 监控资源在文档中错误地链接
- 从 Fuse 7.8 开始,在 2.5.2 部分中引用监控资源的位置。在 OpenShift 指南上设置 Fuse 的 Prometheus 不正确,并返回 404 异常。本文档的步骤将在GA 后文档更新中解决。
7.4. Apache Karaf 上的 Fuse
Apache Karaf 上的 Fuse 有以下已知问题:
- ENTESB-18018 Fuse 7.10 AR10 离线验证问题
-
在 Fuse 7.10 中,两个快速入门都不会使用 offliner 工具安装:
camel-sap
和camel-cxf-contract-first
。但是,缺少的工件可从(在线)Red Hat Maven 存储库获得。 - ENTESB-17819 camel-grpc 无法在 fuse-karaf 上工作
- 在 Fuse 7.10 中,Camel GRPC 组件无法在 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 有以下已知问题:
- EAP 域模式上的 ENTESB-13168 Camel 部署无法在 Windows 上工作
- 从 Fuse 7.6.0 开始,对于 JBoss EAP 上的 Fuse,在 Windows OS 上的域模式中无法部署 Camel 子系统。
7.6. Fuse 工具
Fuse 工具有以下已知问题:
- ENTESB-17705 [ Hawtio ] Logout 按钮会消失
- 在 Fuse 7.10 中,登录并注销一行内多次后,不会显示 Logout 按钮。要临时解决这个问题,您可以刷新页面一次或多次,Logout 按钮应该重新应用。
- 在 Karaf 上 _FUSETOOLS-3567_Fuse 7.10.0.AR7 无法在 Java 11 的 CodeReady Studio 中启动
- 从 CodeReady Studio 12.22 开始,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.10 中的问题
以下小节列出了 Fuse 7.10 中修复的问题:
8.1. Fuse 7.10 中的增强
下表列出了 Fuse 7.10 中的增强功能。
问题 | 描述 |
---|---|
将 AtlasMap 更新至 2.3.0 | |
将 AtlasMap 更新至 2.3.1 | |
将 AtlasMap 更新至 2.3.0-M.3 | |
用于 syndesis-db 的基于 RHEL8 的镜像 | |
Camel 客户端开始使用受管 Kafka | |
[ foo ] 在 OCP 4.9 中计划 API 弃用计划(Fuse 7.10) | |
[ Fuse Console ] Make Operator Metadata image multiarch | |
[build ] UI 弃用的依赖项更新 | |
在 OpenShift 快速入门上的 Fuse 中添加 Java 11 Maven 配置集 | |
Fuse Online:升级到 Patternfly 4.4.x 和 React 17 | |
[ Fuse Console ] 为 Fuse Console Operator 创建 CVP | |
为 Openshift Console (Operator)上的 Fuse 提供 metering 标签 | |
默认 CR 选项应该一致且用户友好 | |
将 AtlasMap 更新至 2.3.2 | |
Fuse Online 7.10 组件 align | |
升级到 EAP 7.4.2.GA-redhat-00002 | |
升级到 camel-2.23.2.fuse-7_10_0-00017 | |
backport CAMEL-15971 - SimpleFileLanguage 始终为 null,因为 DummyExchange | |
Fuse Online 中的 CSV 支持 | |
FMP Removal [Fuse 7.10] |
8.2. Fuse 7.10 中的功能请求
下表列出了 Fuse 7.10 中的功能请求。
问题 | 描述 |
---|---|
为 syndesis-oauthproxy 设置环境变量 | |
在保存和发布集成时允许标记集成 |
8.3. Fuse 7.10 中的组件升级
下表列出了 Fuse 7.10 中的组件升级。
问题 | 描述 |
---|---|
将 protobuf 升级到 3.10.0 | |
升级到 Netty 4.1.67.Final-redhat-00001 | |
升级到 7.4.1.GA-redhat-00003 | |
升级到 Narayana 5.11.3.Final-redhat-00001 | |
升级到 Hibernate 5.3.21.Final-redhat-00001 | |
升级到 BouncyCastle 1.69 | |
升级到 ASM 9.2 | |
升级到 Jolokia 1.7.1.redhat-00001 | |
升级到 RH-SSO 7.4.9 / Keycloak 9.0.15.redhat-00002 | |
升级到 Spring Boot 2.3.12.RELEASE | |
升级到 camel-2.23.2.fuse-7_10_0-00015 |
8.4. 在 Fuse 7.10, 7.10.1, 和 7.10.2 中解决的错误
下表列出了 Fuse 7.10, 7.10.1 和 7.10.2 中已解析的错误。
问题 | 描述 |
---|---|
CVE-2022-22965 Spring4Shell: Unsafe 参数绑定缺陷,它允许攻击者将恶意请求传递给某些参数,并可能访问 Java 虚拟机 [fuse-7] 中通常限制的功能。 |
问题 | 描述 |
---|---|
CVE-2021-4104 log4j:当应用程序配置为使用 JMSAppender [fuse-7]时,Log4j 1.x 中的远程代码执行 | |
CVE-2022-23307 log4j: Unsafe deserialization flaw in Chainsaw log viewer [fuse-7] | |
CVE-2022-23302 log4j: 当应用程序配置为使用 JMSSink [fuse-7] 时,Log4j 1.x 中的远程代码执行 | |
CVE-2022-23305 log4j: SQL injection in Log4j 1.x when application is configured to use JDBCAppender [fuse-7] |
问题 | 描述 |
---|---|
CVE-2021-44228 log4j-core: 当日志包含攻击者控制的字符串值 [ fuse-7 ] 时,在 Log4j 2.x 中的远程代码执行。 | |
[ Hawtio ] Spring Boot 2 在 Windows 机器上失败 | |
Postgresql 的身份验证类型无效 | |
camel-infinispan 不在 karaf + jdk11 上工作 | |
WildFly-camel 构建失败并显示 camel-2.23.2.fuse-7_10_0-00012 | |
jdk11 + karaf + cxf codewrtier 实例问题 | |
无法安装功能 hibernate-validator-groovy | |
Quickstart spring-boot-camel-xa 包含 jdk11 的错误镜像引用 | |
与 7.10.AR6 中的组件对齐文档不匹配 | |
在创建映射后,不会显示折叠 Repeating Delimiters 复选框 | |
将 source jar maven 插件移到 prod 配置集中用于快速入门 | |
当 Karaf 中的 client bin 命令时,没有 Class Def Found 错误 | |
当将 Elytron 设置为 PersistenceManager 时,Lam 无法启动 | |
Fuse 控制台不会在 ppc64le 上启动 | |
在 fis-image-streams.json 中缺少 fuse-karaf-openshift-jdk11-rhel8 | |
fuse-karaf + jdk11 - javax.xml.ws wrong Import-package 版本 | |
Apicurito 7.10 捆绑包使用 7.9 频道 | |
Camel 2.23 下游故障 | |
客户端脚本无法在 Karaf 上工作 | |
DataMapper 常量可以在没有任何值的情况下保存 | |
PubSubIntegrationTest 失败,并显示 Invalid grant: account not found | |
使用 jdk11 / open-jdk11 上的 Fuse 在蓝图安装时提供 NoClassDefFoundError | |
[ Fuse Console ] Spring Boot Camel quickstart 失败 | |
[ Hawtio ] Broken 布局,用于 OSGi → Features 中的下拉菜单 | |
分割转换中的 DataMapper 多空格分隔符表现为"double space"分隔符。 | |
Spring Boot Camel AMQ S2I quickstart 在 Readme.adoc 中无法访问链接 | |
spring-boot-camel-xa quickstart 中缺少 metering 标签 | |
使用 openjdk11 的 Camel 2.23 下游故障 | |
当 API 包含错误时缺少 API Connector 查看页面 | |
quickstart spring-boot-camel-amq 仍然包含 README.md 文件 | |
Fuse Online 7.10 捆绑包无法创建索引 | |
集成中的 AtlasMap 异常 | |
构建 Fuse Online 7.10 AR4 中的旧 metering 标签 | |
[ Fuse Console ] 元数据镜像指向 fuse 控制台 operator 1.9 镜像 | |
在编辑 Webhook 步骤中,CSV 实例参数会消失 | |
在 PF 更新后 Fuse Online UI 增强 | |
maven-deploy-plugin 版本对齐 | |
错误的 fuse-karaf productization 版本 | |
Quickstart 模板中的元数据值、标签、appName、metering 标签 | |
Camel Hystrix 组件无法在 karaf 上工作 | |
与 7.10.AR4 中的组件对齐文档不匹配。 | |
hawtio 2 不应该只删除 hawtio-log Karaf 功能(和 MBean) | |
集成 pod 中没有设置 nodeAffinity 和 toleration | |
Spring Boot Rhosak Quickstart 的无效 JSON 模板文件 | |
在 OCP 3.11 中,升级 Fuse Online 7.9 → 7.10 无法正常工作 | |
链接的文档是版本 7.9 而不是 7.10 版本 | |
使用 GET 命令时不考虑 RedisConstants.COMMAND 标头 | |
Fuse Karaf 镜像中的 Karaf Framework 版本错误 | |
Archetypes 中的镜像引用错误 | |
S2I SpringBoot Rhosak Quickstart 中缺少 ServiceAccount 标签 | |
查看日志链接指向不存在的页面 | |
autodiscovery AMQ streams Web 元素没有 data-testid | |
Syndesis/Fuse 在线徽标没有链接到主页 | |
spring-boot-camel-rhosak quickstart 中缺少 metering 标签 | |
使用 JDK11 运行快速入门时,org.jolokia.util.ClassUtil 的 illegal reflective access by org.jolokia.util.ClassUtil | |
Camel springboot BOM 引用不存在的工件 | |
从 CR 中删除 deployIntegrations 标志 | |
创建 API 客户端连接器和连接 - 重复用户名和密码部分 | |
fuse circuit breaker 上错误的标签(tag)无法允许服务和路由工作 | |
验证 UI 页面中显示 500 响应 | |
与 7.10.AR7 中的组件对齐文档不匹配 | |
在 7.10.AR7 中 Camel 2.23 下游故障 | |
spring-boot-camel-drools 路由异常 | |
Karaf quickstarts 不支持 java 11 | |
删除或重命名的 ENV 仍然出现在集成 pod 中 | |
删除 CSV 参数可以正常工作,直到第二次尝试 | |
Istio Booster - status | |
应用程序模板中的 spring-boot-camel-rhosak 的 git 参考错误 | |
使用 ssh 功能时通过公钥在 Karaf 上进行身份验证失败 | |
Camel 2.23 下游故障 | |
带有 com.mongodb.client.MongoClient 的 ClassCastException | |
libthrift-0.14.0.redhat-00001 与 cassandra 不兼容 | |
[Apicurito] 元数据指向旧的生成器镜像 | |
SpringBoot 无法使用 Elastic Search Rest | |
4 个功能未安装 | |
pom.xml 中的元数据值、标签、appName、metering 标签 | |
history 命令不显示之前的历史记录 | |
CVE-2020-13949, 确保 Syndesis 包含正确的 libthrift 版本 | |
CVE-2020-27218, 确保 Syndesis 使用固定 net.sf.ehcache:ehcache | |
CVE-2021-29425, 确保 Syndesis 使用固定的 commons-io | |
SSH 客户端库与 camel-ftp 和 camel-jsch 不兼容 | |
在断开连接的环境中无法访问 Fuse Online | |
springboot 的依赖项版本在特定的集成构建中缺少 | |
与 OData (v2 only)连接器集成无法启动 | |
由 Apicurito Generator 生成的 Fuse Camel 项目不会公开管理端口 | |
Karaf-camel-amq 快速启动会在启动过程中重启 camel 上下文 | |
Fuse Online 镜像(7. 10)构建因为不正确的架构而失败: arm64、ppc64le、s390x | |
CVE-2021-37136,确保 Syndesis 使用固定的 io.netty:netty-codec | |
CVE-2021-3629, 确保 Syndesis 包含正确的 undertow 版本 | |
CVE-2021-20220,确保 Syndesis 包含正确的 undertow 版本 | |
CVE-2021-3690,确保 Syndesis 包含正确的 undertow 版本 | |
CVE-2020-27223,确保 Syndesis 使用固定的 org.eclipse.jetty:jetty-http | |
CVE-2021-27568, 确保 Syndesis 使用固定 net.minidev:json-smart | |
AR8 Fuse Online 捆绑包替换了旧版本 | |
CVE-2021-37714,确保复合包含正确的 jsoup 版本 | |
在 s390x 中 Camel 2.23.2 下游失败 | |
salesforce 身份验证错误 | |
更新所有 productized xml 示例,以使用正确的 xsd | |
与 MongoDB 连接器集成无法启动 | |
存储库缓存包含损坏的 maven-tooling JAR | |
创建自定义 OpenAPI 客户端无法正常工作 | |
SSH 客户端库与 camel-ftp 和 camel-jsch 不兼容 | |
S2I Spring Boot Camel Rhosak quickstart 在模板中出错 | |
在 Fuse Apicurio Generator 中使用 OpenShift Maven 插件而不是 Fabric8 Maven 插件 | |
ZookeeperIntegrationTest 在 Jenkins 中间歇性失败 | |
SAP 的原生库 | |
在 OCP3 上更新 CRD 后,oc get syndes 在短短几分钟内无法正常工作 | |
AR9 Fuse 批量测试失败 | |
CVE-2021-34428,确保 Syndesis 包含正确的 jetty 版本 | |
AR8 Apicurito 捆绑包替换了旧版本 | |
将 offliner 用于 Fuse 7.10 AR7 时缺少工件 | |
MongoDb3 组件总是连接到 localhost |