写点什么

Java 近期新闻:JDK 进入 Rampdown 第二阶段、JDK 23 的 JEP、Jakarta EE 11 和 GraalVM

  • 2024-02-02
    北京
  • 本文字数:4620 字

    阅读完需:约 15 分钟

大小:2.35M时长:13:41
Java近期新闻:JDK进入Rampdown第二阶段、JDK 23的JEP、Jakarta EE 11和GraalVM

本期的 Java 新闻汇总主要包含如下新闻:JEP 455 升级为 JDK 23 的 Proposed to Target 状态、JDK 22 进入 Rampdown 第二阶段、Jakarta EE 11 发布计划更新、GraalVM 以及甲骨文 2024 年 1 月份的关键补丁更新。

OpenJDK

JEP 455,模式、instanceof和switch中的原始类型(预览)已经从 JDK 23 的 Candidate 状态提升到了 Proposed to Target 状态。该 JEP 位于 Amber 项目之下,通过允许在所有模式上下文中使用原始类型来增强模式匹配,并扩展instanceofswitch以使其适用于所有原始类型。甲骨文公司的主要技术人员Aggelos Biboudis最近发布了该特性的最新规范草案。审查工作预计会在 2024 年 1 月 22 日结束。

 

甲骨文公司 Loom 项目的架构师和技术负责人Ron Pressler以及甲骨文公司 Java 语言和 Java 虚拟机的规范负责人Alex Buckley业已提交JEP Draft 8323072废弃sun.misc.Unsafe中的内存方法,以便于将其移除(Deprecate Memory-Access Methods in sun.misc.Unsafe for Removal)。该 JEP 建议废弃sun.misc.Unsafe类中定义的内存访问方法,以便在未来的版本中将其移除。这些现在不受支持的方法已经有了对应的替代方案,分别是从 JDK 9 开始提供的访问堆上内存的方法以及从 JDK 22 开始提供的访问堆外内存的方法。

JDK 23

JDK 23 的早期访问构建版本的Build 6发布,该版本是对 Build 5 的更新,其中包括对各种问题的修复。关于这个版本的更多细节可以在发布说明中找到。

JDK 22

JDK 22 的早期访问构建版本的Build 32发布,该版本是对 Build 31 的更新,其中包括对各种问题的修复。关于这个版本的更多细节可以在发行说明中找到。

 

根据 JDK 22 的发布计划,甲骨文公司的 Java 平台组首席架构师 Mark Reinhold正式宣布,JDK 22 已经进入 Rampdown 的第二阶段。这就意味着,JDK 22将不再添加 JEP;关注的重点会放在 P1 和 P2 的缺陷上,这些缺陷可以通过修复请求流程(Fix-Request Process)来进行修复。借助后期增强请求流程(Late-Enhancement Request Process),依然有可能在后期实现功能的增强,但 Reinhold 表示,“现在的门槛已经非常高了”。将于 2024 年 3 月份发布的 GA 版本最终包含了如下 12 项特性:

 

对于JDK 23JDK 22,鼓励开发人员通过Java缺陷数据库报告缺陷。

Jakarta EE

在每周的 Hashtag Jakarta EE博客上,Eclipse 基金会的 Jakarta EE 开发人员倡导者Ivar Grimstad最近宣布,Jakarta EE 11 的目标 Java 版本将同时支持 JDK 21 和 JDK 17。正如 Grimstad 所言:


虽然这看上去是一个很重要的变化,但是情况并没有想象中那么严重。实际上,没有任何一个组件规范计划在其 API 中暴露 Java 21 相关的特性。唯一接近这一点的是Jakarta Concurrency 3.1,它计划支持 Java虚拟线程。但事实证明,只要底层 JVM 支持虚拟线程,精心设计的 API 就能支持它。

 

最大的变化是测试兼容性工具包(Test Compatibility Kit,TCK),它必须能够在 Java 17 和 Java 21 上运行。对于那些已经将代码库转移到 Java 21 的实现也会受到一定程度的影响,这取决于它们的进展程度以及它们已经使用了多少 Java 17+的特性。

 

