近期 Java 动态汇编主要关注一些项目的新特性,包括 OpenJDK、JDK 18、Loom 项目 Build 18-loom+7-288、多个 Spring 项目的新版本、Quarkus 2.5.1.Final、WildFly 26 Beta 1、Open Liberty 21.0.0.12、Hibernate ORM 6.0.0-Beta2、Eclipse Mojarra 2.3.17、GraalVM Native Build Tools 0.9.8、Groovy 4.0.0-RC1、Eclipse Collections 11.0.0、IntelliJ IDEA 2021.3 和 JReleaser 0.9.0。
JEP 421,即废弃终结化以将其移除(Deprecate Finalization for Removal),已经从 JDK 18 的 Candidate 状态提升到了 Proposed to Target 状态。这个 JEP 要废弃自 JDK 1.0 就引入的终结化(finalization)机制,以便在未来的版本中将其移除。尽管终结化机制在设计之初是为了避免资源泄露的,但是它存在几个严重的缺陷,比如不可预测的延迟、不受控制的行为和线程,而且总是会默认启用。对 JDK 421 的审查会在 2021 年 12 月 7 日结束。
JDK 18 早期访问版本的 Build 26 已经发布,它是对 Build 25 的更新,包括对各种问题的修复。更多细节可以在发布说明里面找到。
JDK 18 目前的特性集如下所示:
JEP 400:默认采用 UTF-8(UTF-8 by Default)
JEP 408:简单 Web 服务器(Simple Web Server)
JEP 413:Java API 文档中的代码片段(Code Snippets in Java API Documentation)
JEP 416:使用方法句柄重新实现核心反射(Reimplement Core Reflection with Method Handles)
JEP 417:Vector API(第三轮孵化)
JEP 418:互联网地址解析 SPI(Internet-Address Resolution SPI)
JEP 419:外来函数 & 内存 API(Foreign Function & Memory API,第二轮孵化)
JEP 420:switch 的模式匹配(Pattern Matching for switch,第二轮审查)
JEP 421:废弃终结化以将其移除(Deprecate Finalization for Removal) (Proposed to Target)
鼓励开发人员通过 Java Bug 数据库提交缺陷。
Loom 项目 18-loom+7-288 的早期访问构建版已经向 Java 社区发布,它基于 JDK 18 早期访问构建版本的 Build 25。
在经历了三个里程碑版本和一个候选版本之后,Spring Cloud 2021.0.0(代号 Jubilee)业已发布,其特性包括升级和修正了多个 Spring Cloud 子项目,如 Spring Cloud Sleuth、Spring Cloud Gateway 和 Spring Cloud Kubernetes。Spring Cloud 21.0.0 与 Spring Boot 2.6.1 兼容。
在 Spring Boot 2.6 发布仅一周之后,维护版本 2.6.1 就发布了,其中包括了 11 个缺陷修正和文档的改善。
VMware 的一份安全报告显示,Spring AMQP(Spring for RabbitMQ)2.4.0、2.3.12 和 2.2.20 版本已经解决了 CVE-2021-22095 的问题,即 Message 中的 toString() 方法可能会生成一个大到足以抛出 OutOfMemoryError 异常的字符串对象。Spring Boot 2.6.0 和 2.5.7 版本分别包括 Spring AMPQ 2.4.0 和 2.3.12 版本。
Spring Authorization Server 0.2.1 发布了新的功能,例如,为用户信息和客户端配置实现了新的端点;重新定义了 sample 的结构;允许更新类 OAuth2AuthorizationConsent 的实例;允许对 OAuth2AuthenticationContext 类创建子类。更多细节可以在发布说明中找到。
Spring Cloud Function 3.2 发布了新的功能,例如,支持 gRPC;增强了对 CloudEvents 规范的支持;为 FunctionCatalog 接口提供了新的 actuator 端点;改进了对 AWS 自定义运行时的支持;以及支持 AWS 中的 Spring Native。
在 Quarkus 2.5.0 发布一周之后,一个维护版本 Quarkus 2.5.1.Final 发布,该版本提供了一些缺陷修正和依赖升级。更多细节可以在更新日志中查阅。
Red Hat 也发布了 Quarkus Tools for IntelliJ 1.9.0,在 Quarkus 的新项目向导中添加了对 Quarkus streams 的支持,并修复了与 IntelliJ 2021.3 的兼容性问题。关于如何使用平台和流发现扩展的细节,可以在这篇博客文章中找到。
红帽发布了 WildFly 26 Beta1,其新功能包括:针对 Reactive Messaging 2.0 更新其 MicroProfile 反应式消息传递快速入门;用 getParameterCount() 取代对 getParameterTypes().length 的多次调用;放弃对 WildFly 旧版本中已废弃功能的支持,并确保断言参数应以正确顺序传递。
IBM 已经将 Open Liberty 21.0.0.12 从其测试版中推广了出来,其特性是支持 Jakarta EE 9.1、可配置的服务器响应头,以及缺陷修正。
IBM 还发布了 Open Liberty 22.0.0.1-beta,支持即将发布的 MicroProfile 5.0、MicroProfile Rest Client 3.0 以及对 JPA 的增强,例如,开发人员现在可以在 server.xml 文件中声明默认的 JPA 持久性属性。
在通往 Hibernate ORM 6.0.0 的道路上,第二个 beta 版已经发布,其特性包括,JDK 11 作为最低版本;对自定义复合类型的原始支持;以及对非 Hibernate 核心模块 hibernate-envers、hibernate-jcache 和 hibernate-spatial 的更新。更多资源可以在用户指南、迁移指南和 Hibernate 6.0 发布页中找到。
Mojarra 2.3.17 是一个维护版本,它支持 PrimeFaces 11.0。这个版本的 Mojarra 是 Jakarta EE 8 下 Jakarta Server Faces 2.3 规范的兼容实现。对于 Jakarta EE 9 下的 Jakarta Server Faces 3.0,Mojarra 3.0.2 是兼容实现。
在通往 1.0 版本的道路上,Oracle Labs 发布了 0.9.8 版本的 Native Build Tools,这是一个 GraalVM 项目,包括与 GraalVM Native Image 互操作的插件。这个最新版本对 Maven 和 Gradle 插件进行了大量的缺陷修正和改进,并与 JUnit 实现了更好的互操作性。
Object Computing, Inc. 的首席软件工程师 Paul King 日前宣布,Groovy 4.0.0-RC1 现在已经发布。新功能包括 switch 表达式、records 和 Groovy-Integrated Query (GINQ)(这是一个用类似 SQL 语法进行查询的 DSL)。
BNY Mellon 的高级专业开发人员、Eclipse Collections 项目的提交者和匹兹堡 JUG 的负责人 Sirisha Pratha 日前宣布,一个全面的 Java 集合库 Eclipse Collections 11.0.0 业已发布。这个版本的重点是 Java 社区要求的新 API 和功能。更多细节可以参阅发布说明。
JetBrains 发布了 IntelliJ IDEA 2021.3,其中包括一系列新功能,包括对远程后端 beta 版的支持,通过这个特性开发者可以连接到远程机器,在上面部署 IDE 后端,并像在本地机器上一样在项目上进行工作。InfoQ 将以更详细的新闻报道进行跟进。
JUnit 5.8.2 发布,它对 @CsvSource 和 @CsvFileSource 注解进行了更新,支持可视为 CSV 文件的文本块,显示名称中的 CSV 头以及对自定义引用字符的支持。更多细节可以在发布说明中找到。
JReleaser 0.9.0 已经发布,改进了 Jlink 汇编器,能够使用 Foojay Discovery API 配置 JDK,更新了 Gradle 插件,并将 MacPorts 添加到了 JReleaser 打包器列表中。更多细节可以在更新日志中找到。
第三届 JakartaOne Livestream 虚拟会议于 2021 年 12 月 7 日开幕,最初 12 场一小时的议题将于美国东部时间上午 6:00 开始。这些议题主要集中在与 Jakarta EE 和 MicroProfile 相关的话题上,包括由众多 Java 名人发表的主题演讲和 15 分钟的分享。更多的细节可以在 InfoQ 的新闻报道中找到。
原文链接:
https://www.infoq.com/news/2021/12/java-news-roundup-nov29-2021/
你也「在看」吗?👇