Quarkus 3.9 - 重大响应式重命名

我们非常高兴地宣布 Quarkus 3.9.1 版本发布。

本次发布的开发周期比平时稍长,因为它包含了自 Quarkus 3.7 分支以来的所有新功能。

Quarkus 3.9 适用于想要最新功能的开发者。如果您正在寻找长期支持周期,我们建议您坚持使用 3.8 LTS。

以下是 3.9 的主要变更:

  • #39159#39301 - 重大响应式重命名

  • #39142 - 新的声明式 WebSocket 服务器 API 的初始版本

  • #34493 - 为 Config 添加 CLI 命令

  • #39389 - 更新到 Infinispan 15

  • #37680 - 欢迎页面现在是动态的

  • #38541 - 支持 OIDC 客户端 JWT Bearer 认证

  • #38603 - 引入 `@ClientBasicAuth` 注解

  • #38608 - 允许 HTTP 服务器重新加载 TLS 证书

  • #39206 - 改进优雅关机

更新

要更新到 Quarkus 3.9,我们建议更新到最新版本的 Quarkus CLI 并运行

quarkus update

请注意,quarkus update 可以将您的应用程序从任何 Quarkus 版本(包括 2.x)更新到 Quarkus 3.9。

有关您需要对应用程序进行的调整的更多信息,请参阅 Quarkus 3.9 迁移指南

如果您还没有使用 3.x,请参阅 3.0 发布公告 以获取所有详细信息。您也可以参考 这篇博文 以获取更多详细信息。升级到 3.0 后,您还可以查看 3.13.23.33.43.53.63.73.83.9 迁移指南。

有什么新功能?

重大响应式重命名

Max Andersen 已经在 这篇博文 中介绍了这项计划。

这项实质性变更背后的想法是弄清楚哪些扩展是仅响应式的,哪些扩展实际上能够很好地处理阻塞式和响应式工作负载。

因此,我们重命名了几个扩展,Quarkus REST 现在的品牌名称是 RESTEasy Reactive,Messaging 是 SmallRye Reactive Messaging。请注意,此更改还涉及相关扩展,因此有很多变动。

我们并非轻易做出此决定:旧名称给用户带来了很多困惑。

好消息是,在大多数情况下,这对您来说应该是透明的,因为我们已经实施了工件和配置属性的重定向。但是,我们鼓励您尽快迁移到新名称。

使用 `quarkus update` 时,更新对您来说应该是透明的。如果您不使用 `quarkus update`,我们建议您遵循我们迁移指南中的 专用部分

我们对此更改有一个已知问题:如果您使用 `quarkus.resteasy-reactive.path` / `quarkus.rest.path`,您将收到一个警告,提示该属性未被识别。不要惊慌,它实际上是被识别的,该警告是一个错误。这个问题将在 3.9.2 版本中解决。

手动更新时,您可能会遇到的一个常见问题源于我们重用了 `quarkus-rest-client` 名称用于 Quarkus REST 实现,而在 3.7 之前,它用于 RESTEasy Classic 实现。

一点历史可能会有帮助

  • 在 Quarkus 3.7 中,我们将基于 RESTEasy Classic 的 `quarkus-rest-client` 重命名为 `quarkus-resteasy-client`,以使其与 `quarkus-resteasy` 一致,并为我们未来的更改铺平道路。我们放置了重定向,以免破坏您的应用程序。您可以参考 Quarkus 3.7 迁移指南以获取更多信息

  • 在 Quarkus 3.9 中,我们作为 Quarkus REST 品牌迁移的一部分,将 `quarkus-rest-client-reactive` 重命名为 `quarkus-rest-client`。

因此,如果您的应用程序启动失败并出现与 REST 重复实现相关的错误,只需检查您是否一致地使用了 `quarkus-rest*` 扩展或 `quarkus-resteasy*` 扩展。

欢迎页面

在开发模式下启动 Quarkus 应用程序时看到的默认欢迎页面现在是动态的(而且更漂亮!)。