因此,Jakarta EE 规范里程碑版本的发布计划已经根据这一变更进行了修改,但 Grimstad 依然认为,Jakarta 的 GA 发布时间依然是最初计划的 2024 年 6 月或 7 月。

GraalVM

甲骨文实验室发布了针对 JDK 21 的 GraalVM 社区版 21.0.2,该版本基于 2024 年 1 月份的甲骨文关键补丁更新进行了修复。其中包括,简化了ValueAnchorNode类的实现;解决了启用断言时-XX:+PrintGCSummary命令行参数的问题;解决了System.console().readPassword方法导致的故障。关于该版本的更多详情,请参阅发布说明

BellSoft

在甲骨文公司于 2024 年 1 月发布关键补丁更新(Critical Patch Update,CPU)的同时,BellSoft 也发布了针对Liberica JDK的 CPU 补丁版本,即 21.0.1.0.1、17.0.9.0.1、11.0.21.0.1 和 8u401,以解决该CVE的列表,Liberica JDK 是 OpenJDK 的下游发行版。此外,他们还发布了补丁集更新(Patch Set Update,PSU)版本 21.0.2、17.0.10、11.0.22 和 8u402,其中包含了 CPU 和非关键性的问题修复。

Spring Framework

Spring Boot 3.3.0 的第一个里程碑版本提供了缺陷修复、文档改进、依赖性升级和新特性,比如,移除了上一个版本废弃的 API;支持 Micrometer @SpanTag注解;支持为 Spring Security OAuth2 专用的属性自动配置JwtAuthenticationConverterReactiveJwtAuthenticationConverter类。关于该版本的更多信息,请参阅发布说明

 

Spring Boot 3.2.2发布了文档改进、依赖性升级和值得注意的缺陷修正,例如,在NestedJarFile类的实例中,JarEntry实例调用getComment()方法会返回不正确的结果;在使用 jOOQ 时,如果没有设置spring.jooq.sql-dialect属性的话,会导致数据库连接泄露;将MockRestServiceServerAutoConfiguration与 Spring Framework 的RestTemplateRestClient接口一起使用会产生不正确的异常。关于该版本的更多细节信息,请参阅发布说明

 

类似的,Spring Boot 3.1.8版本提供了文档改进、依赖性升级和值得注意的缺陷修复,比如,SslBundle接口的实现,PropertiesSslBundleWebServerSslBundle没有提供有用的toString()结果;在PatternParseException的日志信息中,表示模式错误的标记^放在了错误的位置;在server.ssl属性中混合使用 PEM 和 JKS 证书材料会导致无法正常运行。关于该版本的更多细节信息,请参阅 发布说明

 

Spring Security 6.3.0 的第一个里程碑版本提供了缺陷修复、依赖性升级和新特性,例如,为RoleHierarchyImpl类提供了一个新的工厂方法,以改进角色层级结构的定义;提供新的偏移量,用来补充@EnableMethodSecurity注解中的order属性,从而允许应用程序选择拦截器的放置位置;将缓存集成到HandlerMappingIntrospector类中。关于该版本的更多细节信息,请参阅 发布说明

 

Spring Authorization Server 1.3.0 的第一个里程碑版本提供了依赖性升级和新特性,比如,在OAuth2ClientCredentialsAuthenticationProvider类中可配置范围校验策略的功能;改进了错误日志记录功能,以记录非法或过期的授权码;使用证书签发者的路径组件支持多租户。关于该版本的更多细节信息,请参阅 发布说明

 

Spring Modulith的 1.2.0-M1、1.1.2 和 1.0.5 版本发布,其中包括缺陷修正、依赖性升级和功能增强,例如,不再使用 Spring Boot DatabaseDriver枚举类中定义的已废弃的fromDataSource()方法;如果某个模块被列为额外包含,但它已经是计算得出的依赖的一部分,避免ModuleTestExecution两次包含该模块的可能性;将 Spring AOT 生成的类排除在架构校验之外,否则它们可能会将依赖关系引入到视为模块内部的应用程序组件中。关于这些版本的更多细节信息,请参阅1.2.0-M1版本1.1.2版本1.0.5版本的发布说明。

 

