写点什么

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

评论

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

用友全球化数智运营解决方案:构建企业出海竞争力

用友BIP

中企出海 升级数智底座

昇腾实践丨ATC模型转换动态shape问题案例

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号9月PK榜

荣誉拉满!国云向新,“算”出新未来!

天翼云开发者社区

云计算

效率提升与智能化的新机遇

百度开发者中心

人工智能 大数据 文心一言

“连理”升空 OpenHarmony开启国产卫星系统星辰大海

最新动态

海量小文件传输对于企业选用文件传输软件的重要意义

镭速

文件传输 海量小文件传输

新材料生产工厂MES系统选型指南

万界星空科技

MES系统

打造全球司库新范式,用友践行产融数智化转型之洞见

用友BIP

全球司库

小米 AR 运动主机「15 分钟消耗一碗米饭」;互联网行业平均薪资降至 3 万档丨RTE开发者日报 Vol.45

声网

GreptimeDB 使用指南 | 3 分钟快速下载启动时序数据库

Greptime 格睿科技

数据库 时序数据库 Greptime GreptimeDB

探索GameFi局势:利用代币经济学应对可持续发展挑战

区块链软件开发推广运营

交易所开发 数字藏品开发 dapp开发 区块链开发 NFT开发

对话在行人|中亿丰(上):基于数智化中台推动业财融合

用友BIP

2023全球商业创新大会 对话在行人

“国云入闽 数耀鹭岛”,中国电信天翼云创新助力数字福建新征程!

天翼云开发者社区

人工智能 云计算

云行|算赋山水涪州,天翼云中国行·重庆涪陵站活动成功举办!

天翼云开发者社区

人工智能 云计算

Python程序设计实例 | 条形码图片识别

TiAmo

Python 条形码识别 条形码

软件测试/测试开发丨Python 深拷贝与浅拷贝

测试人

Python 软件测试 自动化测试 深拷贝 浅拷贝

软件测试/测试开发丨Jenkins Pipeline 学习笔记

测试人

软件测试 jenkins CI/CD pipeline 测试开发

2023年软件开发领域的发展趋势

树上有只程序猿

软件开发

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