WebSocket Next

Quarkus 3.9 附带了一个下一代 WebSocket 扩展,名为 `quarkus-websockets-next`(正如您所能想象的,名称是临时的)。

如果您在应用程序中使用 WebSockets,我们建议您尝试一下,因为它是 Quarkus 中 WebSocket 支持的未来。

您可以在 教程参考指南 中找到更多相关信息。

Config CLI 命令

已为 Quarkus CLI 添加了命令以帮助管理配置

  • `quarkus config set` 允许更新配置属性

  • `quarkus config encrypt` 允许加密您想在配置文件中保持加密的值

安全增强功能

新版本包含多项安全相关的改进

  • #38541 - 支持 OIDC 客户端 JWT Bearer 认证

  • #38603 - 引入 `@ClientBasicAuth` 注解

  • #38608 - 允许 HTTP 服务器重新加载 TLS 证书(有关更多详细信息,请参阅 文档

Infinispan 15

我们已更新到最新的 Infinispan 15。

您可能需要在应用程序中进行一些更改,因此,如果您正在使用 Infinispan 扩展,请查看迁移指南的 专用部分

优雅关机

我们对优雅关机支持进行了一些改进。

完整更新日志

您可以在 GitHub 上获取 3.9.0.CR13.9.0.CR23.9.03.9.1 的完整变更日志。

贡献者

Quarkus 社区正在不断壮大,目前已有 925 名贡献者。非常感谢他们的每一位贡献。

特别是对于 3.9 版本,感谢 Ales Justin, Alex Katlein, Alex Martel, Alexander Schwartz, Alexey Loubyansky, Andy Damevin, Anton-Vasilev, arvind-vignesh, Auri Munoz, avivmu, barreiro, Bas Passon, Benedikt Werner, Brahim Raddahi, Bruno Baptista, Bruno Leonardo, Chris Laprun, Christian Thiel, cknoblauch, Clement Escoffier, Daniel Bobbert, David M. Lloyd, Davide D’Alto, Diego Ramp (u804103), Dimitris Kontokostas, dliubars, ennishol, Erin Schnabel, Falko Modler, fdlane, Foivos Zakkak, Francesco Nigro, Galder Zamarreño, Gasper Kojek, George Gastaldi, Georgios Andrianakis, glefloch, Gonçalo Montalvão Marques, Guillaume Smet, Hendrik Schmitz, Holly Cummins, humberto, Idryss Bourdier, Ioannis Canellos, Jakub Jedlicka, James Netherton, Jan Martiska, Jiří Locker, Julien Ponge, Katia Aresti, Ladislav Thon, Leandro Quiroga, Loïc Mathieu, Luke Morfill, luneo7, Maciej Lisowski, Marcel Stör, Marco Bungart, Marco Sappé Griot, Marek Skacelik, mariofusco, marko-bekhta, martin, Martin Kouba, Matej Novotny, Matheus Cruz, Max Rydahl Andersen, Michael Edgar, Michal Vavřík, Michiel Thomassen, nimo23, ObserverOfTime, Oliver Wiebeck, Ozan Gunalp, Paulo Casaes, Peter Palaga, Phillip Krüger, Pierre Adam, Robert Stupp, Roberto Cortez, Rolfe Dlugy-Hegwer, Romain BADINO, Rostislav Svoboda, Sanne Grinovero, Sebastian Schuster, Selim, Sergey Beryozkin, Severin Gehwolf, SpaceFox, Steve Hawkins, stianst, Stuart Douglas, Stéphane Épardaud, Sébastien ALLEMAND, The-Huginn, Thomas Darimont, troosan, ub003, Vitaliy Baschlykoff, w0pp, Waldemar Reusch, Wesley Salimans, Wladimir Hofmann, xstefank, Yassin Hajaj, Yoann Rodière, 和 Yoshikazu Nojima。

加入我们

我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!

如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区