OpenJDK
JEP 483(类的提前加载与链接)已经从 JEP Draft 8315737提升到候选状态。该 JEP 建议“使应用程序的类处于已加载和已链接状态,以便它们在 HotSpot Java 虚拟机启动时立即可用,从而改善启动时间”。其实现方式可能是,监控应用程序的一次运行,将所有类加载和链接后的形式存储在缓存中以供后续运行时使用。这个特性为将来改进启动和预热时间奠定了基础。
JDK 23
JDK 23 的早期访问构建Build 36发布,它是 Build 35 的升级,修复了各种问题。要了解关于这个构建的更多细节,请查看发布说明。要详细了解 JDK 23 的新特性,可以阅读 InfoQ 的这篇报道。
根据 JDK 23 的发布时间表,Oracle Java 平台组首席架构师Mark Reinhold正式宣布JDK 23 进入第一个候选版本,因为 Build 36 中已经没有未解决的 P1 Bug。GA 版本预计将于 2024 年 9 月 17 日发布。该版本最终将包括以下 12 项功能:
JEP 455:模式、instanceof和switch中的原始类型(预览)
JEP 466:Class-File API(第2轮预览)
JEP 467:Markdown文档批注
JEP 469:向量API(第8轮孵化)
JEP 471:弃用sun.misc.Unsafe中的内存访问方法以备删除
JEP 473:流收集器(第2轮预览)
JEP 474:ZGC:默认分代模式
JEP 476:模块导入声明(预览)
JEP 477:隐式声明的类和实例主方法(第3轮预览)
JEP 480:结构化并发(第3轮预览)
JEP 481:作用域值(第3轮预览)
JEP 482:灵活的构造函数方法体(第2轮预览)
要详细了解所有这些新特性,可以阅读 InfoQ 的这篇报道。
JDK 24
JDK 24 的早期访问构建Build 10发布,它是 Build 9 的升级,修复了各种问题。要了解关于这个构建的更多细节,请查看发布说明。
对于JDK 23和JDK 24,我们鼓励开发者通过Java Bug数据库报告缺陷。
GlassFish
GlassFish 8.0.0-M7(第7个里程碑版本)带来了一些值得注意的变化,包括:在执行Application
类中定义的toString()
方法时,如果BundleDescriptor
类的一个实例为null
,则不再抛出IllegalArgumentException
;删除对已弃用类 SecurityManager 的额外引用,包括格式化、名称更改以及删除未使用的方法参数;Jakarta Concurrency 3.1的一个实现,该最新版本将包含在即将发布的 Jakarta EE 11 版本中。要了解关于该版本的更多细节,请查看发布说明。
Quarkus
Quarkus 3.13.1 是 3.13 发布序列中的第一个维护版本,提供了 Bug 修复、文档改进和值得注意的变化,包括:在 Dev UI 中使用JsonRPC扩展时支持CompletableFuture
;消除在停止期间可能因为ApplicationLifecycleManager
类中的竞争条件而出现的NullPointerException
;解决当Spring Data JPA项目中定义的findFirstBy
方法已经返回Optional<T>
时仍抛出NullPointerException
的问题。要了解关于该版本的更多细节,请查看变更日志。
Open Liberty
IBM发布Open Liberty 24.0.0.8-beta 版本,引入了一些无版本特性,用于简化选择与 MicroProfile、Jakarta EE 和 Java EE 平台兼容的特性的过程,让用户只需要配置应用程序所需的特定版本的特性就可以完成这项工作。这种可组合式设计模式可以最大限度地减少运行时资源需求,加速应用程序启动。
该版本还提供了对即将发布的 MicroProfile 7.0(计划于 2024 年 8 月 22 日前后发布)和 Jakarta EE 11(计划于 2024 年第 3 季度发布)的预览。
Hibernate
Hibernate ORM 6.6.0.Final发布(其第二个候选版本于之前一天发布),提供了Jakarta Data 1.0新规范的完整实现,即:基于依托注解处理器的编译时代码生成实现编译时类型安全;得到StatelessSession
接口的支持,该接口已针对 Jakarta Data 的需求做了增强。其他新特性包括:新增@ConcreteProxy
注解,用于取代已弃用的@Proxy
和@LazyToOne
注解;带有@Embeddable
注解的基于鉴别器的类型继承。
Hibernate Search 7.2.0.Final发布(其第一个候选版本于两天之前发布),改进了 Search DSL,新特性包括:新的投影类型;新的谓词;增强现有的谓词类型;查询参数;弃用ValueConvert
枚举而支持ValueModel
枚举。Hibernate ORM 6.6.0.Final 兼容OpenSearch2.14、2.15、2.16 和Elasticsearch 8.14、8.15。
Hibernate Reactive 2.4.0.Final发布(其第一个候选版本也是两天前发布的),带来了一些值得注意的变化,包括:将在DefautlReactiveLockEventListener
类中定义的cascadeOnLock()
方法转换为响应式方法;防止在模式迁移期间创建多个连接;依赖升级到 Hibernate ORM 6.6.0.Final。要了解关于该版本的更多细节,请查看发布说明。
Apache 软件基金会
Apache Tomcat的11.0.0-M24、10.1.28和9.0.93版本带来了 Bug 修复和一些显著的变化,例如:使 HTTP/2 与 HTTP/1.1 保持一致,默认回收容器的内部请求和响应处理对象,这可以通过 HTTP/2 升级协议上的新属性discardRequestsAndResponses
进行控制;增加来自 JEP 454 的兼容性方法、外部函数和内存API,支持OpenSSL、LibreSSL和BoringSSL,它们所需的最小 JDK 版本均为 JDK 22;支持 RFC 8297(用于标示提示信息的HTTP状态码)规范,应用程序可以通过将HttpServletResponse
接口强制转换为Response
类,然后调用sendEarlyHints()
方法来使用此功能。要了解关于这些版本的更多细节,可以查看11.0.0-M24、10.1.28和9.0.93版本的发布说明。
Infinispan
Infinispan 15.0.7.Final(第 7 个维护版本)为一些值得注意的问题提供了解决方案,例如:如果用户属性存在错误,则抛出一个更准确的描述性异常;使用Xsite删除条目时抛出NullPointerException
异常;IntermediateCacheStream
类始终返回空数组。要了解关于该版本的更多细节,请查看发布说明。
Gradle
Gradle 8.10 的第一个候选版本解决了许多问题,并带来了一些值得注意的变化:改进配置缓存,比如,显著减小缓存文件的大小,缩短缓存加载时间;改进GradleLifecycle
API 的行为和回调执行。要了解关于该版本的更多细节,请查看发布说明。
原文链接:
https://www.infoq.com/news/2024/08/java-news-roundup-aug05-2024/
评论