Quarkus 0.20.0 发布

我们刚刚发布了 Quarkus 0.20.0。

如果您使用 Quarkus 和 GraalVM 来构建原生可执行文件,Quarkus 0.20.0 现在需要 GraalVM 19.1.1,所以请升级您的 GraalVM 安装。

有什么新功能?

本次发布的主要亮点包括:Jackson 扩展、OAuth2 扩展、Camel 扩展移出 Quarkus 树、新的 MicroProfile REST Client 实现、Syslog 支持以及 Azure 部署的新指南。

Hibernate ORM 导入脚本中的多行支持

我们为 Hibernate ORM 导入脚本(通常是 import.sql)启用了多行支持。

您需要在现有导入脚本的 SQL 语句末尾添加分号(即 ;)。

Hibernate Validator 与 CDI 的集成得到改进

Hibernate Validator 现在已在 Quarkus 中与 CDI 完全集成。您甚至可以通过声明应用程序中的 Bean 来调整 ValidatorFactory。请参阅更新的文档以了解更多信息。

新的 MicroProfile REST Client 实现

在此版本中,我们已将 MicroProfile REST Client 的实现从 SmallRye REST Client 切换为 RESTEasy。由于 MicroProfile REST Client 构建在 JAX-RS Client 和 RESTEasy Client 现有功能之上,因此将所有客户端合并到 RESTEasy 项目中是有意义的。

此更改还将 Quarkus 中的 REST Client 实现更新至最新的 MicroProfile REST Client 规范 1.3,该规范是最新 MicroProfile 3.0 平台版本的一部分。此版本中的一些新功能包括支持客户端的 SSL 配置、在未通过 @Produces@Consumes 指定 MediaType 时将其默认设置为 JSON,以及通过配置键更轻松地进行配置,从而能够为多个客户端接口设置通用配置。

REST Client 的 GAV 已更改:请从现在起使用 io.quarkus:quarkus-rest-client

升级到 MicroProfile Metrics 2.0

我们将 Quarkus 升级到了 MicroProfile Metrics 2.0。主要区别在于 @Counted 现在始终是单调递增的。如果您需要之前由 monotonic = false 触发的行为,请使用 @ConcurrentGauge

配置每个方法的事务超时

您现在可以使用 @TransactionConfiguration 注解配置特定事务方法的事务超时。有关更多信息,请参阅我们的事务指南

日志记录的 Syslog 支持

Quarkus 现在支持将日志发送到 Syslog。有关更多信息,请参阅我们更新的日志记录文档

新扩展

Jackson 扩展

Quarkus 热衷于标准。因此,我们最初支持 JSON-B 作为我们的 JSON 序列化库。

我们有很多用户要求支持 Jackson,虽然您可以使用 Jackson 搭配 Quarkus,但这不像支持 JSON-B 那样简单。

我们刚刚添加了两个新扩展,使 Jackson 成为 Quarkus 中的一等公民

  • quarkus-jackson 用于独立使用 Jackson

  • quarkus-resteasy-jackson 用于将 Jackson 用于您的 REST 服务

OAuth2 扩展

新的 Security OAuth2 扩展允许实现基于 OAuth2 不透明令牌的身份验证机制。它通过允许根据对自省端点的调用而不是解码令牌来对用户进行身份验证,从而补充了现有的 JWT 扩展。不透明令牌是一种不包含任何编码信息的令牌,因此需要外部调用来收集用户信息,此外部调用是针对所谓的自省端点进行的。

在后台,它依赖于 Elytron,并利用与其他安全扩展相同的注解,因此易于使用,就像 Quarkus 支持的其他身份验证机制一样,用户可以轻松地在它们之间切换。

如果您的身份验证服务器是 Keycloak,最好使用 Keycloak 扩展。

Camel 扩展已移出 Quarkus 主树

从 Quarkus 0.20.0 开始,Apache Camel 扩展将有一个新家,位于 Apache 软件基金会,作为一个官方的 Apache Camel 子项目。这些扩展已移至 https://github.com/apache/camel-quarkus,Maven 组 ID 现在是 org.apache.camel.quarkus:您可以 在此处 列出可用的工件。

第一个 Camel-Quarkus 版本是 0.0.2,基于 Camel 3.0.0-M2 和 Quarkus 0.19.1。Apache Camel 团队正在开发一个新版本,其中包含更多基于可用 Camel 组件的扩展,支持最新的 Camel 3.0.0 Milestone Release(为完整起见,为 Milestone 4),并基于 Quarkus 0.20.0 和 GraalVM 19.1。

对于贡献、改进和讨论,您可以 在 GitHub在 Gitter在通常的邮件列表中 联系 Apache Camel 团队。

在 Azure 上部署 Quarkus

我们有一个关于将 Quarkus 应用程序部署到 Microsoft Azure Cloud 的新指南。如果您想在 Azure 上部署 Quarkus 应用程序,请参考它。

完整更新日志

我们还修复了一些问题,并在各处合并了许多改进。

贡献者

Quarkus 现在已有125 位贡献者。非常感谢其中的每一位。

特别是对于这个版本,感谢 Alessio Soldano、Alex Soto、Alexey Loubyansky、Aleš Justin、Aris Tzoum、Bruno Borges、Cristhian Lopez、Clement Escoffier、David M. Lloyd、Edoardo Vacchi、Emmanuel Bernard、Fabrice Pipart、Frank de Jong、George Gastaldi、Georgios Andrianakis、Guillaume Dufour、Guillaume Smet、Gwenneg Lepage、Jacob Middag、Jan Martiska、Jeremie Bresson、Jirka Kremser、Justin Lee、Ken Finnigan、Loïc Mathieu、Łukasz Włódarczyk、Maciej Swiderski、Manyanda Chitimbo、Marco Mornati、Mario Fusco、Martin Kouba、Matej Novotny、Michael Simons、Michal Szynkiewicz、Moncef Aoudia、Peter Palaga、Rostislav Svoboda、Sanne Grinovero、Sébastien Blanc、Sergey Beryozkin、Stephane Epardaud、Stuart Douglas 和 Timothy Power。

加入我们

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

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