Spring Session 3.3.0 的第一个里程碑版本发布,提供了依赖性升级和新特性,例如,新的ReactiveFindByIndexNameSessionRepository接口,能够为非索引的会话存储库提供 Actuator 端点;新的ReactiveRedisIndexedSessionRepository类,可以为 Spring WebFlux 应用程序提供/sessions端点。关于该版本的更多细节信息,请参阅 发布说明

 

Spring for Apache Pulsar 1.0.2发布,提供了依赖性升级,并在项目中添加了一个新的物料清单模块spring-pulsar-bom。该版本将包含在 Spring Boot 3.2.2 中。关于该版本的更多细节信息,请参阅 发布说明

Helidon

Helidon 4.0.3发布,该版本带来了一些值得注意的变更,例如,支持在配置构建器中使用Map<String, String>,以消除使用“复杂的”config.detach().asMap()来获取子值;将RegistryFactory 类和它的getInstance()getRegistry()方法的访问规范恢复为public,以提高与 3.x 版本列车的向后兼容性;通过 OIDC 提供者对 ID 令牌执行验证,并引入访问令牌刷新机制,提高了安全性。关于该版本的更多细节信息,请参阅更新日志

Quarkus

Quarkus 3.7 的第一个发布候选版本提供了值得注意的变更,比如,支持 LinkedIn OIDC 提供者;能够观测授权检查失败或成功的安全事件,应用程序可以据此实现自定义的安全日志机制;支持 Micrometer @MeterTag注解,从而能够为参数带有@Counted@Timed注解的方法添加额外的标记。关于该版本的更多细节信息,请参阅 发布说明

 

Quarkus 团队还宣布,Quarkus 文档现在支持全文搜索的功能,该功能最初是在 Quarkus Guides页面上实现的。这取代了原来在每个指南的标题和摘要上进行简单的子字符串搜索。这项新功能由Quarkus.io Search应用提供支持,该应用使用了Hibernate Search扩展,它支持与OpenSearch/Elasticsearch的集成。

Hibernate

Hibernate ORM 6.4.2.Final发布,该版本提供了缺陷修复和功能增强,例如,新的CurrentTenantIdentifierResolver接口允许使用非字符串租户标识符,并将租户解析器作为托管的 bean;解决了连接继承层次的查询问题,以及使用@SoftDelete注解时,HQL 连接实体不会生成删除条件的问题。关于该版本的更多细节信息,请参阅问题列表

 

Hibernate Reactive 2.2.1.Final发布,该版本也带来了一些值得注意的变化,例如,支持 Hibernate ORM 6.3 中引入的Order类;支持在所有数据库中应用StatelessSession接口中定义的upsert()方法;解决了对基本 Java 类型数组开箱即用支持的问题。该版本与 Hibernate ORM 6.4.1.Final 和 Vert.x SQL 驱动程序 4.5.1 兼容。Hibernate Reactive 2.0.8.Final 也已发布,不过,尽管该版本与 Vertx SQL 客户端 4.5.1 兼容,团队还是决定回滚 2.0.8 版本的升级,因为它妨碍了其他应用程序升级到最新的 2.0 版本。有关此版本的更多详情,请参阅发布说明

Apache 软件基金会

Apache Groovy第五个alpha版本提供了缺陷修复、依赖性升级和新功能/功能增强,例如,格式字符串的自定义类型检查器,可发现非法的转换字符、缺失的参数、不正确的类型和非法的标志;为Closure类实例生成 serialVersionUID(因为它实现了 Java 的Serializable接口);支持与ASTMatcher类中包含可变参数的方法调用进行匹配。有关该版本的更多详细信息,请参阅发布说明

 

