@levinzhang
2022-03-18T21:00:56.000000Z
字数 3362
阅读 597
by
本期的Java新闻汇总主要会介绍OpenJDK、JDK 19、Jakarta EE 10的新特性,对Spring Cloud子项目的更新,Amazon Corretto为OpenJDK 17所提供的异步、缓冲日志,Quarkus 2.7.4.Final,Hibernate ORM 6.0.0.CR2,Apache Groovy 3.0.10与2.5.16,Apache Camel 3.14.2,JReleaser早期访问版本,JobRunr 4.0.10,JDKMon 17.0.23和FailSafe 3.2.3。
本期的Java新闻汇总主要会介绍OpenJDK、JDK 19、Jakarta EE 10的新特性,对Spring Cloud子项目的更新,Amazon Corretto为OpenJDK 17所提供的异步、缓冲日志,Quarkus 2.7.4.Final,Hibernate ORM 6.0.0.CR2,Apache Groovy 3.0.10与2.5.16,Apache Camel 3.14.2,JReleaser早期访问版本,JobRunr 4.0.10,JDKMon 17.0.23和FailSafe 3.2.3。
JEP 422,即Linux/RISC-V移植,已经从JDK 19的Candidate状态提升到了Proposed to Target状态。这个JEP提议将JDK移植到Linux/RISC-V,这是一个免费开源的RISC指令集架构。它将会支持模板解析器、C1和C2 JIT编译器,以及所有当前主流的GC,包括ZGC和Shenandoah。这个JEP的重点是将该移植集成到JDK主线代码库中。该审议过程计划于2022年3月17日结束。
JDK 18仍处于候选发布阶段,预计将于2022年3月22日发布GA版本。发布说明中包含了一些文件的链接,比如完整的API规范和一个带注释的API规范,它比较了JDK 17(Build 35)和JDK 18(Build 37)之间的差异。InfoQ将以更详细的新闻报道继续跟进相关的消息。
JDK 19早期访问构建版本的Build 13已经发布,其特性是对Build 12的更新,包括对各种问题的修复。更多细节可以在发布说明中找到。
对于JDK 18和JDK 19,我们鼓励开发者通过Java缺陷数据库报告错误。
Eclipse基金会的Jakarta EE开发人员倡导者Ivar Grimstad在他的Hashtag Jakarta EE每周博客中宣布,面向Jakarta EE 10规范的初步发布审议已经在2022年2月28日的最后期限前成功完成。这意味着Jakarta EE 10有望在2022年5月底前如期交付。
2022年的Jakarta EE开发者调查也在上周公布,今年的调查将聚焦在在云原生应用开发方面。
最近,Spring相对平静,Spring Cloud团队提供了两个子项目的小版本发布,它们都是基于Spring Boot 2.6.3和Spring Cloud 2021.0.1。
Spring Cloud Stream Applications的2021.1.1版本已经发布,该项目提供开箱即用的应用程序,它可以作为独立的Spring Boot应用程序运行,该版本的特性主要是改进和缺陷修复。该版本的进一步细节可在发布说明中找到。
由阿里云维护的社区项目Spring Cloud Alibaba的2021.0.1.0版本发布,特性是对Nacos 1.4.2、Apache RocketMQ 4.9.2和Sentinel 1.8.3进行了依赖升级。关于这个版本的更多细节可以在发布说明中找到。
Amazon Corretto团队在发现应用程序在向磁盘写入日志时会被I/O阻塞后,为OpenJDK 17贡献了对可选的异步/缓冲日志的支持(JDK-8229517)。开发者现在可以通过应用-Xlog:sync
开关和统一日志(Unified Logging,UL)框架来避免因I/O导致的GC暂停延长。他们的实验表明,异步日志将实际的CPU时间减少了34.5%,整体的CPU利用率从102.7%增加到171.6%。
Quarkus 2.7.4.Final发布,它是第四个维护版本,包括以下变化:升级到JReleaser 1.0.0-M3;当RESTEasy Reactive与传统REST客户端一起使用时,避免出现NullPointerException
;向OpenApiRecorder
记录INFO
消息,以在生产模式下使用quarkus.http.cors
属性以及更新HTTP头信息的HTTP CORS部分。关于这个版本的进一步细节可以在更新日志中找到。
Red Hat还发布了Quarkus Tools for IntelliJ 1.10.0,该版本的特性包括安全修复,并支持Quarkus的运行/调试配置。
在通往Hibernate ORM 6.0的道路上,第二个候选版本已经发布,特性包括:发布到Maven中央仓库的制件现在已被签名;修复CDI相关的问题,这是由于CDI中一个BeanManager接口的实现已不可用;修正和改进@NotFound注解的映射行为。该版本还通过了Jakarta Persistence 3.1规范的TCK。该团队预计将在未来两到四周内提供正式的GA版本。
Apache Groovy 3.0.10已经发布,其中包括91个缺陷修复、依赖性升级以及以下改进:类型参数检查;TraitComposer类的实例应该用@Generated
注解标记生成方法;枚举值应该被加载到注解属性中。更多细节可以在发布说明中找到。
Apache Groovy 2.5.16已经发布,它包括108个缺陷修复、依赖性升级以及与上文相同的改进,除此之外,还包括如下的特性:@Delegate
注解应检查注解属性上的属性/方法名称,如includes
和excludes
;如果一个final
变量也被声明为volatile
,则会产生编译器错误;AST转换应只为不可变的字段提供getter方法。进一步的细节可以在发布说明中找到。
Apache软件基金会在Camel 3.14版本的发布序列中提供了一个新的LTS小版本发布。3.14.2版本修复了27个缺陷和改进,并且对Spring Boot和Apache Commons Pool(org.apache.commons:commons-pool2)的2.6.4和2.5.10版本的依赖进行了升级。更多细节可以在发布说明中找到。
在通往1.0.0版本的道路上,JReleaser更新了一个早期访问版本,提供了如下的功能:新的可选项,以便在verbose模式下运行jpackage
命令,并删除了所有废弃的源代码。
JobRunr是一个在Java中执行后台处理的工具,它发布了4.0.10版本,包括对以下问题的修复:无法从包含抽象成员的Enum
中反序列化JobDetails类的实例,以及CronExpression
类的实例无法处理12月30日和31日的日期。
JDKMon是一个监控和更新已安装的JDK的新工具,它的最新版本已经提供给Java社区。它由Azul公司的首席工程师Gerrit Grunwald创建,17.0.23版包括:更新的依赖关系,根据漏洞得分进行着色的安全漏洞链接,以及对UI小问题的修复。
Failsafe是一个轻量级、零依赖性的库,用于处理Java 8+中的问题,它发布了3.2.3版本,修正了一个问题,即在RetryPolicy之外使用Timeout接口的实现时,在某些条件下无法触发。关于这个版本的更多细节,可以在更新日志中找到。
查看英文原文:Java News Roundup: JDK 19 and Jakarta EE 10 Updates, Ansynch and Buffered Logging by Amazon Corretto