Quarkus 3.16 - OpenTelemetry Logging、LGTM Quarkus仪表板以及太多内容无法在此处一一列出

继 3.15 LTS 版本发布之后,Quarkus 3.16 带来了大量新功能和改进。

Quarkus 3.16 是两个月工作成果的结晶,因此比您通常的 Quarkus 次要版本包含的功能更多。

由于包含了一个最后时刻的修复,我们直接发布了 3.16.1。

值得注意的更改包括:

  • #43005 - 弃用 Big Reactive Rename 的兼容性层

  • #38239 - OpenTelemetry 日志记录支持

  • #41264 - LGTM Quarkus 仪表板

  • #42954 - 生成无反射的 Jackson 反序列化器

  • #42642 - Quarkus REST - 支持记录参数容器

  • #43331 - 引入 REST Client 的基 URL 的每次调用覆盖

  • #41866 - 添加 quarkus-oidc-client-registration 扩展

  • #42749 - 添加新的 AuthorizationPolicy 注解,将命名的 HttpSecurityPolicy 绑定到 Jakarta REST 端点

  • #42879 - 添加 OIDC Client SPI

  • #43241 - 支持在元注解上定义的 @PermissionsAllowed

  • #43283 - 引入 OidcResponseFilter

  • #42935 - 支持单个请求的两个或多个认证

  • #43609 - 在未使用 OIDC 扩展时,支持 OIDC 客户端的 Keycloak 开发服务

  • #42534 - 将 GraphQL 客户端与 TLS 注册表扩展集成

  • #43303 - 将 Keycloak Admin Client 与 TLS 注册表集成

  • #43402 - 自动记录容器中的开发服务

  • #43441 - 将 HTTP 访问日志添加到开发 UI

  • #42907 - 允许配置文档生成器使用多种格式和主题

请注意,我们并没有忘记 3.15 LTS,3.15.2 LTS 版本正在准备中,将于 11 月发布。我们正在仔细挑选要反向移植的修复。

更新

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

quarkus update

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

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

有什么新功能?

已弃用 Big Reactive Rename 兼容性层

还记得 Big Reactive Rename 吗?它发生在 3.9 版本,最终目标是避免在具有响应式核心且同样支持响应式和非响应式工作负载的扩展,以及纯粹设计为响应式的扩展之间的混淆。

许多扩展被重命名,我们同时为工件和配置设置了重定向。

兼容性层的成本很高,我们在 3.16 版本中决定弃用此层,这发生在 3.15 LTS 版本发布之后。

如果您在此更改中遇到问题,请参阅 Quarkus 3.9 迁移指南

如果您使用 quarkus update 更新到每个新版本,更改已为您处理。

OpenTelemetry 日志记录

Quarkus 3.16 支持通过 OpenTelemetry Logging 进行分布式日志记录。这是 Quarkus 中 OpenTelemetry 工作的重要延续。

此支持是现有 OpenTelemetry 扩展的一部分,可以通过配置属性轻松启用。

要了解更多信息,请参阅 专用指南

LGTM 仪表板

在使用 LGTM 开发服务时,现在将提供开箱即用的 Quarkus 仪表板。

Quarkus REST

在 Quarkus REST 中,您可以使用自定义类作为 REST 方法的参数,但记录(records)之前不支持。现在在 Quarkus 3.16 中已支持。

使用 REST Client 时,提供 URL 是强制性的,通常在全局配置。但是,有时您可能希望为每次调用配置它。为此引入了 @Url 注解:用它注解 REST Client 方法的参数,您可以动态地提供 URL。

Jackson

您可能还记得,在 Quarkus 3.14 中,我们引入了 更快的无反射序列化器

您可能想知道:“我的更快的无反射**反**序列化器在哪里?”

它们刚刚在 3.16 版本中上线!

安全性

一如既往,此版本在我们的安全层方面带来了一些新功能和改进。

  • #41866 - 添加 quarkus-oidc-client-registration 扩展 - 请参阅此处 文档

  • #42749 - 添加新的 AuthorizationPolicy 注解,将命名的 HttpSecurityPolicy 绑定到 Jakarta REST 端点 - 请参阅此处 文档

  • #42879 - 添加 OIDC Client SPI - 请参阅此处 文档

  • #43241 - 支持在元注解上定义的 @PermissionsAllowed - 请参阅此处 文档

  • #43283 - 引入 OidcResponseFilter - 请参阅此处 文档

  • #42935 - 支持单个请求的两个或多个认证 - 描述 在此

  • #43609 - 在未使用 OIDC 扩展时,支持 OIDC 客户端的 Keycloak 开发服务

