Java 周报总结(2024 年 8 月 5 日)
本周的 Java 周报涵盖了多个重要发布和更新,主要包括 JDK 23 和 Gradle 8.10 的首个候选版本、JEP 483(Ahead-of-Time Class Loading & Linking)、Hibernate ORM 6.6、Hibernate Search 7.2、Hibernate Reactive 2.4 的发布,以及 Apache Tomcat 和 GlassFish 8.0.0-M7 的多个版本更新。
OpenJDK
JEP 483: Ahead-of-Time Class Loading & Linking
JEP 483 已从草案状态晋升为候选状态。该提案旨在通过监控应用程序的一次运行,并将所有类的加载和链接状态存储在缓存中,以便在后续运行时立即使用,从而提升 Java 应用程序的启动时间。这一特性将为未来改进启动和预热时间奠定基础。
JDK 23
JDK 23 的 Build 36 已发布,修复了多个问题。根据 JDK 23 的发布计划,Oracle 的 Java 平台组首席架构师 Mark Reinhold 宣布 JDK 23 已进入首个候选版本阶段,预计 GA 版本将于 2024 年 9 月 17 日发布。最终版本将包含 12 个新特性,如 JEP 455(Primitive Types in Patterns, instanceof, and switch)、JEP 466(Class-File API)、JEP 467(Markdown Documentation Comments)等。
JDK 24
JDK 24 的 Build 10 也已发布,修复了多个问题。开发者可以通过 Java Bug Database 报告 JDK 23 和 JDK 24 的 bug。
GlassFish
GlassFish 8.0.0-M7 发布了多个重要变更,包括移除了 BundleDescriptor 类的 toString() 方法中对 null 实例的 IllegalArgumentException 抛出,移除了对已弃用的 SecurityManager 的引用,并实现了 Jakarta Concurrency 3.1,为即将发布的 Jakarta EE 11 做准备。
Quarkus
Quarkus 3.13.1 是 3.13 系列的首个维护版本,修复了多个 bug,并改进了文档。其中包括在 Dev UI 中使用 JsonRPC 扩展时支持 CompletableFuture,避免了 ApplicationLifecycleManager 类在关闭时可能出现的 NullPointerException,以及修复了 Spring Data JPA 中 findFirstBy 方法可能出现的 NullPointerException。
Open Liberty
IBM 发布了 Open Liberty 24.0.0.8-beta,引入了无版本特性,简化了 MicroProfile、Jakarta EE 和 Java EE 平台的兼容性选择。该版本还提供了 MicroProfile 7.0 和 Jakarta EE 11 的预览。
Hibernate
Hibernate ORM 6.6.0.Final 提供了对 Jakarta Data 1.0 规范的完整实现,并引入了新的 @ConcreteProxy 注解,取代了已弃用的 @Proxy 和 @LazyToOne 注解。Hibernate Search 7.2.0.Final 改进了 Search DSL,并升级了对 OpenSearch 和 Elasticsearch 的兼容性。Hibernate Reactive 2.4.0.Final 则修复了多个问题,并升级了 Hibernate ORM 6.6.0.Final 的依赖。
Apache Tomcat
Apache Tomcat 发布了 11.0.0-M24、10.1.28 和 9.0.93 版本,修复了多个 bug,并引入了对 JEP 454(Foreign Function & Memory API)的兼容性支持,以及对 RFC 8297(An HTTP Status Code for Indicating Hints)规范的支持。
Infinispan
Infinispan 15.0.7.Final 是第七个维护版本,修复了多个问题,包括当用户属性格式错误时抛出更精细的异常,以及修复了 IntermediateCacheStream 类中 toArray() 方法的 typo 问题。
Gradle
Gradle 8.10 的首个候选版本发布,修复了多个问题,并改进了配置缓存的性能,包括显著减少缓存文件大小和加速缓存加载时间。此外,还改进了 GradleLifecycle API 的行为和回调执行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。