写点什么

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

评论

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

公安大数据分析系统开发,情报研判系统搭建

t13823115967

智慧公安

12.6大数据仓库Hive

张荣召

DolphinDB与Aliyun HybridDB for PostgreSQL在金融数据集上的比较

DolphinDB

postgresql 阿里云 时序数据库 DolphinDB 数据库开发

Norvarm波场链系统开发方案丨Norvarm波场源码功能

系统开发咨询1357O98O718

Norvarm波场链系统开发

深入浅出理解视频编解码技术

拍乐云Pano

音视频 RTC 拍乐云 视频编解码 视频算法

投行工作的本质 | 读《投行职业进阶指南:从新手到合伙人》

邓瑞恒Ryan

读书笔记 投资 金融 投行 职业第二曲线

北京天源迪科与重庆邮电大学移通学院成功签约

DT极客

Gemini双子新约交易所系统软件APP开发

系统开发

H3C核心交换机故障处理通用流程

巨头们为什么要开源自己的技术?解析科技企业对软件开源的态度

Marilyn

开源 敏捷开发

我看技术人的成长路径

阿里巴巴云原生

开发者 云原生 技术人 自我思考 职场成长

ICT芯矿链挖矿矿机系统开发平台丨ICT芯矿链源码案例

系统开发咨询1357O98O718

ICT芯矿链矿机系统开发

看到Mybatis源码就感到烦躁,怎么办?

田维常

mybatis

《微信小程序开发入门与实践》.pdf

田维常

从物理空间到数字世界,数字孪生打造智能化基础设施

华为云开发者联盟

IoT 智能 数字

GaussDB(DWS)应用实践丨负载管理与作业排队处理方法

华为云开发者联盟

数据 负载 GaussDB

云原生体系下的技海浮沉与理论探索

阿里巴巴云原生

Serverless 容器 微服务 云原生 k8s

忒棒了!阿里P8大牛用这份技术点直接带你玩转高可用服务架构

比伯

Java 编程 架构 互联网 程序人生

12.7作业

张荣召

12.4大数据计算框架MapReduce-架构

张荣召

喜讯 | 拍乐云荣登2020「年度最具投资价值创新企业TOP20」榜单

拍乐云Pano

音视频 拍乐云

构建一张音视频全球大网究竟需要多少个节点?Pano Backbone技术探秘

拍乐云Pano

音视频 RTC 拍乐云

云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?

华为云开发者联盟

项目管理 敏捷 devcloud

探究神秘的SpringMVC,寻找遗失的web.xml踪迹

996小迁

Java 编程 程序员 架构 面试

12.5大数据集群资源管理系统Yarn

张荣召

12.3大数据计算框架MapReduce-编程框架

张荣召

区块链应用落地,物流供应链平台搭建

t13823115967

区块链应用

【涂鸦物联网足迹】物联网常见通信协议

IoT云工坊

物联网 HTTP 通信协议 mqtt coap

快来!开源一份阿里微服务指导手册:SpringBoot+SpringCloud+消息中间件

Java架构追梦

Java 架构 面试 微服务

第八周大作业

小兵

第八周总结

小兵

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