2024年12月2日这一周的Java新闻综述要点:JDK24进入Rampdown第一阶段;JDK25专家组成立;JakartaEE11CoreProfile和SpringCloud2024.0.0发布;以及GlassFish、OpenLiberty、Quarkus和ApacheCamel的新版发布。
JDK24
JDK24早期版本的Build27已于上周发布,其中包含Build26以来的更新和对各种问题的修复。有关此版本的更多细节,请参阅发行说明。
JEP404:分代Shenandoah(实验性)
JEP450:紧凑对象标头(实验性)
JEP472:准备限制JNI的使用
JEP475:G1的后期屏障扩展
JEP478:密钥派生函数API(预览)
JEP479:删除Windows32位x86端口
JEP483:提前类加载和链接
JEP484:类-文件API
JEP485:流收集器
JEP486:永久禁用安全管理器
JEP487:范围值(第四个预览)
JEP488:模式、instanceof和switch中的原始类型(第二个预览)
JEP489:矢量API(第九个孵化器)
JEP490:ZGC:删除非生成模式
JEP491:同步虚拟线程而不固定
JEP492:灵活的构造函数主体(第三个预览)
JEP493:链接运行时映像而不使用JMOD
JEP495:简单源文件和实例主方法(第四个预览)
JEP496:基于量子抗性模块格的密钥封装机制
JEP497:基于量子抗性模块格的数字签名算法
JEP498:在sun.misc.Unsafe中使用内存访问方法时发出警告
JEP499:结构化并发(第四个预览版)
JEP501:弃用32位x86端口以移除
JDK25
JSR400(JavaSE25)于上周获得批准,正式宣布了JDK25的四人专家组,即SimonRitter(AzulSystems)、IrisClark(Oracle)、AndrewHaley(RedHat)和ChristophLanger(SAPSE)。Clark将担任规范负责人。当前的其他关键日期包括2025年6月至8月的公开审查和2025年9月的GA版本。
JDK25早期访问版本的Build0和Build1也于上周发布,其中包含解决一些初始问题的更新。
对于JDK24和JDK25,鼓励开发人员通过JavaBug数据库报告错误。
JakartaEE
Eclipse基金会JakartaEE开发倡导者IvarGrimstad在其每周的HashtagJakartaEE博客中提供了JakartaEE11的最新进展,他写道:
JakartaEE11CoreProfile的投票已经完成!这意味着该规范已获得批准并可以发布。这在多个层面上都是一个里程碑。首先,我们在2024年发布了JakartaEE11(至少是部分)。其次,我们独立于Platform和WebProfile规范发布了CoreProfile规范。这是我们一直想做的事情,也验证了我们能够充分解耦依赖关系以使其成行。JakartaEE11Platform和JakartaEE11WebProfile规范的投票仍有一丝希望,投票将在年底前开始。
JakartaEE11之路包括四个里程碑版本、核心配置文件的发布,以及在2025年1季度平台和Web配置文件的GA发布之前根据需要发布的候选版本。
GlassFish
GraalVM
OracleLabs发布了NativeBuildTools0.10.4版,这是一个GraalVM项目,由用于与GraalVM原生映像互操作的插件组成。最新版本提供了一些值得注意的变化,例如:确保在AgentConfiguration类中定义的accessFilter输入流是线程安全的;以及对原生映像SBOM生成的改进。有关此版本的更多细节,请参阅变更日志。
Spring框架
在SpringCloud2023.0.4(代号为Leyton)发布后不到一周,SpringCloud2024.0.0(代号为Moorgate)已发布,其中包含错误修复和对一些子项目的重要更新:SpringCloudKubernetes3.2.0;SpringCloudFunction4.2.0;SpringCloudOpenFeign4.2.0;SpringCloudStream4.2.0和SpringCloudGateway4.2.0。此版本基于SpringBoot3.4.0。有关此版本的更多细节,请参阅发行说明。
SpringTools4.27.0版已发布,其中包含错误修复、Eclipse2024-12更新以及新特性,例如:支持SpringBoot@ConditionalOnProperty注释,包括完成、导航到定义和查找引用;以及支持在SpringDataJPA@Query注释内连接字符串以进行数据查询。有关此版本的更多细节,请参阅发行说明。
OpenLiberty
Quarkus
Apache软件基金会
ApacheCamel4.9.0的发布提供了错误修复、依赖项升级和新特性,例如:支持OAuth2在CamelHTTP组件中缓存和刷新令牌;以及将SmooksCamelCartridge迁移到主代码库。有关此版本的更多细节,请参阅发行说明和新特性页面。
JavaOperatorSDK
JavaOperatorSDK5.0.0的第一个测试版附带一些新特性,例如:Kubernetes服务器端应用已提升为一等公民,并采用默认方法修补状态资源;以及EventSource接口的职责发生变化,以监控资源并处理访问缓存资源、过滤和曾经由ResourceEventSource子接口维护的其他特性。有关此版本的更多细节,请参阅变更日志。
Keycloak
Keycloak26.0.7是第七个维护版本,它修复了大量错误,改进了文档,并将依赖项升级到Infinispan15.0.11。有关此版本的更多细节,请参阅发行说明。
JetBrainsKtor
Ktor3.0.2是第二个维护版本,它解决了一些值得注意的问题,例如:当服务器发送无效标头cache-control:max-age:120(其中应在max-age后使用等号)时,使用HttpClient的HttpCache插件时出现IndexOutOfBoundsException;以及使用FileItem类中定义的已弃用的streamProvider()方法(该方法没有实现)时应用程序会崩溃。有关此版本的更多细节,请参阅发行说明和新特性页面。