NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:0010421

评论

发布
暂无评论

智能合约编写高级篇(二)区块哈希介绍

BSN研习社

技术分享 | 强化学习,让机器像人类一样自我学习

鼎道智联

强化学习

七类网线的制作过程

小齐写代码

弹性数据库连接池探活策略调研(二)——Druid | 京东云技术团队

京东科技开发者

数据库 Druid 数据库连接池 企业号9月PK榜

Office办公软件下载 Office 2019 for Mac v16.78 beta永久激活版

mac

苹果mac Windows软件 office 2019 办公软件套装

《可观测性成熟度模型白皮书》正式发布

乘云 DataBuff

可观测性 智能运维AIOps IT 运维

ViTPose+:迈向通用身体姿态估计的视觉Transformer基础模型 | 京东探索研究院

京东科技开发者

人工智能 计算机视觉 Transformer 企业号9月PK榜

卡奥斯低代码平台新版本体验活动

Openlab_cosmoplat

华为浏览器「遇见好物」MEET X·旅行沙龙,一场品牌与用户的双向奔赴

最新动态

软件测试开发高薪私教线下班来啦!名师1V1指导,大咖强化集训

测试人

软件测试 自动化测试 测试开发 线下班

说说分布式系统容器化

HelloGeek

Kubernetes 容器 微服务 云原生

提高程序并发性能:Java多线程编程

xfgg

Java 多线程

火山引擎 DataTester 首推A/B实验经验库,帮助企业高效优化实验设计能力

字节跳动数据平台

大数据 A/B测试 企业号9月PK榜

Web应用防火墙--规则防护 | 京东云技术团队

京东科技开发者

Web应用防火墙 waf 企业号9月PK榜

文盘Rust——起手式,CLI程序 | 京东云技术团队

京东科技开发者

cli rust语言 企业号9月PK榜

软件测试/测试开发丨学会与 AI 对话,高效提升学习效率

测试人

程序员 AI 软件测试 测试开发 ChatGPT

OpenMLDB 基于 Kubernetes 的部署全攻略

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

山东布谷科技直播系统源码,系统分析篇:不可或缺的云转码系统

山东布谷科技

软件开发 音视频 系统架构 云转码 直播系统源码

mac办公软件Office 2019激活中文+密钥许可

mac大玩家j

办公软件 Office 2019下载 Office Mac

揭秘vivo百亿级厂商消息推送平台的高可用技术实践

JackJiang

网络编程 即时通讯 IM

DeeTune:基于 eBPF 的百度网络框架设计与应用

百度Geek说

云原生 ebpf 企业号9月PK榜

GreptimeDB 的 KubeBlocks 集成经验分享

Greptime 格睿科技

数据库 集群 时序数据 Greptime GreptimeDB

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