Java 近期新闻:Spring Framework 6、JCP 选举、Valhalla 项目、OpenJDK 更新

2023-03-29 13:53:32 浏览数 (1)

作者 | Michael Redlich

译者 | 平川

策划 | 丁晓昀  

OpenJDK

JEP 434(外部函数 & 内存 API 第二个预览版)已从 JDK 20 的 Candidate 状态提升为 Proposed to Target 状态。这个 JEP 在 Panama 项目的支持下不断演进:JEP 424(外部函数 & 内存 API 预览版)在 JDK 19 中交付;JEP 419(外部函数 & 内存 API 第二轮孵化)在 JDK 18 中交付;以及 JEP 412(外部函数 & 内存 API 第一轮孵化)在 JDK 17 中交付。该提案建议纳入基于前期反馈的改进,并在 JDK 20 中提供第二个预览版。其更新内容包括:统一 MemorySegment 和 MemoryAddress 接口,即内存地址通过零长内存段建模;增强密封接口 MemoryLayout,以便与 JEP 427(Switch 模式匹配第三个预览版)搭配使用。

JEP 436(虚拟线程第二个预览版)上周从 Draft 8295817 状态提升为 Candidate 状态。在 Loom 项目的支持下,该 JEP 提出基于 JDK 19 中交付的 JEP 425(虚拟线程预览版)提供第二个预览版,以便有时间为这项功能的演进提供更多的反馈和经验。需要注意的是,除了少量在 JDK 19 中固化的 JEP 425 API 之外,这第二个预览版本没有提出其他任何改动。

同样,JEP 437(结构化并发第二轮孵化)也从 Draft 8296037 状态提升为 Candidate 状态。这个 JEP(也是在 Loom 项目的支持下)提议基于在 JDK19 中交付的 JEP 428(结构化并发第一轮孵化)在 JDK 20 中重新孵化这个功能,以便有时间获得更多的反馈和经验。唯一的变化是更新了 StructuredTaskScope 类,以支持在任务范围内创建的线程对范围值的继承。这简化了跨线程共享不可变数据的过程。

The Regression Test Harness for the OpenJDK Platform(jtreg)7.1 版发布,主要是修复了 Bug,并改进了 JUnit 测试报告进度的方式。自 2022 年 8 月 jtreg 7 版本发布以来,jtreg 所需的最小 JDK 版本为 11。Oracle 公司 Java 平台组成员 Chritian Stein 表示,近期计划包括 JDK-8296710 的一个 PR,升级到到 jtreg 7.1,并在 2022 年 11 月的最后一周集成到 JDK 中。要了解关于这个版本的更多细节,请查看变更日志。

Oracle 编程语言设计师 Gavin Bierman 更新了 JEP 430(字符串模板预览版,当前处于 Candidate 状态)的规范。

Oracle JVM 架构师 John Rose 提交了两份 JEP 草案 8297156(字段初始化的底层控制)和 8297236(增强 Valhalla 类型统一校验)。

JDK 20

JDK 20 的早期访问构建 Build 24 于上周发布,它是 Build 23 的升级,修复了各种问题。要了解关于这个构建的更多细节,请查看发布说明。

对于 JDK 20,我们鼓励开发者通过 Java Bug 数据库报告缺陷。

Valhalla 项目

在上个版本发布三年多之后,Valhalla 项目早期访问构建 Build 20-valhalla 20-75(代号为 LW4)面向 Java 社区发布,它是基于 JDK 20 的一个不完整版本。根据 Oracle 公司技术咨询人员 David Simms 的推特,这个版本主要是实现 JEP 草案 8277163(值对象预览版,目前处于 Submitted 状态)。要了解关于这个版本的更多细节,请查看发布说明。

JavaFX 20

JavaFX 20 的早期访问构建 Build 8 和 Build 7 正式面向 Java 社区发布。按照设计,JavaFX 应用程序开发人员可以在 JDK 20 上使用 JavaFX 20 构建和测试他们的应用程序了。

JCP(Java Community Process)2022 年 JCP 执行委员会(EC)的选举结果显示,以下成员当选或再次当选,任期两年:

  • 批准席位:阿里巴巴、BellSoft、BNY Mellon、JetBrains、MicroDoc 和 SAP SE
  • 当选席位:Eclipse 基金会和微软
  • 协理席位:Ken Fogel、Java Champion 和 Java Champion 会议组织者
  • 新当选的执委会成员将于 2022 年 11 月 29 日开始任职。

Spring Framework

经过一年多的努力,Spring 团队面向 Java 社区发布了 4 个候选版本、6 个里程碑版本以及期待已久的 Spring Framework 6.0 GA 版本。Spring Framework 6 的最低要求是 JDK 17 和 Jakarta EE 9,它还与最近发布的 Jakarta EE 10 兼容,并通过 Micrometer 嵌入了可观察性,可实现度量和跟踪。要了解关于这个版本的更多细节,请查看新特性列表页。InfoQ 后续将带来更详细的报道。

同时,在 Spring Framework 5.x 版本序列中,5.3.24 版本的新特性包括:新增 SimpleBeanInfoFactory 类,提高自省性能;引入 TestSocketUtils 类,替代已弃用的 SocketUtils 类;减少了由 ProducesRequestCondition 类中定义的 getProducibleMediaTypes() 方法导致的 LinkedHashSet 类的内存分配。要了解关于这个版本的更多细节,请查看发布说明。

Spring Data 2022.0(代号 Turing)发布,新特性有:针对 Graal Native Image 编译的预处理和反射提示;将 Spring Data Envers 合并到 Spring Data JPA 资源库,将 Spring Data R2DBC 合并到 Spring Data Relational 资源库;完善资源库接口。依赖项升级包括 Spring Framework 6.0、JDK 17 和 Jakarta EE 10。要了解关于这个版本的更多细节,请查看发布说明。

