升级概览
Quarkus 2.8.0.Final发布,特性包括:将RESTEasy Reactive作为默认 REST 层;将 GraalVM 22.0 作为默认版本;新的
改动
默认集成了RESTEasy Reactive REST层和GraalVM 22.0。细粒度的编程事务API提供了对事务的更多控制。
引入了RESTEasy Reactive 集成,这是JAX-RS的反应式实现,由Vert.x实现。在这个版本中,RESTEasy Reactive 现在是默认的实现,支持阻塞和反应式调用,根据端点的返回类型自动选择。
REST服务器的所有依赖
注释替换,比如org.jboss.resteasy.annotations.jaxrs。QueryParam,应该被org.jboss.resteasy替换。响应式注释,如org.jboss.resteasy.reactive.RestQuery。
REST客户端实现应该用
QuarkusTransaction API
QuarkusTransaction API现在提供了一个编程API,通过显式调用begin()和commit()方法来控制事务:
QuarkusTransaction.begin(); // implementation QuarkusTransaction.commit();
该事务被绑定到CDI请求范围,并在异常破坏请求范围时自动回滚。或者,也可以在超时发生时启动事务并回滚:
QuarkusTransaction.begin(QuarkusTransaction.beginOptions() .timeout(42)); // implementation QuarkusTransaction.rollback();
Lambda作用域事务通过在事务中执行Runnable提供了另一种选择:
QuarkusTransaction.run(() -> { // implementation });
另外,也可以使用支持异常处理和枚举语义 DISALLOW_EXISTING, JOIN_EXISTING, SUSPEND_EXISTING, REQUIRE_NEW(默认)的Callable解决方案:
int answer = QuarkusTransaction.call(QuarkusTransaction.runOptions() .timeout(21) .exceptionHandler((throwable) -> { if (throwable instanceof RuntimeException) { return RunOptions.ExceptionResult.COMMIT; } return RunOptions.ExceptionResult.ROLLBACK; }) .semantic(RunOptions.Semantic.REQUIRE_NEW), () -> { // implementation return 42; });
将GraalVM 22.0作为默认版本,在构建本地映像时提供了改进的日志记录。
Quarkus现在支持OpenID连接(OIDC)的密钥交换证明(PKCE),这是OAuth 2.0协议上的一个身份层。PKCE是OAuth 2.0的扩展,以减轻公共客户端请求访问令牌时的安全威胁。
维护者决定从物料清单(BOM)中删除AssertJ,因为新版本经常会破坏二进制兼容性。项目现在应该显式声明AssertJ 3.22.0,目前是最新版本。
当使用Elasticsearch扩展名时,在Dev和test模式下运行测试时,Elasticsearch服务会自动启动一个Elasticsearch容器,除非显式禁用,例如,quarkus.devservices.enabled设置为false。
更多内容请查看该链接:www.infoq.com/news/2022/0…
更新日志请查看:www.linuxeden.com/a/103649
转载于:Quarkus 2.8.0引入了细粒度的Transaction API - 掘金 (juejin.cn)