JEP 432,记录模式(第二次预览),已从 JDK 20 的 Proposed to Target 状态提升为 Target 状态。该 JEP 更新自 JEP 405,记录模式(预览版),更新包括:增加了对通用记录模式类型参数推断的支持;增加了对记录模式出现在增强 for 语句条件判断中的支持;并删除了对命名记录模式的支持。
JEP 433,switch模式匹配(第四次预览),已从 JDK 20 的 Proposed to Target 状态提升为 Target 状态。该 JEP 更新自 JEP 427,switch模式模式匹配(第三次预览),更新包括: 简化了 switch 标签语法;现在, switch 表达式和语句以及支持模式的其他构造体都支持泛型类型模式和记录模式的类型参数推断。
JEP 434,外部函数和内存API(第二次预览),已从 JDK 20 的 Proposed to Target 状态提升为 Target 状态。该 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 429,作用域值(孵化器),已从 JDK 20 的 Candidate 状态提升为 Proposed to Target 状态。这个正在孵化的 JEP,最初名为范围局部变量(孵化器,Extent-Local Variables),由Loom项目赞助,提议在线程内部和线程之间共享不可变数据。这优于线程局部变量,尤其是在使用大量虚拟线程时。
JEP 436,虚拟线程(第二次预览),已从 JDK 20 的 Candidate 状态提升为建议 Proposed to Target 状态。在Loom项目的支持下,该 JEP 基于 JDK 19 中提供的 JEP 425,虚拟线程(预览版),提出了第二次的预览,以便有时间为该功能的演进提供更多的反馈和经验。需要注意的是,除了少量在 JDK19 中被固化的 JEP 425 API 外,本预览版本没有进行任何更改,因此没有在第二次预览中提出。
JEP 437,结构化并发(第二个孵化器),在 JDK 20 中从 Candidate 状态提升为 Proposed to Target 状态。该 JEP 也是在Loom项目的支持下,提议基于从 JDK 19 中提供的 JEP 428,结构化并发(孵化器)中重新孵化该特性,以便有时间提供更多的反馈和经验。唯一的变化是更新了 StructuredTaskScope
类,以支持在任务作用域中创建的线程继承作用域值。这简化了跨线程不可变数据的共享。
这三个 JEP 的审查将于 2022 年 12 月 6 日结束。
JDK20早期访问构建版本中的第26版也已于上周发布,其中包括对第 25 版各种问题的修复和更新。有关该版本的更多详细信息,请参阅发布说明。
对于JDK 20,鼓励开发人员通过Java缺陷数据库报告缺陷。
JavaFX 20早期访问构建版本中的第10版已提供给 Java 社区。JavaFX 专为使用 JDK 20 早期访问构建版本而设计,应用程序开发人员可以在 JDK 20 上使用 JavaFX 20 构建和测试其应用程序。
Spring Integration 6.0 已发布,其特性包括:JDK 17 和 Jakarta EE 9 基线;支持 GraalVM 和 Spring AOT 引擎的原生镜像;具有千分尺和千分尺跟踪的可观测性仪器;以及对 Jakarta EE 10 的支持。有关该版本的更多详细信息,请参阅最新动态页面。
Spring Vault 3.0 也已发布,其特点包括:JDK 17 基线;支持额外的 HTTP 客户端,包括响应式 JDK HTTP 客户端;并支持使用版本化密钥/值机密引擎的 Vault 存储库。有关该版本的更多详细信息,请参阅发布说明。
Spring Cloud 2022.0.0 的第三个候选版本,代号为 Kilburn,已向 Java 社区提供。该版本提供了对 Spring Cloud 子项目 RC3 版本的更新,如:Spring Cloud OpenFeign 4.0.0、Spring Cloud Commons 4.0.0、SpringCloud Function 4.0.0 和 Spring Cloud Starter Build 2022.0.0。但是,由于 Spring Cloud CLI、Spring Cloud for Cloud Foundry 和 Spring Cloud Sleuth 等子项目的移除,也引入了一些破坏性的更改。Spring Cloud 2022.0.0-RC3 要求 Spring Boot 3.0.0。有关该版本的更多详细信息,请参阅发布说明。
在最近的re:Invent大会上,亚马逊云服务为其AWS Lambda项目推出了一项新特性Lambda SnapStart,旨在减少 Java 函数的冷启动,并加速 Lambda 函数。Quarkus和Micronaut已经实现了对 Lambda SnapStart 的支持。更多详细信息请参阅InfoQ的新闻报道和亚马逊云科技博客文章。
红帽(Red Hat)发布了 Quarkus 2.14.2 和 2.13.5 版本,主要修复了 CVE-2022-4116 漏洞,CVE-2022-4116 是 Dev UI 配置编辑器中的一个漏洞,容易受到本地主机驱动攻击,导致远程代码执行。该版本还加强了对跨源资源共享(CORS)的处理,包括在 CORS 请求因来源无效而被拒绝时将 200 OK
更改为 403 FORBIDEN
。有关这些版本的更多详细信息,请参阅2.14.2版和2.13.5版的发布说明。
在通往 Quarkus 2.15.0 的道路上,第一个候选版本也提供了新特性,比如:与 Quarkus CRaC/Firecracker 的集成;将 gRPC 扩展迁移到新的 Vert.x gRPC 实现;使用 Panache 扩展支持在 REST 数据中根据命名查询进行过滤;以及对 GraalVM 22.3.0、Mandrel 2.13 和 SmallRye GraphQL 1.9.0 的依赖项升级。
Apache Camel 3.18.4 已发布,对 Spring Boot 2.7.6 和 HyperSQL DB 2.7.1 进行了 27 个 bug 修复、改进和依赖项升级。有关该版本的更多详细信息,请参阅发布说明。
在JHipster,已经开始将平台升级到 Spring Boot 3.0。Okta 的开发人员倡导者、Java Champion 和 JHipster 开发团队成员Matt Raible提供了团队迄今为止遇到的问题的最新情况,即:BlockHound需要一个新的WebFlux的入口;健康检查在 Elasticsearch 8+中不起作用;MongoDB 和 WebFlux 与 JUnit 和 MongoDB 驱动程序 4.2+死锁。有关这些问题的更多详细信息,请参阅此 GitHub拉取请求。
原文链接:
https://www.infoq.com/news/2022/12/java-news-roundup-nov28-2022/
领取专属 10元无门槛券
私享最新 技术干货