【AICon】硅谷视野+中国实践,汇聚全球顶尖技术的 AI 科技盛会 >>> 了解详情
写点什么

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

评论

发布
暂无评论

别慌!阿里专家破SpringBoot:入门+基础+进阶+项目

Java~~~

Java 数据库 架构 面试 Spring Boot

加速国产开源软件创新,云智慧AIOps社区正式发布

云智慧AIOps社区

开源 算法 数据 场景 智能运维

10款低/无代码开发平台哪个才是适合你的?

低代码小观

程序员 低代码 无代码 低代码平台 无代码平台

一文搞懂音视频开发技术点及职业发展方向

赖猫

c++ android 音视频

GAIA:智能运维领域通用公开数据集

云智慧AIOps社区

算法 AIOPS 数据集 场景 智能运维

C/S结构是什么意思?有什么优点?

行云管家

数据库 运维 IT

百度短视频推荐系统的目标设计

百度Geek说

架构 后端 推荐系统 短视频

收藏!阿里P9耗时28天,总结历年亿级活动高并发系统设计手册

Java~~~

Java 架构 面试 高并发 系统

无敌!阿里巴巴开源落地可实操项目:网约车+咚宝商城+英雄传说

Java~~~

Java 架构 面试 项目 架构师

云智慧AIOps研究院来咯~

云智慧AIOps社区

技术 算法 数据 智能运维 指标

CTO离职前悄悄和我说,吃透这5本Java核心技术笔记,涨薪特别简单

Java~~~

Java MySQL spring 架构 面试

云智慧智能研究院实习生招聘信息~只等优秀的你!

云智慧AIOps社区

深度学习 招聘 异常检测 实习 智能运维

Filecoin价格今日走势:filecoin暴涨!Filecoin未来会涨到多少钱?

区块链 分布式存储 filecoin未来价格预测? filecoin价格走势 filecoin大涨

“小巨人”的转型烦恼,百度智能云能否解压?

百度开发者中心

人工智能 企业资讯 中小企业

必杀器!鹅厂首推569页Netty+Redis+ZK+高并发

Java~~~

Java redis 架构 面试 Netty

27W字总结阿里Java高并发编程:案例+源码+面试+系统架构设计

Java~~~

Java 架构 面试 算法 多线程

为什么UI自动化难做?—— 关于Selenium UI自动化的思考

LigaAI

测试 UI自动化

数据库是什么意思?有什么用?有哪些类型?

行云管家

数据库 运维 IT

TLS协议分析 (六) handshake协议扩展

OpenIM

pyhanlp 添加自定义词典(qbit)

qbit

Python nlp 分词

安卓工控主板双网口有什么用途?

双赞工控

安卓主板 工控主板

横空出世!复盘B站面试坑我最深的Java并发:JDK源码剖析

Java~~~

Java 源码 架构 jdk 面试

太强了!京东首席架构师深邃洞察:服务化+云原生+微服务

Java~~~

Java 架构 面试 云原生 架构师

无场景不智能-面向场景的智能运维算法体系

云智慧AIOps社区

算法 日志 场景 智能运维 数据指标

机器学题平台PAI论文入选国际顶会KDD-构建端到端的大规模AI工程能力

阿里云大数据AI技术

“IBP在城市大脑项目中的应用”入选工信部2021年大数据产业发展试点示范项目名单

浪潮云

云计算

阿里内部最新“SpringCloudAlibaba学习笔记”出炉

Java 阿里巴巴 架构 面试 微服务

阿里内部架构解密:网络+分布式+RPC+消息中间件+微服务

Java~~~

Java spring 架构 面试 微服务

GitHub上标星120K!Alibaba官网发布了这份Java全栈知识体系手册

Java~~~

Java 架构 面试 JVM 多线程

基于深度学习的日志异常检测

云智慧AIOps社区

深度学习 招聘 异常检测 实习 智能运维

交易所刷量机器人定制开发,刷k线机器人搭建

量化系统19942438797

交易所 市值机器人

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