@Rays
2021-12-22T12:00:50.000000Z
字数 3216
阅读 555
摘要: 自2021年12月6日开始的一周中,Java要点事件包括OpenJDK相关JEP、JDK 18进入Rampdown第一阶段、JDK 19专家组成立、Log4J中发现远程代码执行漏洞、MicroProfile 5.0,以及Spring、Hibernate和Quarkus的小版本发布(point release)。
作者: Michael Redlich
正文:
自2021年12月6日开始的一周中,Java要点事件包括OpenJDK相关JEP、JDK 18进入Rampdown第一阶段、JDK 19专家组成立、Log4J中发现远程代码执行漏洞、MicroProfile 5.0,以及Spring、Hibernate和Quarkus的小版本发布(point release)。
已完成审核的JEP 421,即“弃用并移除Finalization功能”,在JDK 18中的状态由“建议定向发布”升级为“定向发布(Targeted)”。该JEP将在此后的JDK发布版中弃用自JDK 1.0就引入的对象终止(Finalization)机制。对象终止机制最初设计用于避免产生资源泄露问题,但默认启用情况下会导致不可预测延迟、非受控行为和线程等多处严重缺陷。
JDK 18早期访问构建(early-access builds)的第27次构建(Build 27)于上周公开提供。相对于第26次构建,本次的关键更新包括对多处问题的修正,细节详见“发行说明”。
遵照JDK 18的发布规划,Oracle Java平台组首席架构师Mark Reinhold官宣JDK 18进入Rampdown第一阶段。这意味着JDK源代码仓库的主线已分支为稳定代码库,并且JDK 18中不会再额外添加任何JEP。至此,计划于2022年3月发布GA版的9个功能集最终为:
鼓励开发人员通过Java Bug Database上报软件缺陷。
JSR 394,即Java SE 19,于上周提交,正式宣布了JDK 19的六人专家组成立。他们分别是来自Azul Systems的Simon Ritter](https://www.linkedin.com/in/siritter/)、来自Eclipse基金会的Manoj Palat、来自红帽的Andrew Haley、来自SAP的Christoph Langer 、来自Oracle的Iris Clark和Brian Goetz,由Clark和Goetz担当该JSR的牵头人。其中给定的关键时间点包括:2022年6月至8月期间开放审核,2022年9月发布GA版。
JDK 19早期访问构建版的第1次构建(Build 1)也于上周发布。
上周,广为使用的Log4j2日志库被发现存在零日攻击漏洞,涉及2.0到2.14.1间的各版本。远程代码执行漏洞CVE-2021-44228可利用Java Naming和Directory Interface中存在的缺陷,在日志中执行恶意代码。Log4j2的贡献者迅速解决了漏洞,并发布了新版本2.15.0。InfoQ对此第一时间跟进并做了详细报道。
由MicroProfile工作组正式发布的MicroProfile 5.0,对8个社区开发的API全部做了更新,即Config 3.0、Fault Tolerance 4.0、Health 4.0、JWT Authentication 2.0、Metrics 4.0、OpenAPI 3.0、OpenTracing 3.0和Rest Client 3.0。
最初基于各自相应JSR的CDI、JAX-RS、JSON-P和JSON-B API,现在已转为相应的Jakarta EE 9.1规范声明,分别为Jakarta 上下文和依赖注入3.0(CDI)、Jakarta RESTful Web服务3.0(JAX-RS)、Jakarta JSON处理2.0(JSON-P)和Jakarta JSON绑定2.0(JSON-B)。Jakarta注解(Annotations)2.0也已于近期添加到MicroProfile API核心集中。该规范声明中给定了一组表示通用语义概念的注解,用于支持声明式编程。
在独立规范声明中,只有上下文传播(Context Propagation)1.3做了更新。
InfoQ将对此进展做持续跟踪报道。
上周Spring团队聚焦于解决Spring Boot中的Log4j2漏洞问题,框架只有三次小版本发布。Spring Boot应用的开发维护人员只有在选用了Log4j2默认日志的情况下,才会受该漏洞的影响。
已发布的Spring Tools 4 for Eclipse, Visual Studio Code, and Theia 4.13.0中,包括Eclipse 2021-12和针对Apple Silicon平台(ARM M1)的构建。更多细节,提供在“变更日志”中。
最近发布的Spring Cloud 2021.0.0(也称为Jubilee)中提供Spring Cloud Sleuth 3.1.0,支持Spring Cloud Config、Spring Cloud Stream Reactive、Spring Session和Spring Cloud Task等一系列Spring相关技术,还提供对Cassandra的支持。
Spring Native 0.11也已发布,其中新特性包括支持Spring Data MongoDB延迟加载(lazy loading )的新注解@DocumentReference
、 恢复对Spring Integration的支持、支持非Spring Boot测试。Spring Native的使用环境是GraalVM 21.3、Spring Boot 2.6和Spring Cloud 2021.0。
作为Hibernate ORM 5.6版发行系列中的一个维护版本,5.6.2.Final版根据Java社区的反馈,恢复了部分在5.6.1.Final版中确定的弃用。这是因为“许多用户明确指出,这些弃用并非‘可操作的’,因而令人困惑。即在没有可替代API的情况下,此类弃用问题除视而不见之外无法得以解决。” 更多细节,参见“问题列表”。
已发布的Hibernate Search 6.1.0.Beta1版,包括可动态扩展的分布式索引、支持Jakarta EE 9.1、自定义Elasticsearch索引映射等新特性。其中还有一些完全变更,需注意协调策略database-polling
已重命名为outbox-polling
。
红帽上周发布了Quarkus 2.5的第2个维护版本2.5.2.Final,其中修复了大量软件缺陷,并对文档做了改进。更多细节,参见“变更日志”。
原文链接: Java News Roundup: JDK 18 in Rampdown, JDK 19 Expert Group, Log4j2 Vulnerability, MicroProfile 5.0](https://www.infoq.com/news/2021/12/java-news-roundup-dec06-2021/)