Red Hat Fuse 7.8 发行注记
第 1 章 Fuse 7.8 产品概述
1.1. Fuse 分发
Fuse 7.8 以三种不同发行版的形式提供,如下所示:
- 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.8 包括几个主要组件升级和大量新功能。详情请查看每个 Fuse 发行版本 的新功能 部分:
1.3. CVE 依赖升级
作为中间件集成平台,Fuse 可以与第三方组件集成。Fuse 的一些第三方依赖项需要升级,以限制与安全相关的常见漏洞和暴露(CVE)。下表列出了 Fuse 7.8 中包含的第三方版本升级,并确定更新现有 Fuse 应用程序所需的操作。
第三方依赖项 | 版本升级 | Fuse 应用程序所需的操作 |
Apache Camel | 2.21 到 2.23 | 在 Karaf 上,重建 Fuse 应用,而不使用 Karaf 控制台的补丁工具。有关 Camel 2.22 和 2.23 更新的描述,请参阅 Fuse 迁移指南。 |
Spring Framework | 4.3 到 5.2 | |
Spring Boot 1 | 1.x 到 2.3 | Spring Boot 1 在 Fuse 7.7 中已弃用,在 Fuse 7.8 中不支持它。 除了重建 Fuse 应用程序外,还需要对代码进行更改。请参阅 Fuse 迁移指南 中的 升级到 Spring Boot 2 章节。 |
Fuse 7.8 还包括这些第三方版本升级。它们不需要对现有 Fuse 应用程序进行额外的更新:
- Hibernate Validator,版本 5 到 6
- Jackson,版本 2.8 到 2.9
- Spring Boot 2,版本 2.1 到 2.3
- Apache CXF,版本 3.2 到 3.3
1.4. 支持的配置
有关版本 7.8 中支持的配置、标准和组件的详情,请查看以下客户门户网站文章:
第 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.8 中的新功能
Fuse Online 7.8 提供以下新功能:
支持在受限环境中安装
您可以使用 OpenShift OperatorHub 中的 Fuse Online Operator 在受限环境中安装 Fuse Online。您必须将所有 Fuse Online 镜像镜像(mirror)到私有网络中可用的位置。
在安装 Fuse Online 之前,请确保 Fuse Online 自定义资源中的
todo
addon 设置设为false
(默认值)。安装 Fuse Online 后,您可以选择从 https://github.com/syndesisio/todo-example 下载 ToDo 应用,并按照 Readme 文件中的步骤操作,将存储库 URL 更改为专用网络上可用的位置。Kafka Message Broker 连接配置选项
现在,创建 Kafka Message Broker 连接时,您可以指定键/值对来配置 Kafka producer 和消费者选项。如需更多信息,请参阅 将 Fuse 在线连接到 应用程序和服务中的创建与 Kafka 代理的连接。
Fuse Online Metering 标签
您可以使用 OpenShift Metering operator 分析已安装的 Fuse Online 操作器和组件,以确定您是否符合红帽订阅。详情请参阅在 OpenShift Container Platform 上安装和操作 Fuse Online 中的 Fuse Online Metering 标签。
支持 OData 版本 2
除了现有的对 Open Data Protocol (OData)版本 4 的支持外,Fuse Online OData 连接器还支持 OData 版本 2。仅针对 OData Version 2 连接,当您创建或更新实体时,您可以设置三个选项(
内容
仅限、Omit ETag
和Omit Json wrapper
)。这三个选项指定数据在请求中序列化的方式。详情请查看 在将 Fuse 在线连接到应用程序和服务中的连接到 OData 。支持在 Fuse Online 自定义资源中配置以下功能,如在 OpenShift Container Platform 上安装 和操作 Fuse Online 的自定义资源属性描述 所述。
内存和 CPU 限制
现在,您可以为 Fuse Online 安装中的基础架构组件和集成设置内存和 CPU 限制的默认值。您还可以为可能需要自定义值的特定集成指定内存和 CPU 限值。如需更多信息,请参阅 将应用程序与 Fuse 在线 集成中的调整内存和 CPU 配置属性。
节点关联性和容限
您可以通过为 Fuse Online 基础架构组件和 Fuse Online 集成定义节点关联性和容限,将 Fuse Online pod 分配给特定的 OpenShift 集群。如需更多信息,请参阅在 OpenShift Container Platform 上安装和操作 Fuse Online 中的配置 Fuse pod。
其他 Maven 参数
您可以指定构建 Fuse Online 集成时要使用的其他 Maven 选项。
syndesis-server 的 DB 连接池配置
您可以配置这些 syndesis-server 数据库连接池属性:
ConnectionTimeout
IdleTimeout
LeakDetectionThreshold
MaximumPoolSize
MaxLifetime
MinimumIdle
JAVA_OPTIONS 用于 syndesis-server 和 meta 组件
您可以使用
JAVA_OPTIONS
选项自定义syndesis-server
和meta
组件。例如,您可以为syndesis-server
和meta
组件配置 HTTP 代理。如需更多信息,请参阅在 OpenShift Container Platform 上安装和操作 Fuse Online 中的配置 HTTP 代理。
2.3. Fuse Online 7.8 的变化
Fuse Online 7.8 更改 Fuse Online 7.7 功能,如下所示:
使用 OperatorHub 进行 OCP 4.6 进行 Fuse Online 安装
从 Fuse Online 7.8 开始,如何安装 Fuse Online 取决于您的 OpenShift 版本。
- 当您在 OCP 4.6 上安装 Fuse Online 时,请使用 OperatorHub 中的 Fuse Online Operator。(OCP 4.x 不支持 Fuse Online 安装脚本和模板。) 如果使用 OCP 4.5,如果要安装 Fuse Online 7.8,则必须升级到 OCP 4.6。
- 在 OCP 3.11 上安装 Fuse Online 时,请使用 Fuse Online 安装脚本和模板。
在 OCP 4.6.x 上升级 Fuse Online
在 OCP 4.5 (及更早版本)上,Fuse Online 订阅频道是
alpha
。当您在 OCP 4.6 (及更高版本)上安装 Fuse Online 7.8 时,您可以使用
fuse-online-v7.n
格式指定一个频道,其中n
是当前的发行号。例如,对于 Fuse Online 7.8,频道是fuse-online-v7.8
。- 如果您使用安装脚本安装 Fuse Online 7.7,您应该使用安装脚本升级到 Fuse Online 7.8。
Slack 连接器现在使用 Bot User OAuth 访问令牌
当您创建 Slack 连接器时,现在您可以指定 Bot User OAuth 访问令牌 来授权对 Slack 应用程序的访问。Slack 已被弃用旧的令牌授权。
Kafka Broker 连接自动发现默认可以正常工作
Kafka 代理的自动发现现在可以在默认正常工作。您不再需要启用它。
支持增强的活动跟踪
使用 Jaeger 的活动跟踪现在可以在启用了 OperatorHub 的 Fuse Online 环境中工作。默认情况下启用
jaeger
addon 选项。当您从 OperatorHub 或使用命令行脚本安装 Fuse Online 时,Fuse Online 安装会检测到 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
2.4. 升级 Fuse 在线集成
要升级在 OCP 现场运行的 Fuse Online 环境,您必须使用操作器或安装脚本更新 Fuse Online,然后重新发布运行的任何集成,如升级 Fuse Online 所述。
2.5. Fuse Online 的重要备注
Fuse Online 发行版的 Fuse 7.8 发行版的重要备注:
- 仅在 OCP 4.6 上升级到 Fuse Online 操作器的 Fuse 7.8 版本。要安装 Fuse 7.8 Online Operator,推荐的升级路径是将 OpenShift 升级到 OCP 4.6 版本,然后将 Fuse Online operator 升级到 7.8。如需了解更多详细信息,请参阅 ENTESB-15472。
- Fuse Online 不再支持 Camel K 运行时或 KNative 连接器。
- 当在红帽基础架构上安装和配置 Fuse Online 时,该帐户仅限于一次可以运行的特定数量集成。详情请查看定价计划。
- 上传到 Fuse Online 的 OpenAPI 模式可能无法定义输入/输出类型。当 Fuse Online 从 OpenAPI 模式创建自定义 API 客户端时,它没有指定输入/输出类型,则无法创建集成数据将集成数据映射到 API 客户端处理的字段或来自 API 客户端处理的字段。如果集成需要数据映射到自定义 API,那么当您上传 OpenAPI 模式时,点 Review/Edit 以打开 API Designer,它是一个 API 编辑工具,并添加输入/输出类型规格。
- 用于自定义 API 客户端连接器或 API 供应商集成的 OpenAPI 文档无法具有 cyclic 模式引用。例如,指定请求或响应正文的 JSON 模式无法作为整体引用,也无法通过任意数量的中间模式引用其自身的任何部分。
2.6. 获取 Fuse Online 的技术支持
要获得技术支持,请在 Fuse 在线控制台中,在左侧导航面板中点 Support。使用 Support 页面下载所有集成或您选择的一个或多个集成的诊断信息。该页面还提供打开支持问题单的链接,并提供您下载的诊断信息。
2.7. Fuse Online 中的技术预览功能
此发行版本包括以下列出的技术预览功能。
红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需更多信息,请参阅红帽技术预览功能支持范围。
SOAP API 客户端连接器
您可以添加自定义 SOAP API 客户端连接器,然后将 SOAP API 客户端的连接添加到 Fuse Online 集成。如需更多信息,请参阅创建 SOAP API 客户端连接器。
该 SOAP API 客户端连接器的技术预览版本有一些限制,如 已知问题的 Fuse Online 部分所述。
在数据映射程序中,您可以指定一个条件表达式并将其应用到一个数据映射。例如,一个条件表达式可以指定 source 字段的评估,以及如何填充 target 字段(如果 source 字段为空)。您可以指定的一组有限表达式与 Microsoft Excel 表达式类似。
对于使用 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
mvapichSpring Boot -
fuse7/fuse-karaf-openshift
— Apache Karaf -
fuse7/fuse-eap-openshift
mvapich-wagonRed Hat JBoss Enterprise Application Platform -
fuse7/fuse-console
criu-wagonFuse 控制台 -
fuse7/fuse-console-operator
wagon-wagonFuse console operator -
fuse7/fuse-apicurito
mvapich-PROFILEApicurito REST API 编辑器 -
fuse7/fuse-apicurito-generator
criu-PROFILEApicurito REST 应用程序生成器 -
fuse7/fuse-apicurito-operator-bundle
mvapich-mvapichAPI Designer Operator
3.3. OpenShift 上的 Fuse 7.8 中的新功能
OpenShift 上的 Fuse 在 7.8 版本中提供以下新功能:
支持在受限环境中的 Openshift 上安装 Fuse
现在,您可以在受限的环境中的 OpenShift 4.x 上安装 Fuse,而无需访问互联网。您必须将 OpenShift 镜像上的所有 Fuse 镜像到专用网络上可用的位置。
注意MAVEN_MIRROR_URL
环境变量(用于将应用配置为从本地 Maven 存储库获取 Maven 工件)适用于 Spring Boot 和 Apache Karaf 容器,但不适用于 JBoss EAP 容器。- Fuse 控制台现在与 OpenShift 身份验证和授权集成。如需了解更多详细信息,请参阅 OpenShift 4.x 上 Fuse 控制台的基于角色的访问控制。
- OpenShift 现在支持 Spring Boot 2 运行时。
Fuse Console operator
Fuse Console operator 简化了在 OpenShift 上安装、升级和卸载 Fuse 控制台的步骤。有关如何使用 Fuse Console 操作器的详情,请参阅设置 Fuse 控制台。
支持在受限环境中安装 API Designer Operator
您可以在 OpenShift OperatorHub 的受限环境中安装 API Designer Operator。您必须将 Operator 目录和 OpenShift 镜像上的 Fuse 镜像到私有网络上可用的位置。
OpenShift 上 Fuse 的 metering 标签
您可以使用 OpenShift Metering 操作器来分析 OpenShift 上 Fuse 的使用量和统计信息。
3.4. 重要备注
在 OpenShift 发行版上 Fuse 7.8 发行版本的 Fuse 7.8 发行版本的重要信息备注:
- 仅在 OCP 4.6 上升级到 Fuse Console 和 API Designer (Apicurito) operator 的 Fuse 7.8 版本
- 如果您使用 Operator 来安装和升级 Fuse Console 和 API Designer,您应该注意 Fuse 7.8 Operator 只能从 OperatorHub 的 OCP 4.6 版本获得。要安装 Fuse 7.8 operator,推荐的升级路径是首先将 OpenShift 升级到 OCP 4.6 版本,然后将 Fuse operator 升级到 7.8 版本。如需了解更多详细信息,请参阅 ENTESB-15472。
- 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。
- 推荐的容器开发套件(CDK) 3.14 是 OpenShift 3.11 上 Fuse 7.8 的建议版本。
我们建议开发人员使用 CDK 3.14 来试用 OpenShift 3.11 上的应用程序。CDK 不适用于 OpenShift 4.x。
注意CDK 仅作为开发人员提供,不是受支持的 OpenShift 发行版。
eap-camel-jpa
quickstart 已被删除-
由于依赖项存在问题,
eap-camel-jpa
Quickstart 已从 Fuse 7.8 中删除。 fabric8-maven-plugin
不再生成 JSON 资源fabric8-maven-plugin
不再为 OpenShift 上的 Fuse 生成以下JSON
资源:- target/classes/META-INF/fabric8/openshift.json
target/classes/META-INF/fabric8/kubernetes.json
新插件会生成等同的
.yml
文件,即openshift.yml
和kubernetes.yml
文件。如果需要,您仍然可以在fabric8-maven-plugin
配置中设置以下选项来生成 JSON 文件:<configuration> <resourceFileType>json</resourceFileType> </configuration>
- 在 Fuse 7.8 上无法访问 Jolokia
- 从 Fuse 7.8 开始,Jolokia 默认协议从 HTTP 切换到 HTTPS。
第 4 章 Fuse Standalone
4.1. 支持的容器
以下运行时容器支持 Fuse standalone 7.8:
- Spring Boot 2 (standalone)
- Apache Karaf
- Red Hat JBoss Enterprise Application Platform (JBoss EAP)
4.2. Fuse 7.8 中的新功能
7.8 中 Fuse 独立的主要新功能是:
- Camel Weka component for JBoss EAP
现在,JBoss EAP 容器完全支持
camel-weka
组件( 但不适用于 任何其他容器类型)。如需更多信息,请参阅 Apache Camel 组件参考中的 Apache Weka 组件部分。
- 在 Camel JMS 和 Camel AMQP 组件上配置交付延迟
Camel JMS 和 Camel AMQP 组件的交付延迟选项已向后移植到 Camel 2.23 (最初,它是 Camel 3.0 中实施的)。
如需更多信息,请参阅 Apache Camel 组件参考中的 Apache JMS 组件和 Apache AMQP 组件部分。
- 配置 Apache Karaf 健康检查
为了避免在容器中运行 HTTP 进程的健康和就绪度检查请求被阻止,端点可以注册到单独的 Undertow 容器中。
如需更多信息,请参阅 OpenShift 上 Fuse 的 启用 Fabric8 Karaf 健康检查 部分。
- jasypt:decrypt 命令的新 "-E" 选项
允许使用固定初始化向量生成器解密使用之前版本的 Jasypt 加密的密码。
如需更多信息,请参阅 Apache Karaf 安全指南 中的 Invoking the
jasypt:decrypt
命令 部分。- 更新了 Camel SAP 组件库
- 将 SAP 客户端库的次版本更新至 3.1,因为 3.0 不再被支持。
4.3. 技术预览功能
Fuse 独立的以下功能 只是技术预览,在 Fuse 7.8 中不支持:
- 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.8 的 BOM 文件
要将 Maven 项目配置为使用支持的 Fuse 7.8 工件,请使用本节中介绍的 BOM 版本。
4.4.1. BOM 文件
要将 Fuse 独立应用程序升级到使用 7.8 依赖项,请编辑 Maven pom.xml
并更改下表中列出的 BOM 和 Maven 插件的版本:
容器类型 | Maven BOM 或 Plugin Artifact groupId/artifactId | Fuse 7.8 版本 |
---|---|---|
Spring Boot 2 |
|
|
|
| |
|
| |
Apache Karaf |
|
|
|
| |
JBoss EAP |
|
|
有关使用 BOM 的详情,请参阅 迁移指南。
4.5. 重要备注
Fuse standalone distribution 的 Fuse 7.8 发行版的重要备注:
- EAP 上的 Fuse 已升级至使用 JBoss EAP 7.3.2 (从 JBoss EAP 7.2)
- Fuse 7.8 版本现在在 JBoss Enterprise Application Platform (EAP) 7.3.2 容器上运行(在之前的 Fuse 版本中从 JBoss EAP 7.2 升级)。如需了解更多详细信息,请参阅 JBoss EAP 7.3.0 发行注记。
- Camel 从 2.21 升级到 2.23
- Fuse 7.8 (在 Apache Karaf 中,JBoss EAP 7.3 和 Spring Boot 2.3)现在支持 Camel 2.23,之前 Camel 2.23 仅支持 Spring Boot 2.1.3。
- 在 Karaf 上升级 Fuse
在这个发行版本中,有很多影响主版本和次版本的升级。
大多数 OSGi 捆绑包集版本范围排除了下一个主要版本,有时甚至是次版本,因此不使用 Apache Karaf 补丁机制上的 Fuse 将 Apache Karaf 容器升级到 Fuse 7.8。
必须执行新的安装,以了解有关在 Karaf 上升级到 Fuse 7.8 的详情,请参阅 Fuse 迁移指南。
- 本发行版本中,Red Hat Decision Manager (RHDM)和 Red Hat Process Automation Manager (RHPAM)与 Apache Karaf 不兼容
- 由于依赖项不兼容,Fuse 7.8 中提供的 Apache Karaf 容器与 RHDM 和 RHPAM 不兼容。即将发布的版本中会解决这种不兼容的问题。
- Camel JMX 组件限制
- 由于 CVE-2020-11971,无法再在 Camel JMX 组件中实例化 JMX Connector 实例。建议您使用默认的 JVM JMX 连接,而这没有此安全漏洞。
- Camel Netty4 组件限制
-
由于 CVE-2020-11973,不允许在
camel-netty4
组件中对 Java 对象进行序列化。唯一允许的编码器/解码器是StringEncoder
。 - Spring Boot 支持
- Spring Boot 1 在 Fuse 7.7 中已弃用,现在在 Fuse 7.8 中删除。现在支持 Spring Boot 2.3。
第 5 章 弃用和删除的功能
如果您需要任何帮助,或者对 Fuse 7 中即将推出的更改有任何疑问,请联系 support@redhat.com。
5.1. 已弃用
Fuse 7.8 中已弃用以下功能,并可能在以后的版本中删除:
- 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.8 中不支持的功能
Red Hat Fuse 7.8 不支持以下功能。
- 不支持 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.8 版本中的已知问题。
7.1. CVE 安全漏洞
作为中间件集成平台,Fuse 可能会与大量第三方组件集成。无法始终排除 Fuse 的一些第三方依赖项可能会存在安全漏洞。本节记录了与影响 Fuse 7.8 第三方依赖项的安全性相关的已知常见漏洞和风险(CVE)。
- 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-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 附加组件。
- ENTESB-15292 从 API 连接器创建连接会预先填充旧值
- 在 Fuse 7.8 中,如果您有一个现有的 API 客户端连接器(例如,在 Customizations > API Client Connectors下列出的连接器),并且编辑连接器以更改连接器定义中的 Base URL 字段,您会发现此更改不会反映在您使用这个连接器创建的所有 API 连接中。也就是说,您创建的连接 的基本路径 字段默认为 Base URL 的旧 值,然后再进行更改。要临时解决这个问题,您只需将连接中的 Base path 字段改为新值,而不是依赖于 API 客户端连接器中的默认值。
- 由 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。 - ENTESB-14237 Missing patch body in FHIR Patch 操作
从 Fuse 7.7 开始,指定 JSon Patch,如 FHIR 服务器资源更新指定字段 的第 7 步中所述,因为连接器不使用 JSon Patch 的值,且错误
Unable 用于确定由集成引发的补丁编码
。要临时解决这个问题,您可以在 Data Mapper 中打开 JSon Patch 的设置,如第 9.ii 步中所述,并直接设置字段的值、
op
、路径、路径
和值(请参阅 ENTESB-14237所示)。- 部署集成 API 的 ENTESB-13966 发现功能被禁用,但不真正禁用
- 从 Fuse 7.7 开始,在创建一个包含 API 的新集成后,集成详情页面会错误地表示这个集成禁用了 3scale 发现。另外,集成详情页面不会显示 API URL。通过单击此按钮三次(单击" 启用 ",然后单击" 禁用 "),您可以重新同步页面,以便启用 3scale 发现,并显示 API URL。
- ENTESB-14114 SOAP 连接器 - 没有自动生成的图标
- 如果没有为 SOAP 连接器提供图标,Fuse Online 不会为您生成图标。
7.3. OpenShift 上的 Fuse
本节列出了影响在 OpenShift 中部署 Fuse 应用程序的问题。有关影响特定容器的问题详情,请参阅 Spring Boot、Apache Karaf 上的 Fuse 部分,以及 JBoss EAP 上的 Fuse。OpenShift 发行版上的 Fuse 有以下已知问题:
- 从 Fuse 7.7 迁移到 7.8 BOM 时,ENTESB-15642 Candidate permutation 会失败
在 Fuse 7.8 中,如果您创建一个 Karaf 自定义分发(例如,基于 Fuse 7.8 Karaf
自定义
快速入门),然后将此自定义分发部署到 OpenShift,您可能会遇到涉及javax.xml.bind
的 OSGi 导入冲突。发生此导入冲突,因为 Karaf 系统捆绑包导出了 JAXB API 软件包的多个版本(即 2.2 和 2.3 版本)。独立 Apache Karaf 不受此问题的影响,因为它确保 JAXB 软件包的正确版本(包括 2.2 和 2.3)可以通过系统捆绑包(即捆绑包
0)提供。这样可确保在安装其他功能(如 CXF)时,这些功能不必安装自己的 JAXB API 捆绑包,从而防止 API 冲突。要临时解决这个问题,您应该在 Karaf 自定义分发的 POM 中添加以下行:
<library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.3/${version.org.apache.servicemix.specs.jaxb};type:=endorsed;export:=true</library>
如果需要将上例中的
${version.org.apache.servicemix.specs.jaxb}
替换为 POM 文件中的相关字面版本,因为 Maven BOM 文件中定义的属性 不会 传送到 POM 文件。要发现与version.org.apache.servicemix.specs.jaxb
属性的相关值,请从 POM 的dependencyManagement
部分引用的fuse-karaf-bom
BOM 文件开始,并遵循递归导入的 BOM 文件链,直到您找到包含version.org.apache.servicemix.specs.jaxb
的定义。例如,对于 Fuse 7.8,您可以在 https://maven.repository.redhat.com/ga/org/jboss/fuse/jboss-fuse-parent/7.8.0.fuse-780038-redhat-00001/jboss-fuse-parent-7.8.0.fuse-780038-redhat-00001.pom BOM 文件中找到version.org.apache.servicemix.specs.jaxb
属性的值。
- 使用 OCP 4.5 时,在 operatorhub 中无法看到 ENTESB-15472 Fuse 7.8 operator
- 在 Fuse 7.8 中,Fuse Console、Fuse Console、Fuse Api Designer 和 Fuse Online)仅在使用 OCP 4.6 时在 OperatorHub 上提供。对于 OCP 4.5 及低于 Fuse 7.8 Operator 的版本,OperatorHub 不提供。要安装 Fuse 7.8 operator,推荐的升级路径是首先将 OpenShift 升级到 OCP 4.6 版本,然后将 Fuse operator 升级到 7.8 版本。
- ENTESB-15034 Missing FMP quickstart spring-boot-camel-rest-3scale 中的 Openshift Service Object 上的标签
-
在 Fuse 7.8 中,
spring-boot-camel-rest-3scale
Quickstart 缺少标签和注解,使部署的服务被 3scale 自动发现。要临时解决这个问题,请按照 3scale 管理门户指南中的 可发现服务部分标准 中的说明,手动将缺少的标签和注解添加到服务对象 YAML 定义中。 - ENTESB-15317 Apicurito 生成器 pod 未就绪
- 在 Fuse 7.8 中,Apicurito 生成器 pod 的健康检查端口不会启动。要临时解决这个问题,健康检查被配置为 ping HTTP 端口 8080 (启动)而不是 HTTP 端口 8181,它通常用于健康检查探测。
- ENTESB-12238 [SB2] Quickstarts arquillian 测试失败
从 Fuse 7.5.0 开始,一些 Spring Boot 2 快速入门(从 Maven archetypes 或 Quickstart 模板生成的)无法构建和部署到 OpenShift。以下 Spring Boot 2 Maven archetypes 会受到影响:
-
spring-boot-camel-archetype
-
spring-boot-camel-infinspan-archetype
-
spring-boot-cxf-jaxrs-archetype
-
spring-boot-cxf-jaxws-archetype
以及以下 Spring Boot 2 模板:
-
spring-boot-2-camel-template
-
spring-boot-2-camel-infinspan-template
-
spring-boot-2-cxf-jaxrs-template
-
spring-boot-2-cxf-jaxws-template
要临时解决这个问题,在为其中一个快速入门生成 Maven 项目后,编辑项目的 Maven
pom.xml
文件以添加以下依赖项:<dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>2.4.1</version> <scope>test</scope> </dependency>
-
- ENTESB-10577 Apicurito 不支持 YAML Open API 规格文件
- 从 OpenShift 上的 Fuse 7.4 开始,Apicurito 默认 以 YAML 格式生成 OpenAPI 规格文件,但无法重新导入生成的 YAML 文件。目前只能将 JSON 格式导入到 Apicurito 中。
7.4. Apache Karaf 上的 Fuse
Apache Karaf 上的 Fuse 有以下已知问题:
- 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 有以下已知问题:
- ENTESB-15308 Camel CXF not compatible with EAP-7.3.3.GA-redhat-00004
- 对于 EAP 上的 Fuse 7.8,我们发现 Camel CXF 与 EAP 版本 7.3.3 不兼容。要临时解决这个问题,您可以在 EAP 版本 7.3.2 上安装 Fuse 7.8。
- ENTESB-14244 将 SOAP 添加到 Rest 示例,该示例使用 Keycloak 保护端点 - 更新 readme
在 Fuse 7.7 中,在 README 指令中存在一个错误,用于新的 SOAP 到 Rest quickstart (
camel-soap-rest-bridge
)。在 先决条件 部分中,安装 RH SSO EAP Adapter 的命令如下:./bin/jboss-cli.sh --file=bin/adapter-elytron-install-offline.cli
但是正确的命令实际上是:
./bin/jboss-cli.sh --file=bin/adapter-elytron-install-offline.cli -Dserver.config=standalone-full.xml
- EAP 域模式上的 ENTESB-13168 Camel 部署无法在 Windows 上工作
- 从 Fuse 7.6.0 开始,对于 JBoss EAP 上的 Fuse,在 Windows OS 上的域模式中无法部署 Camel 子系统。
7.6. Fuse 工具
Fuse 工具有以下已知问题:
- FUSETOOLS-3393 Camel 调试器自动绑定不适用于 Fuse 7.8、Camel 2.25.1+ 和 Camel 3.2.0+
由于从 Fuse 7.8 中删除 JMX RMI Connector 功能,Camel Debugger 在右键点击项目时无法正常工作,然后选择 Debug as > Local Camel Context 选项。要解决这个问题,请按照以下步骤执行:
- 在 JMX navigator 视图中,连接为 Camel 项目创建的进程。
- 展开项目以查看 Camel 节点。
- 右键单击 Camel 节点,然后选择 Edit routes。
- FUSETOOLS-3393 Remote 调试不再被支持
- 由于从 Fuse 7.8 中删除 JMX RMI Connector 功能,因此不支持使用 Fuse Tooling Camel Debugger 进行远程调试。对于远程调试,您必须配置 Jolokia,并通过 Jolokia 创建特定的 JMX 连接。
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.8 中的问题
以下小节列出了 Fuse 7.8 中修复的问题:
8.1. Fuse 7.8 中的增强
下表列出了 Fuse 7.8 中的增强功能。
问题 | 描述 |
---|---|
升级到 arquillian-core-1.4.0.Final | |
向后移植 CAMEL-15050 - Templating 组件 - 变量映射到 body/headers | |
更新内联编辑器 | |
请考虑认证 WebSphere MQ 9.1 | |
添加选项来配置 amqp/jms 组件的交付延迟 | |
为 Fuse 控制台 operator 添加 RBAC 支持 | |
Backport CAMEL-15358 - IndexOutOfBoundsException when polling | |
Openshift 和 Fuse Standalone 上 Fuse 的默认 Grafana 仪表板 | |
将对 Log4J2 的支持添加到 SLF4J | |
将技术预览镜像移到 GA | |
Fuse Console operator 自动化客户端证书颁发 | |
在 Spring / Spring Boot 中为加密属性 Placeholders 添加支持和文档 | |
支持断开连接的安装 - APICurito Operator | |
在 Fuse 控制台中包含 Artemis 插件 | |
在模板中添加 MAVEN_MIRROR_URL 参数 | |
为 Openshift 上的 Fuse 提供 metering 标签(FMP) | |
Fuse 7 OpenShift 控制台应该支持每个网络区部署模型 | |
为快速入门定义和使用标准模板 | |
支持在 7.8 中更改的 OLM 元数据格式 | |
Fuse 控制台的确定性部署 | |
backport CAMEL-15532 - Multicast parallel processing with timeout: Stream Cache file not deleted | |
从 Fuse Online 7.x 中删除 Camel-K 0.3.4 | |
实施应用特定 CVE 修复的方法(Karaf) | |
使用 OCP4.5 认证 Fuse 7.7 | |
Fuse Online: 无法配置 syndesis-meta pvc 类型 | |
Fuse Online: 无法配置 syndesis-prometheus pvc 类型 | |
默认启用 API 供应商中的错误消息 | |
将 EAP 版本添加到 7.7 的 UMB 消息中 | |
[CAMEL-15377] 使用描述用例的文档为 transactedInOut 选项删除弃用 | |
向后移植 CAMEL-15013 - 模板组件 - 添加选项可打开|off 允许使用带有覆盖模板的标头 | |
bump Snakeyaml 更新到版本 1.26 | |
以新格式(OLM)将 Fuse 7.7 operator 作为捆绑包发布 | |
使用 Fuse 7 上的 servlet 组件定义 restConfiguration,以演示 servlet 级别安全 + Karaf JAAS | |
从自定义资源配置服务器 DB 连接池 | |
对默认用户执行 fuse bin/client 脚本(如果 etc/users.properties 有多个用户) | |
为 APICurito operator 和代码生成器提供 metering 标签。 | |
为 Fuse 控制台提供 metering 标签(基于模板的安装) | |
为 syndesis server/meta 组件公开 JAVA_OPTIONS | |
用于 Karaf 上独立 Fuse 7 的 Prometheus 导出器 | |
使用 Fuse Online 的新标签格式 | |
向后移植 CAMEL-14893 : camel-grpc - 如果交换失败,如果交换失败为 onError |
8.2. Fuse 7.8 中的功能请求
下表列出了 Fuse 7.8 中的功能请求。
问题 | 描述 |
---|---|
向后移植 CAMEL-14533 - camel-ftp: fileExist=Append 和 tempPrefix 选项无法一起工作 | |
向后移植 CAMEL-15420 - camel-http dynamic aware,如果未指定 Exchange.HTTP_PATH 标头,则删除了 Exchange.HTTP_QUERY 标头 | |
允许 Kafka consumer/producer 配置调整 | |
无法为组件和集成设置 CPU 请求和限值 | |
添加了对 OData v2 的支持 | |
支持 Fuse Online 组件的 nodeAffinity 和 toleration 配置 |
8.3. Fuse 7.8 中的冲突
下表列出了 Fuse 7.8 中的冲突。
问题 | 描述 |
---|---|
[react-UI] 在 "show mapping table" 视图中添加新映射 | |
spec.Components.Prometheus.Rules clarification |
8.4. 在 Fuse 7.8 中解决的错误
下表列出了 Fuse 7.8 中已解析的错误。
问题 | 描述 |
---|---|
Apicurito 无法重新导入生成的 YAML 文件。 | |
[POST-GA] Fuse Console 7.8 Operator 具有错误摘要,无法安装 | |
Fuse Console Operator 从 7.7 升级到 7.8 无法正常工作 | |
Fuse 7.7 CodeReady studio Quickstart for Karaf 使用错误的 BOM 版本 | |
spring-boot-camel-config-7.8.0.fuse-sb2-780029 上错误的 RoleBinding | |
[SB2] Quickstarts arquillian 测试失败 | |
SSH 集成失败并显示 Camel 2.23.x | |
恢复和记录 Azure 凭证 | |
[Apicurito] Wrong 标签语法在 fuse-apicurito.yml 中 | |
无法安装 16 个功能 | |
Rest DSL 上的 Undertow 组件截断大量响应 | |
因为未知 CA,快速入门构建测试会失败 | |
Camel K 和 Fuse Online 之间的 CRD 冲突 | |
Elasticsearch 服务器与 lucene 和 log4j2 配置冲突 | |
camel-springboot - Flaky test StreamCachingTest | |
Syndesis 在创建 API 连接器过程中不会填充主机和 basePath | |
Fuse Karaf bom 中的 jgit 版本错误(应该匹配 Camel 中的 jgit) | |
捆绑包镜像中的不正确的 relatedImages 部分 | |
JAAS - Missing Rerun Failing Test 属性会在第一次尝试时造成测试失败 | |
定义 class UndertowSecureRestDslCdiIntegrationTest 失败 | |
Karaf 中的 javax.xml.bind 缺少版本 | |
xccdf-cxf-rest-archetype from catalog 2.2.0.fuse-sb2-780022-redhat-00001 包括 spring-boot-bom | |
无法创建 SOAP 连接器 | |
Camel 2 的 openapi-osgi 示例参考 camel-bundle-plugin 3.x | |
Karaf 中缺少/Wrong 'javax.activation' 版本 | |
Fuse Online 升级无法正常工作 | |
命令历史记录会抛出 java.lang.reflect.InvocationTargetException | |
Quickstarts 测试在快速入门时失败 | |
恢复和记录数字凭证 | |
Apicurito operator config.yaml 与上游不匹配 | |
默认构建不会跳过已下载许可证 | |
db-backup 在 3.11 上的 ImagePullBackOf 上卡住 | |
离线仓库中缺少依赖项 | |
对于 2xx 响应,API Provider 响应始终为 200 | |
Fabric8 quickstart karaf-camel-amq 无法正常工作(可能缺少配置) | |
删除 DV Operator - 由于 Operator 捆绑包更改 | |
[Apicurito] 删除所有提到 UI 镜像可以通过 CR 更改 | |
修复使用未解析版本占位符的几个 Camel 功能 | |
OperatorHub 上默认禁用 Jaeger | |
当字段在编辑 API Connector 过程中为空时,它们会消失。 | |
组件 camel-milo 与运行时间的通用 netty 组件不一致 | |
Boosters 指向不正确的 fuse bom 版本 | |
EAP-camel*-template 和 karaf*-template 仍然引用非产品版本 | |
快速入门在 OCP 4.6 上失败 | |
RestConfiguration 中的 JSON bindingMode 会覆盖现有的 content-type 标头,且无法设置 charset:utf-8 | |
恢复和记录 Twilio 凭证 | |
cdi-api, servlet-api, jboss-transaction-api in wildfly-camel-examples 的升级版本 | |
来自 Camel 与 EAP 兼容性的 BouncyCastle 版本 | |
有些快速入门没有就绪度/Liveness Probe | |
Camel 2.23 在版本协调后测试失败 | |
Fuse Online 安装脚本不会在 OCP 3.11 上安装 Syndesis jaeger | |
OperatorHub 安装后缺少 Jaeger 资源 | |
无法验证 AWS 连接 | |
fabric8-project-bom-fuse-karaf 中的 jaxb-api 依赖项问题 | |
ActiveMQ 中无效的传输依赖项 | |
Syndesis 7.8 operator 过时的描述 | |
EAP docs/fuse/licenses/licenses.xml 错误 | |
链接的文档是 7.7 版本,而不是 7.8 版本 | |
使用 greenmail redepoyment 可能的竞争条件 | |
未能定义类 org.apache.poi.openxml4j.util.ZipSecureFile | |
使用选项 -Dnamespace.use.existing 时,FMP no created to namespace | |
Hawtio 在线不是产品化 | |
Elasticsearch 可能会等待 http://docker:9200/_cat/nodes | |
恢复和记录 openweather 凭证 | |
camel-master 组件失败并显示 "java.lang.NoClassDefFoundError: org/apache/curator/shaded/com/google/common/cache/CacheBuilder" 异常 | |
postgres-exporter 链接到错误镜像的默认值 | |
Slack Connector 传统令牌将不再工作 2020 年 5 月 | |
XMLSecurity 在 XML 标头后丢弃空格 | |
EAP 镜像包含 UBI 仓库 | |
恢复和文档 Box 凭证 | |
camel-netty4 - RequestTimeout seems 无法正常工作 | |
Operator 捆绑包在 CSV yaml 中缺少一些镜像名称 | |
在 Fuse 7.7 上的 S2I 构建应用程序模板期间拒绝权限 | |
将"Publish 消息"用于 AMQP 连接仍然需要来自临时队列的响应 | |
恢复和记录 SAP 凭证 | |
当条目包含空格时,受管路径元数据无法解析 | |
7.8 fabric8-maven-plugin 不部署快速入门 | |
[react-UI] Mapping preview - 当输入被删除时,结果字段会被清理 | |
[Apicurito] SpringBootServletInitializer 的 Wrong 导入 | |
MBean 中的 XNIO "ConnectionCount" 属性返回 "-1" | |
Apicurito 捆绑包包含上游 CSV | |
Camel 子系统忽略 socket.binding.port-offset | |
未能定义类 io.netty.util.internal.logging.Log4J2Logger | |
当通过 operatorhub 更新时,Syndesis 会失败 | |
karaf 健康检查使用与用户流量相同的 servlet 容器 | |
Apicurito 生成器 pod 未就绪 | |
MailIntegrationTest 可能没有收到预期的消息数 | |
camel-restdsl-openapi-plugin nullpointerexception | |
camel-milo, camel-thrift, camel-zipkin 功能无法正常工作 | |
软件包 org.tallison.isoparser 对软件包 junit 没有通用外部依赖项 | |
通过 JMX 保护无法正常工作 | |
CXF SB2 有问题 | |
API 供应商集成返回空结果 | |
APNS 服务器的 SSL 服务器套接字已使用 | |
升级到 camel-2.23.2.fuse-780026 | |
跨运行时调查 BOM 的不同 | |
camel-cdi - MandatoryJtaTransactionPolicy 和 NeverJtaTransactionPolicy miss 来调用可运行的工作 | |
安装另一个 Fuse 在线时,Fuse Online 安装脚本会卡住在 OCP4 上等待 Jaeger operator。 | |
在不需要人工干预的情况下无法使用 CVE respin 镜像 | |
Karaf quickstarts 在 readme 中引用错误的镜像 | |
CXF 与 Karaf 中的 javax.activation 版本不兼容 | |
Fuse Console 捆绑包上的 CVP 错误 | |
XMPP 服务器中的 SSL 证书问题 | |
FMP fabric8 目标 Fuse 7.7 和 7.8 间的不匹配 | |
拉取镜像配置错误:toomanyrequests | |
恢复和记录 ServiceNow 凭证 | |
通过 fuse 在线更新脚本将 Fuse Online 7.6 升级到 7.7 后,jaeger-operator SA 不包含 syndesis pull secret [OCP 3.11 only] | |
NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor | |
Fuse 7.8 CI broken - 不完整的 UMB handed over | |
Google API 不再访问 | |
spring-boot-camel-soap-rest-bridge-archetype broken | |
AS2 组件无法在 Karaf 上工作 | |
未能定义类 org.apache.camel.script.osgi.Activator | |
无法初始化类 org.apache.cxf.attachment.AttachmentUtil | |
Quickstarts 无法正常工作 | |
Netty 服务器端口地址已用于 Atomix | |
当使用 operatorhub 安装时,syndesis-public-oauthproxy 无法启动 | |
在 fabric8 更改后,spring-boot-camel-config Quickstart 会失败 | |
使用 JMS 的 CXF:代理恢复后连接泄漏 | |
清理 Apicurito 后,无法通过 Operator 安装 | |
Apicurito operator 镜像包含picurito-generator 镜像 | |
制作者超时设置无法使用 camel-cxfrs | |
Quickstarts 不会在 OCP 4.x 上公开路由 | |
对于 fuse 层中引用的工件缺少许可证信息 | |
与组件对齐文档不匹配 | |
fabric8-maven-plugin 错误应用 RoleBinding | |
移至 stax2 4.x / woodstox 5.x 后,camel-fhir 具有 OSGi 问题 | |
Fuse 7.7 的 jasypt-version 错误 | |
Apicurito bundle 1.8-4 无法启动 | |
Atlasmap - 允许具有相同名称的多个属性 | |
无法构建复合 1.11.x | |
无效的资源请求 - Syndesis meta | |
在 CSV 行上分割/协调无法正常工作 | |
将 Kafka 集成测试迁移到 docker | |
Atlasmap - 初始常量和属性类型没有反映在后端 | |
应用程序监控堆栈无法用于 Syndesis 1.11.x | |
SOAP Connector serviceName 和 portName 没有正确设置 | |
上游镜像 centos/postgresql-96-centos7 在产品中被使用 | |
向后移植 PR8678 | |
SOAP Connector 无法处理以 ?WSDL 结尾的 URL | |
fuse-console-operator-container 镜像不会传递 CVP operator gates | |
自动发现 Kafka 代理无法在 OCP 4.5 中工作 | |
FuseOnlinePostgresExporterDown 规则无法解析 | |
安装 Operator 也会安装自定义资源 | |
无法启用 TODO 和 Jaeger 附加组件 | |
在重新配置 Webhook 步骤时,无法更改 http 响应 | |
Operator 会在每个循环上打印安装附加组件 | |
无法获取 PlatformTransactionManager OSGI 服务 | |
fuse-eap-openshift 镜像基于不正确的 EAP 基础镜像 | |
集成摘要页面缺少集成状态 | |
从应用程序模板创建快速入门时引用的 bom 版本 | |
postgres 版本检查会在每个协调上运行,即使没有升级 | |
[react-UI] Mapping preview 标签页 - 映射预览不是互动 | |
更多 Syndesis 无法同时安装 | |
API 客户端连接器详情页 UI 问题 | |
API Client + SOAP Connector 向导安全字段默认是隐藏的 | |
允许用户为集成构建设置额外的 maven 参数 | |
API Client Connector 表单不验证安全字段 | |
SOAP Client Connector should show Address 字段 | |
crc 脚本中的错误会导致 jaeger-operator 崩溃,并防止安装剩余的附加组件 | |
Camel opentracing 无法从 ServiceLoader 加载类型 | |
Infinispan library infinispan-query-dsl 不是 EAP infinispan 版本的所有目标 | |
窗口上的 Fuse 没有数据目录 | |
回归: [ENTESB-4766] 授权不适用于 EAP 上的 Hawtio | |
在 OCP 4.4 上,OpenShift 快速入门上的 Fuse 7.7 会失败 | |
来自 2.2.0.fuse-sb2-780022-redhat-00001 的 archetypes 引用错误 BOM | |
在 Fuse Karaf BOM 中使用 Jackson 2.9.x | |
RELATED_IMAGE_AMQ doesnt 工作的 AMQ Broker 镜像覆盖 | |
Apicurito UI 无法从标准路由访问 | |
Unproductized hawtio-wildfly artifact | |
编辑 SOAP 连接器中缺少的地址字段 | |
SOAP 连接器中缺少属性 portName | |
无法创建 SOAP 连接器 | |
SOAP Connector - 如果无法从 URL 加载 wsdl,则不会显示错误 | |
SOAP 连接器无法使用 XML 架构选择类型作为 AtlasMap 不支持它 | |
Webhook 返回不同的响应代码,如已设置 | |
IBM MQ 9.1.0.6 客户端不能在 Karaf 中安装 | |
(升级)在 Fuse Online 将 7.7 升级到 7.8 后失败第二个 Jaeger operator | |
OpenTracing 不适用于 Kafka 组件 | |
[Fuse Console] Hawtio 在 Fuse OpenShift 4 上持续启动/关闭 | |
FHIR Patient 项无法在数据映射器中使用 | |
| |
Atlasmap source CSV → target CSV 导致 java.lang.IndexOutOfBoundsException | |
将 ClusterRoleBindings 替换为 RoleBindings 后,Kafka 自动发现和公共API 无法正常工作 | |
无法创建备份 - db 版本不匹配 | |
当某些主题已创建时,无法指定不存在的 kafka 主题 | |
Kafka 连接修改警告 | |
在 7.8 中删除 camel-k,但它仍然存在于 CRD 中 | |
fuse-apicurito.yaml 不在 application-templates 中找到 | |
删除复合 CR 后 Jaeger 订阅不会被删除 | |
当某些资源已存在时,会创建 Jaeger 订阅 | |
自动发现 Kafka 只适用于 OCP 上的一个 Syndesis 实例 | |
application-templates 不存在 productised 标签 | |
camel-sap:验证支持 SAP JCo 3.1 (2020 年 10 月3.0) | |
在将 Fuse Online 7.7 更新至 7.8 后,SyndesisDB 未就绪 | |
不是在离线清单中构建 Fuse 在线集成所需的所有依赖项 |