Java 最新动态:JDK 20 发布计划、OpenJDK 更新、GraalVM 22.3、JReleaser 1.3.0
来源:InfoQ
作者:Michael Redlich、译者:明知山、策划:丁晓昀
OpenJDK
JEP 434,即外部函数和内存API(第二次预览),在过去的一周从Draft 8293649进入到 Candidate 状态。这个 JEP 在Panama 项目 中从前到后的演化路径:JEP 424,即外部函数和内存API(预览),在 JDK 19 中交付;JEP 419,即外部函数和内存API(第二轮孵化器),在 JDK 18 中交付;JEP 412,即外部函数和内存 API(孵化器),在 JDK 17 中交付。这个 JEP 提议结合基于反馈所做出的改进在 JDK 20 中进行第二次预览。更新包括:统一了MemorySegment 和MemoryAddress 接口,也就是说,内存地址由零长度的内存段组成;MemoryLayout 封印接口得到增强,方便与 JEP 427(switch 中的模式匹配(第三次预览))结合使用。
JEP Draft 8295817,即虚拟线程(第二次预览),在过去的一周已经进入到 Submitted 状态。这个JEP 属于Loom 项目,提议对JEP 425(在 JDK 19 中交付的虚拟线程(预览))进行第二次预览,争取为这个特性的演进获得更多额外的反馈和经验。需要注意的是,除了一小部分来自 JEP 425 的 API 在 JDK 19 中成为永久 API(因此不在第二次预览中提出)之外,本次预览没有其他的变更。
类似地,JEP Draft 8296037,即结构化并发(第二轮孵化器),已经进入到 Submitted 状态。这个 JEP 也属于 Loom 项目,它提议对 JEP 428(结构化并发(孵化器),在 JDK 19 中交付)进行二次孵化,并在 JDK 20 中交付,争取为这个特性的演进获得更多额外的反馈和经验。唯一的变化是更新了StructuredTaskScope 类,用以支持在任务作用域中创建的线程继承作用域值。这简化了跨线程共享不可变数据的过程。
JDK 20
JDK 20早期访问版本 的Build 21 也在上周发布了,其中包括对各种问题的修复。关于这个版本的更多细节可以在 发布说明 中找到。
Oracle Java 平台组首席架构师Mark Reinhold 正式宣布JDK 20 的发布计划如下:
Rampdown Phase One(从主线分叉):2022 年 12 月 8 日; Rampdown Phase Two:2023 年 1 月 19 日; Initial Release Candidate:2023 年 2 月 9 日; Final Release Candidate:2023 年 2 月 23 日; General Availability:2023 年 3 月 21 日。
对于JDK 20,开发者可以向Java Bug 数据库 报告 Bug。
Loom 项目
Loom 项目早期访问版本的 Build 20-loom+20-34 已经对 Java 社区可用,并且是基于 JDK 20 早期访问版本Build 20 构建的。
Spring Framework
在通往Spring Integration 6.0.0 的道路上,第一个候选版本的特性包括:RabbitMQ Streams、Kotlin 协程和 GraalVM 多语言 JavaScript 调用。这个版本还移除了Spring Data for Apache Geode。关于这个版本的更多细节可以在 发布说明 中找到。
面向 Eclipse、Visual Studio Code 和 Theia 的 Spring Tools 4.16.1 已经发布,为 Eclipse 2022-12 里程碑版本提供了 Spring Tools 4 的早期访问版本。由于 Eclipse 2022-09 附带了 m2e 2.0 的一个主要更新,因此打算从 Spring Tools 4.15.3 开始升级的开发人员需要遵循这个迁移指南。关于这个版本的更多细节可以在版本说明中找到。
GraalVM
Oracle Labs发布 了 GraalVM 22.3:支持 JDK 19 和 jlink;原生镜像监控和开发者体验方面的更新。正如在 JavaOne 上宣布的那样,GraalVM CE Java 代码将成为 OpenJDK 的一部分。这是 2022 年的最后一个特性版本。关于这个版本的更多细节可以在发布说明和这个 YouTube视频 中找到。InfoQ 随后将提供更详细的新闻报道。
Open Liberty
IBM 将 Open Liberty 22.0.0.11 从 Beta 版提升为交付版本:支持 JDK 19 和分布式安全缓存,多个 Liberty 服务器可以通过使用 JCache 提供程序来共享缓存。这个版本还解决了由nokogiri (现已不存在的 org.cyberneko.html 的一个分支)引发的CVE-2022-24839 漏洞,在解析格式不正确的 HTML 标记时会抛出OutOfMemoryError 异常。
Open Liberty 22.0.0.12-beta 版本也发布了,提供了对六个新的Jakarta EE 10 规范的支持:Jakarta Batch 2.1、Jakarta XML Web Services 4.0、Jakarta Server Pages 3.1、Jakarta Standard Tag Library 3.0、Jakarta Messaging 3.1 和Jakarta WebSocket 2.1。在即将发布的 MicroProfile 6.0 中还支持两个更新的规范:JWT Propagation 2.1 和MicroProfile Metrics 5.0。
Eclipse Vert.x
Eclipse Vert.x 3.9.14 版本已经发布,包含了依赖项升级:GraphQL Java 19.2、Netty 4.1.84.Final、Protocol Buffers Java 3.21.7 和 Jackson Databind(解决了 CVE-2022-42003 漏洞,即 Jackson Databind 中的拒绝服务漏洞)。3.9 版本系列的生命周期计划在 2022 年底结束,因此建议开发人员升级到 Vert.x 4.x 版本。关于这个版本的更多细节可以在版本说明中找到。
Apache 软件基金会
Apache TomEE 8.0.13 已经发布,特性包括:一个关于如何使用属性提供程序的示例;依赖升级——Jakarta Faces 2.3.18、MyFaces 2.3.10、Hibernate Integration 5.6.9.Final、BatchEE 1.0.2、Tomcat 9.0.68和SnakeYAML 1.33。关于这个版本的更多细节可以在发布说明中找到。
JReleaser
JReleaser 是一个简化创建项目发布的 Java 辅助工具,它的 1.3.0 版本已经可用,特性包括:一个新的 WorkflowListener 扩展,可以对工作流事件做出反应;增加安装原生镜像组件的选项;支持将 JAR 和 POM 部署到 Maven 兼容的存储库中。关于这个版本的更多细节可以在更新日志中找到。
Hibernate
5.11.11.Final 和 5.10.13.Final 版本的Hibernate Search 已经发布,包括依赖项升级:分别是Hibernate ORM 5.4.33.Final 和 5.3.28.Final。5.10.13 版本还修复了在Spring Boot 2.4.0+ 和Spring Framework 5.3+ 中用EntityManager 接口创建FullTextSession 时抛出的ClassCastException。
PrimeFaces
开源 UI 组件库实现PrimeFaces已经发布了 7.0.30、8.0.22、10.0.17、11.0.9 和 12.0.1 单点版本。新特性和增强包括:为JpaLazyDataModel 类实现一个 IN 匹配模式,即 filterMatchMode="in";确保在使用SelectCheckboxMenu 类时,emptyLabel 属性不显示文本。
已发布的 PrimeVue 3.18.0 还提供了这些特性:对所有菜单组件的可访问性增强;FileUpload 的模板支持;响应式 Paginator。关于这个版本的更多细节可以在更新日志中找到。
JDKMon
JDKMon 是一个监控和更新已安装 JDK 的工具,它的17.0.37版本已经在上周对 Java 社区可用。这个工具由 Azul 首席工程师Gerrit Grunwald创建,新版本修复了一个检测 GraalVM 构建的问题。
EclipseCon
EclipseCon 2022于上周在德国路德维希堡的Schlosspark论坛 上举行,来自 Java 社区的演讲嘉宾探讨了 Java、开源方式、云原生技术以及质量和安全方面的话题。大会也包含了年度社区日。
原文链接:
https://www.infoq.com/news/2022/10/java-news-roundup-oct24-2022/
相关阅读:
Java 近期新闻:JEP 更新,GraalVM 贡献给 OpenJDK,JavaOne 重启(https://www.infoq.cn/article/kzzbQg5zgissaCcJlfey) 用现代 Java 调整经典设计模式(https://www.infoq.cn/article/LlrBgvdmYPGNsVDOZuCZ) Error Prone 通过检测常见错误帮助改善 Java 代码(https://www.infoq.cn/article/lpOyO0ClfYLGmmakS3is)
推荐阅读
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。