Spring Data 2021.2.6 和 2021.1.10 版本发布,主要是修复 Bug,并将依赖项升级到 Spring Data 子项目的相应版本,包括:Spring Data JDBC、Spring Data Neo4j、Spring Data MongoDB、Spring Data Elasticsearch 和 Spring Data Couchbase 等。

Spring Cloud Dataflow 2.10.0 的第二个候选版本发布,主要是修复 Bug,并将依赖项升级到了 Spring Boot2.7.5、Spring Framework 5.3.23 和 Spring Cloud 2021.0.5。要了解关于这个版本的更多细节,请查看发布说明。

Spring Modulith 0.1 的第一个候选版本发布,提供了与模块画布相关的新特性,如:引入 Spring 值类型和 Bean 引用;默认隐藏空行。因为要准备即将发布的 Spring Boot 3.0,所以这将是唯一的候选版本。要了解关于这个版本的更多细节,请查看发布说明以及 InfoQ 的这篇新闻报道。

Quarkus

Red Hat 发布了 Quarkus 2.14.1.Final,提供了 Bug 修复、文档改进,并将 GraalVM/Mandrel 升级到 22.3.0。要了解关于这个版本的更多细节,请查看变更日志。

Quarkus 3.0.0 的第一个 Alpha 版本是作为 GA 版本新特性的预览。该版本以 Quarkus 2.13.3 为基础,以 Jakarta EE 10 规范为目标,但 Jakarta EE 9 下的 Jakarta Persistence 3.0 除外。因此,Hibernate ORM 5.6 仍在支持范围。其他正在进行的工作包括提供 MicroProfile 6.0、Flow API 和 Hibernate ORM 6.0 支持。关于发布计划的更多细节,如何试用 Quarkus 3.0.0.Alpha1 以及如何升级,请阅读这篇博文。

Micronaut

Micronaut 基金会发布了 Micronaut Framework 3.7.4 版本,提供了 Bug 修复、文档改进以及 Micronaut Security、Micronaut AWS 和 Micronaut Serialization 的补丁版本。要了解关于这个版本的更多细节,请查看发布说明。

Piranha

Piranha 22.11.0 发布。该版本被称为 2022 年 11 月的“Pick your distribution”版本,新特性包括:对 Jakarta Enterprise Beans Lite 的初步支持;一个面向 Piranha Micro 的 Jakarta EE 默认数据源;为改善对不同 HTTP 引擎的支持而进行的重构。要了解关于这个版本的更多细节,请查看官方文档和问题跟踪系统。

Eclipse Vert.x

Eclipse Vert.x 4.3.5 发布,修复了在 4.3.4 版本中发现的一些 Bug。该版本的新特性包括:在 vertx-rx 中添加 Vert.x Oracle 客户端;一项更新,在 vertx-web 中使用核心 HttpServerRequestWrapper 类;公开新的 InfluxDb 2.0 配置选项,以便 Vert.x 能够在 vertx-micrometer-metrics 中支持 InfluxDb 2.0 连接。此外,该版本还会继续支持虚拟线程孵化项目,并包含一些弃用项和破坏性更改。要了解关于这个版本的更多细节,请查看发布说明。

Apache 软件基金会

Apache Tomcat 10.1.2 和 9.0.69 版本发布,修复了一些 Bug,如:包含 lambda 表达式的表达式语言求值时的并发问题;修正 HTTP cookies 的 expires 属性所使用的日期格式,使用单个空格而不是单个破折号来分隔日、月和年组件,以符合 RFC 6265 规范。要了解更多细节,请查看 10.1.2 和 9.0.69 版本的发布说明。

Apache Beam 2.43.0 发布,带来了 Bug 修复、新特性和功能改进,包括:支持 Python 3.10;初步实现一个 Runner,让开发者可以在 Dask 上运行 Beam 管道;为所有 Java 线程提供一个名称,改善调试体验;一个在 Java 中使用 Python RunInference 的例子。要了解关于这个版本的更多细节,请查看发布说明。

PrimeFaces

PrimeFaces 12.0.2 发布,主要是修复 Bug,并在 Column 和 Columns 类中添加了 exportRowspan 和 exportColspan 属性。要了解关于这个版本的更多细节,请查看问题列表。

JHipster Lite

JHipster Lite 0.23.0 版本发布:支持 GraalVM Native Image;升级端到端模块依赖关系;将依赖项升级到 Spring Boot 3.0.0-RC2、Angular 14.2.10、Node.js 18.12.1 和 npm 9.1.1。

原文链接:

https://www.infoq.com/news/2022/11/java-news-roundup-nov14-2022/

相关阅读:

Java 近期新闻:WildFly 27、Spring 候选版本、JDK 20 的 JEP、Reactor 项目 (https://www.infoq.cn/article/h3zWfjTmoYFvhXqygxpx)

用现代 Java 调整经典设计模式 (https://www.infoq.cn/article/LlrBgvdmYPGNsVDOZuCZ)

Error Prone 通过检测常见错误帮助改善 Java 代码 (https://www.infoq.cn/article/lpOyO0ClfYLGmmakS3is)

声明:本文为InfoQ翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

如何破解Web3的「存力」难题?

后Kubernetes时代的未来?Wasmer 3.0 发布,可在浏览器外运行 WebAssembly

马斯克要求推特程序员写周报,具体到代码行数;刘强东称将末位淘汰部分京东高管;闰秒终于要被取消了!| Q资讯

阿里云李飞飞:用5年让PolarDB成为“国货之光”| 开源人说

0 人点赞