Java 近期新闻综述,涉及来自 OpenJDK、JDK 19 的 JEPs、Lilliput 项目的里程碑版本、Spring Framework 5.3.20 和 5.2.22、Open Liberty 22.0.0.5 和 22.0.0.6-beta、Quarkus 2.9.0.Final、Apache Camel Quarkus 2.9.0、WildFly Preview 27 Alpha1、Hibernate Search 6.1.5、JobRunr 5.1.1、Piranha 22.5.0、Failsafe 3.2.4 等的特性,以及 Micronaut 的调查结果和 Devoxx UK 会议。
甲骨文(Oracle)的 Java 平台组首席架构师 Mark Reinhold 提议将当前的openjdk.java.net域名迁移到openjdk.org。Reinhold 表示,尽管为 Java 社区提供了良好的服务,但是当前的域名还是令人困惑。由于许多 OpenJDK 的开源社区都是在.org顶级域名下构建其基础设施的。所以 Reinhold 认为,这种迁移是有益的。
经过一段更长时间(长于通常的一周)的扩展审查后,JDK 19 对于 JEP 427,Switch 模式匹配(第三个预览版本)已从 Proposed to Target 提升为 Targeted。该 JEP 在 Amber 项目的赞助下,整合了对前两轮预览反馈的增强改进:JEP 406,Switch 模式匹配(预览版)(在 JDK 17 中提供)和 JEP 420,Switch 模式匹配(第二个预览版本)(在 JDK 18 中提供)。对 JEP 420 进行的更改包括:用switch块中的when子句替换守护模式(Guarded Patterns);当选择器表达式的值为null时,模式开关的运行时语义与遗留开关的语义更加一致。
经过为期一周的审查,JEP 424,外部函数和内存 API(预览版),已经从 JDK 19 的 Proposed to Target 提升到 Targeted 状态。该 JEP 在 Panama 项目的赞助下不断演进:JEP 419,外部函数和内存 API(第二个孵化版本),在 JDK 18 中提供;和 JEP 412,外部函数和内存 API(孵化版),在 JDK 17 中提供;整合了基于 Java 社区反馈的改进。
最初被命名为记录模式和数据模式(预览版)的 JEP 405,记录模式(预览版),已经从 JDK 19 的 Candidate 提升到 Proposed to Target 状态了。该 JEP 也是在 Amber 项目的赞助下,提议使用记录模式来增强语言,以解构记录值。记录模式可以与类型模式结合使用,以“支持强大的、声明式的、并可组合的数据导航和处理形式”。最近,通过 JEP 406,Switch 模式匹配(预览版)(在 JDK 17 中提供)和 JEP 420,Switch 模式匹配(第二个预览版本)(在 JDK 18 中提供),扩展了类型模式以用于 switch case 标签。预计审查将于 2022 年 5 月 19 日结束。
JDK 19 早期访问构建版本的第 22 版已于上周发布,其中包括对第 21 版中各种问题的修复及更新。更多详细信息请参阅发布说明。(https://jdk.java.net/19/release-notes)
对于 JDK 19,鼓励开发人员通过 Java 缺陷数据库来报告缺陷。
Lilliput 项目是由红帽(Red Hat)的 Java 平台高级首席软件工程师 Roman Kennke 发起的一个 Java 项目,该项目已经到达了第一个里程碑,目标是将对象报头信息减少到 64 位。
Spring Framework 的 5.3.20 版本和 5.2.22 版本已经发布,以提供针对 CVE-2022-22970(通过数据绑定到 MultipartFile 或 Servlet 部分进行 Spring 框架的 DoS 攻击)以及 CVE-2022-22971(通过 WebSocket 上的 STOMP 进行 Spring 框架的 DoS 攻击)的修复。这两个版本还通过CachedIntrospectionResults类提供了精细化的属性内省。
在通往 Spring Framework 6.0.0 的道路上,第四个里程碑版本已经发布,其中包括了对 5.3.20 版本的所有修复以及 39 个修复和改进,其中包括:删除了过时的NestedIOException类;一个允许 HTTP 状态码不是Java enum的新HttpStatusCode接口;以及对 Jakarta Concurrency 3.0 的支持。`
IBM 已将 Open Liberty 22.0.0.5 的 beta 版本升级为交付态:支持在sslProtocol属性上配置多个特定的 SSL/TLS 协议值;引入了一个新的schemaGen命令行包装实用程序来启动ws-schemagen.jar工具的执行;以及修复了多个错误。
Open Liberty 22.0.0.6-beta 也已经发布,它具有新的日志记录功能,因此堆栈跟踪信息现在可以合并到单个日志事件中了。
红帽(Red Hat)发布了 Quarkus 2.9.0.Final,其特性包括:一种旨在替换密码的新 WebAuthn 身份验证机制;支持 Reactive Routes 和 RESTEasy Reactive 的压缩;支持 Confluent Schema Registry 和重构模式注册表扩展,以获得更大的灵活性;以及对 Kotlin 1.6.20 和 Scala 2.13 的依赖升级。鼓励开发人员在升级时遵循迁移指南。
为了与 Quarkus 保持一致,Apache 软件基金会发布了包含 Camel 3.16.0 和 Quarkus 2.9.0.Final 的 Camel Quarkus 2.9.0。其新特性包括:改进了对 JBang 的支持;改进了对 Camel 主应用程序的支持,这样使用依赖注入可以更容易地自动发现 Camel 路由、配置类、类型转换器及其他类;以及从 Vault/Secrets 云服务检索特性值的能力。
红帽(Red Hat)已经发布了 WildFly Preview 27 Alpha1,这是支持 Jakarta EE 10 的一个里程碑式的版本。WildFly 27.0.0.Alpha1 支持上下文和依赖注入(CDI)4.0 规范、CDI Lite 和 Hibernate 6.0。该版本在 JDK 11 或 JDK 17 上可能能运行,但是对 JDK 8 的支持已经停止。
Hibernate Search 6.1.5.Final 已发布,特性升级包括:Hibernate ORM 5.6.8.Final;Hibernate ORM 6.0.1.Final -orm6构件;以及 -orm6 /-jakarta构件中最新版本的 Jakarta EE 依赖项。该版本中的修复包括:.flags(Collections.emptySet())在定义simpleQueryString谓词时禁用所有标志;在 Lucene 后端使用.maxTermCount(<very large value>)定义文本字段上的聚合时不会再导致OutOfMemoryError错误;以及使用outbox-polling协调策略,防止对特定实体进行索引的路由桥接不会再导致NullPointerException。
Ronald Dehuysser 是 JobRunr 的创始人和主要开发人员,JobRunr 是一个在 Java 中执行后台处理的实用程序,其 5.1.1 版本已发布,修复了当org.jobrunr.database.skip-create属性设置为false时抛出ClosedFileSystemException的缺陷。
Piranha22.5.0 已发布。该版本被称为“消除代码坏味道”的 2022 年 5 月版,其中包括:删除了一个不稳定的 Mojarra 测试;更新了依赖项;并修复了一些“代码坏味道”。有关该版本的更多详细信息,请参阅他们的文档和问题跟踪器。
Failsafe 是一个轻量级的零依赖库,用于处理 Java 8+ 中的故障,它的 3.2.4 版本已发布,其中包括额外的线程安全检查特性。有关该版本的更多详细信息,请参阅其变更日志。(https://github.com/failsafe-lib/failsafe/blob/master/CHANGELOG.md)
基于总共的 650 张投票,Micronaut 4.0 JDK 版本调查的结果表明:与基于 JDK 17 的 Micronaut 4.0 相比,几乎有两倍的 Java 开发人员更喜欢基于 JDK 17 的 Micronaut 4.0。
Devoxx 英国分会(Devoxx UK)已于上周在英国伦敦商业设计中心举行,来自 Java 社区的许多演讲者发表了演讲,并促进了研讨会。
原文链接:
https://www.infoq.com/news/2022/05/java-news-roundup-may09-2022/
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
我们用了一个周末,将 370 万行代码迁移到了 TypeScript
阿里一季度员工减少4000人;程序员写脚本抢挂疫苗号,牟利40万被刑拘;搜狐遭遇史诗级邮件诈骗,张朝阳回应 | Q资讯
转载阿里开源框架Egg.js文档被告知侵权,原作者:难道我才是那个恶人?
点个在看少个 bug 👇