TLS 注册表随处可见

TLS 注册表在 Quarkus 中引入已有一段时间,我们每个版本都在迭代以将其迁移到更多扩展。

在 Quarkus 3.16 中,又有两个新扩展被适配以依赖集中式 TLS 注册表:

  • SmallRye GraphQL Client

  • Keycloak Admin Client

开发 UI

开发 UI 持续得到增强,但我们想重点介绍一个非常好的新增功能:现在可以在开发 UI 中查看来自开发服务容器的日志和 HTTP 访问日志。

配置文档

在开发扩展时,发布配置文档可能很有用。

到目前为止,只能以 Asciidoc 格式发布。从 3.16 开始,您还可以通过将 <format>markdown</format> 传递给 Config Doc Maven 插件的配置来生成 Markdown。

平台组件升级

Camel Quarkus

Camel Quarkus 已更新至 3.16.0。

Quarkus CXF

Quarkus CXF 3.16 已发布,现在可在 Quarkus Platform 3.16 中使用。有关此版本新功能的更多信息,请查看 Quarkus CXF 3.16.0 发行说明。

完整更新日志

您可以在 GitHub 上获取 3.16.0.CR13.16.03.16.1 的完整变更日志。

贡献者

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

特别是对于 3.16 版本,感谢 AB、Adriano Moreira、Akulov S V、Ales Justin、Alex Martel、Alexandros Antonakakis、Alexey Loubyansky、Andreas Stangl、Andy Damevin、Auri Munoz、AxiomaticFixedChimpanzee、Bassel Rachid、Bruno Baptista、Chris Cranford、Chris Laprun、Christian Navolskyi、Claudio Miranda、Clement Escoffier、Dale Peakall、Daniel Bobbert、Daniel Cunha、Daniel Ezihe、Dannier Leonides Galicia Chinchilla、David M. Lloyd、Davide D’Alto、Dimitris Polissiou、Domenico Briganti、Falko Modler、Foivos Zakkak、Francesco Nigro、Galder Zamarreño、George Gastaldi、Georgios Andrianakis、Guillaume Smet、Gunnar Morling、Gunther C. Wenda、Holly Cummins、Inaki Villar、Ioannis Canellos、Jakub Gardo、Jakub Jedlicka、Jan Martiska、jcarranzan、Jeremy Whiting、Jerome Prinet、Jonathan Kolberg、Jorge Solórzano、Julien Ponge、Jérémie Bresson、Jérémie Panzer、Katia Aresti、KERN Christian、Konrad Durnoga、KS、Ladislav Thon、Lars、Laurent Perez、Loic Hermann、Lorenzo De Francesco、Loïc Hermann、Loïc Mathieu、luneo7、Marc Nuri、Marcel Stör、Marcelo Ataxexe Guimarães、Marek Skacelik、mariofusco、marko-bekhta、Martin Bartoš、Martin Kouba、Matej Novotny、Matheus Cruz、Matthias Schorsch、mauroantonio.depalma、Max Rydahl Andersen、Maximilian Rehberger、Melloware、Michael Edgar、Michal Maléř、Michal Vavřík、Nathan Erwin、Nicholas Kolatsis、Ozan Gunalp、Ozzy Osborne、Paul6552、Paulo Casaes、Peer Bech Hansen、Peter Palaga、peubouzon、PhilKes、Phillip Krüger、polarctos、Ralf Ueberfuhr、rghara、Robert Stupp、Roberto Cortez、RobinDM、Rod Cheater、Rolfe Dlugy-Hegwer、Roman Lovakov、Rostislav Svoboda、Sanne Grinovero、Sebastian Schuster、Sergey Beryozkin、Seto、sku20、Stéphane Épardaud、Thomas Canava、Thomas Segismont、Tiago Bento、tmulle、Vincent Sevel、xstefank、yamada-y0、Yasser Greyeb、Yoann Rodière、Yurii Dubinka 和 Žan Ožbot。

加入我们

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

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