OpenJDK
JEP 429,作用域值(孵化器),已从 JDK 20 的 Proposed to Target 状态提升为 Target 状态。这个正在孵化的 JEP,最初名为范围局部变量(孵化器,Extent-Local Variables),由Loom项目赞助,提议在线程内部和线程之间共享不可变数据。这优于线程局部变量,尤其是在使用大量虚拟线程时。
JEP 436,虚拟线程(第二次预览),已从 JDK 20 的 Proposed to Target 状态提升为 Target 状态。在Loom项目的支持下,该 JEP 基于 JDK 19 中提供的 JEP 425,虚拟线程(预览版),提出了第二次的预览,以便有时间为该功能的演进提供更多的反馈和经验。需要注意的是,除了少量在 JDK19 中被固化的 JEP 425 API 外,本预览版本没有进行任何更改,因此没有在第二次预览中提出。
JEP 437,结构化并发(第二个孵化器),在 JDK 20 中从 Proposed to Target 状态提升为 Target 状态。该 JEP 也是在Loom项目的支持下,提议基于从 JDK 19 中提供的 JEP 428,结构化并发(孵化器)中重新孵化该特性,以便有时间提供更多的反馈和经验。唯一的变化是更新了 StructuredTaskScope
类,以支持在任务作用域中创建的线程继承作用域值。这简化了跨线程不可变数据的共享。
JDK 20
JDK20早期访问构建版本中的第27版也已于上周发布,其中包括对第 26 版各种问题的修复和更新。有关该版本的更多详细信息,请参阅发布说明。
根据 JDK 20 的发布时间表,Oracle Java 平台组首席架构师Mark Reinhold正式宣布JDK 20 已进入 Rampdown 第一阶段。这意味着主线源代码库已经分支到 JDK稳定代码库,并且不会为JDK 20添加额外的 JEP。至此,计划于 2023 年 3 月发布的 GA 版本将最终包含如下七(7)个特性:
JEP 429,作用域值(孵化器)
JEP 432,记录模式(第二次预览)
JEP 433,switch模式匹配(第四次预览)
JEP 434,外部函数和内存API(第二次预览)
JEP 436,虚拟线程(第二次预览)
JEP 437,结构化并发(第二个孵化器)
对于JDK 20,鼓励开发人员通过Java缺陷数据库报告缺陷。
JDK 21
JSR 396、Java SE 21上周提交,正式宣布 JDK 21 的六人专家组,分别是Simon Ritter (Azul Systems)、Jayaprakash Arthanareeswaran(Eclipse 基金会)、Andrew Haley (红帽)、Christoph Langer(SAP SE)、 Iris Clark(甲骨文)以及Brian Goetz(甲骨文)。 Clark 和 Goetz 将担任规范负责人。 其中值得关注的日期包括 2023 年 6 月至 2023 年 8 月的公开审查,以及 2023 年 9 月的 GA 版本发布。
JDK 21早期访问构建版本的第1版也已于上周发布,其中包括最初的一组版本更新。
Spring 框架
SpringShell 的 2.1.4 和 3.0.0-M3 版本已经提供给Java 社区。2.1.4 版构建在 Spring Boot 2.7.6 之上并提供了缺陷修复。3.0.0-M3 版是构建在 Spring Boot 3.0 之上的第一个里程碑版本,它提供了缺陷修补和新的测试框架,以消除测试 shell 应用程序的传统艰巨任务,在这些任务中测试更复杂,也就是说,超出了方法目标的简单单元测试。有关这些版本的更多详细信息,请参阅2.1.4版本和3.0.0-M3版本的发布说明。
SpringTools 4.17.0已经发布,其中包含对 Spring Tools 4 for Eclipse 2022-12 版本的更改。这个新版本还提供了对以下方面的实验性支持:Spring Boot 版本验证,其中 IDE 将向 Spring Boot 项目提供更新的主要、次要或补丁版本的警报;Spring Boot 升级支持,以协助将现有项目升级到更新的 Spring Boot 版本;以及特定于 Spring 的验证和重构,以指示是否可以或应该更改源代码中的某些内容,以使 Spring 项目与 Spring 中的最新建议或进步保持同步。有关该版本的更多详细信息,请参阅用户指南。
Quarkus
红帽(Red Hat)发布了 Quarkus 2.14.3.Final,该版本对缺陷进行了修复,更新了文档,并将SmallRye Jandex 3.0.5、Stork 1.3.3 和 Apache Mina SSHD构件、 sshd-core
和 sshd-common
升级到了 2.9.2 版本。有关该版本的更多详细信息,请参阅发布说明。
Quarkus 3.0.0 的第二个alpha版本提供了 Jakarta EE 10 流的第二次迭代,该迭代正在进行中,计划于 2023 年 1 月底发布下一个 alpha 版本。Quarkus 3.0.0.Alpha2 基于 Quarkus 2.14.3.Final。有关该版本的更多详细信息,请参阅变更日志。
Open Liberty
IBM发布了 Open Liberty 22.0.0.13-beta,支持:Jakarta EE 10 规范Jakarta Authentication 3.0、Jakarta Authorization 2.1、Jakarta Security 3.0和Jakarta Faces 4.0;即将发布的MicroProfile 6.0;以及配置首次故障数据捕获(FFDC)日志以在 FFDC 日志文件达到指定期限后自动清除 FFDC 日志的能力。
IBM 还提议根据Eclipse公共许可证2.0版重新授权 Open Liberty,以便 Open Liberty 可以继续作为 MicroProfile 和 Jakarta EE 规范的兼容实现以做出贡献。为 Java 社区创建了一个 GitHub议题,以提供反馈并监控进度。
GraalVM Native Build Tools
在通往 1.0 版本的道路上,Oracle实验室发布了Native Build Tools 0.9.19版本,这是一个 GraalVM 项目,由与 GraalVM Native Image 互操作的插件组成。这个最新版本提供了:修复了编译任务, nativeCompile
,每当本机运行参数发生变化时,它就会过时;修复了默认情况下无法从 Maven Central 下载的 GraalVM 元数据存储库的问题;并从工作流中删除了 dev
版本。有关该版本的更多详细信息,请参阅变更日志。
Apache 软件基金会
Apache Tomcat的10.1.4和9.0.70 版本提供了显著的变化,其中包括: WebappLoader
类的重构,因此如果配置为在加载类时使用转换器,则它仅对 Jakarta EE 的迁移工具具有运行时依赖性(仅 10.1.4 版本);修复了当 HTTP/2 流被重置时当前活动流计数没有减少的问题;以及Apache Commons Daemon 1.3.3 的更新。有关这些版本的更多详细信息,请参阅10.1.4版和9.0.70版的发布说明。
Apache Tomcat 11.0.0(alpha)的第一个里程碑版本提供了:与Jakarta Servlet, Jakarta Server Pages和Jakarta Expression Language规范的当前开发版本保持一致;BASIC 认证现在默认使用 UTF-8;从字节到字符的转换现在将触发异常,而不再是替换给定编码的无效字节序列。有关该版本的更多详细信息,请参阅变更日志。
用于 Jakarta EE 的Apache Tomcat Migration工具 1.0.6 版本已经发布,其特性包括:正确处理 1.0.5 版本中引入的 javax.annotation
包的回归;并允许并行使用 ClassConverter
类。有关该版本的更多详细信息,请参阅变更日志。
Hibernate
Hibernate ORM 6.1.6.Final 也已发布,提供了缺陷修复和性能改进,例如:在二级缓存中发现引用时,初始化实体,避免不必要地调用属性 setter 方法;一个改进的方法,用于检查 HQL 查询结果的重复项,从而减少了内存中 ORM 处理的数量;以及 JDK-8180450(二级超级缓存问题不能很好地扩展)中所描述的性能限制缓解措施。
Eclipse Vert.x
针对在 4.3.5 版本中发现的大量缺陷报告,Eclipse Vert.x 4.3.6发布了新特性,例如:允许多个正则表达式在 CORS 中允许下游项目保留他们的配置( vertx-web
模块);对 Hazelcast 4.2.6 进行依赖项升级( vertx-hazelcast
模块);并为 Tuple
接口( vertx-sql-client
模块)中的 of()
方法添加了类型检查。有关该版本的更多详细信息,请参阅发布说明。
Resilience4j
Java 容错库Resilience4j的2.0.2和2.0.1版本已经发布,其特性包括:修复了未在 recordResultPredicate
属性上打开的 CircuitBreaker
、CheckedSupplier
和 CheckedFunction
接口的相应装饰器实现;通过 resilience4j-spring-boot3
和 resilience4j-spring6
构件支持 Spring Boot 3.0;即使配置文件中没有实例条目,也可以应用 Spring Boot 定制程序。有关 Resiliece4j 的更多详细信息,请参阅InfoQ的新闻报道。
JDKMon
JDKMon 17.0.41版本是一个用于监控和更新已安装 JDK 的工具,已于上周发布。这个新版本由 Azul 首席工程师Gerrit Grunwald创建,支持:对 Gradle 7.6 及其他版本的依赖升级;以及一个单独的 GraalVM 构建下载对话框,包括Gluon、Mandrel和Liberica Native Image Kit (NIK)。
Ktor
JetBrains发布了 Ktor 的 2.2.1 和 2.2.0 版本,这是一个用于创建微服务和 Web 应用程序的异步框架,其中包括:OpenAPI 文档生成;用于创建自定义客户端插件的新 API,以通过一组处理程序访问处理请求和响应的不同阶段;一个新的 RateLimit
插件,用于设置传入请求的速率限制;以及用于序列化/反序列化数据对象的新 ProtoBuf序列化器。
JakartaOne Livestream 2022
第四届JakartaOne Livestream 2022年年度会议于上周举行,来自 Java 社区的演讲嘉宾就以下主题进行了演讲:Jakarta EE Core Profile;MicroProfile 6.0;Piranha Cloud,Testcontainers;Jakarta NoSQL 和 Cosmos DB;和云原生 Java。虚拟会议由 Jakarta EE 项目经理Tanja Obradovic、Jakarta EE 高级营销经理Shabnam Mayel 和 Jakarta EE 开发人员倡导者 Ivar Grimstad主持,会议还包括 Eclipse 基金会执行董事Mike Milinkovich的主题演讲,以及代表 Payara、Tomitribe、Oracle、Microsoft 和 IBM 的 Java 知名人士进行的行业主题演讲。
原文链接:
https://www.infoq.com/news/2022/12/java-news-roundup-dec05-2022/
相关阅读:
Java 近期新闻:JDK 20 的 JEP 提升为 Targeted 状态,亚马逊云科技推出 Lambda SnapStart 特性
评论