同样,Apache Groovy 4.0.18 也已发布,其中包括缺陷修复、依赖性升级和功能增强,例如,Groovy 文档现在列出了继承属性;避免处理META-INF文件夹中重复条目的解决方案。有关此版本的更多详情,请参阅发布说明

 

Apache Maven 4.0.0 的第12个alpha版本提供了值得注意的变更,例如,在Maven制品解析器(Artifact Resolver)中使用了制品集合过滤和新的传递性依赖管理器;使用JLine增强行编辑;通过不解析反应器之外的项目提高构建过程中的一致性。有关此版本的更多详细信息,请参阅发布说明

 

原文链接:

Java News Roundup: JDK 22 in Rampdown Phase Two, JEPs for JDK 23, Jakarta EE 11, GraalVM

2024-02-02 08:0014418

评论

发布
暂无评论
发现更多内容

常德等保测评机构有哪些?电话多少?

行云管家

等保 等保测评 常德

逻辑数据编织平台现代企业数据管理和分析的理想选择

Aloudata

数据仓库 数据分析 数据虚拟化 Data Fabric 数据编织

js 数字计算的精度问题

不在线第一只蜗牛

JavaScript 前端

一文介绍MySQL架构

伤感汤姆布利柏

1000%增长!我仅用一个小时搞定!AI智能体+AI小程序=MVP王炸组合!

陈宇明

HTTP和HTTPS的区别

秃头小帅oi

UML软件建模器 StarUML for Mac v6.3.0 激活版

Rose

KubeEdge 1.19.0版本发布!更完备的节点设备能力,全新的Dashboard体验

华为云原生团队

云计算 容器 云原生

二十载岁月如磐,一位高校女教师的技术坚守之路

华为云开发者联盟

鸿蒙 云主机 昇腾 AI 大底座

脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾

声网

Clicker for Netflix—— 提升奈飞观影体验!

Rose

申请亚马逊商品详情API需要多少钱

代码忍者

API 接口 API 测试 pinduoduo API

QCN6224: Unlocking Long-Range IoT Potential for Smart Applications

wallyslilly

QCN6224

GitLab 升级如何查看升级路径?

极狐GitLab

通义×Milvus:手把手教你打造专属AI技术顾问

Zilliz

AI Milvus 通义

做了5年Java后端开发,靠着这份面试题跟答案,我从12K变成了30K

采菊东篱下

java面试

非凸科技支持第49届ICPC亚洲区域赛南京站成功举行

非凸科技

#编程 ICPC

家居艺术新篇章:东芝艺术电视LA,定义生活美学新高度

Geek_2d6073

人到一定年纪,要学会远离多巴胺

禅道项目管理

项目管理 多巴胺 中年人 上瘾模型 延迟满足

探秘 Parallels Desktop 18虚拟机:为何它是 Mac 用户的福音?

Rose

Mac蓝光高清播放工具 Blu-ray Player Pro v3.3.22中文版

Rose

SoundSource 5:Mac 音频控制器,重塑你的听觉世界!

Rose

唯品会商品详情API接口的深度探索与应用实例

代码忍者

API 接口 pinduoduo API

做ppt去哪找模板?这5个模板网站值得推荐!

职场工具箱

效率工具 职场 PPT模板 办公软件 AI生成PPT

大数据行业数据多样性体现在哪里?用堡垒机可以保障大数据安全吗?

行云管家

大数据 数据安全 数据运维

ps2019cc安装教程 附Photoshop cc 2019 激活工具

Rose

Luminar Neo:超多功能的照片编辑神器来袭

Rose

Clicker for YouTube mac版 YouTube视频播放器

Rose

mac电脑哪款PDF编辑软件好用?推荐Adobe Acrobat Pro DC Mac 版

Rose

双十一购物攻略:如何利用爬虫技术获取历史价格趋势,理性购物不踩雷

EquatorCoco

爬虫 双十一

Java近期新闻:JDK进入Rampdown第二阶段、JDK 23的JEP、Jakarta EE 11和GraalVM_编程语言_Michael Redlich_InfoQ精选文章