JDK 23
JDK 23 的早期访问构建版本的Build 9发布,该版本是对 Build 8 的更新,其中包括对各种问题的修复。关于这个版本的更多细节可以在发布说明中找到。
JDK 22
JDK 22 的早期访问构建版本的Build 35发布,该版本是对 Build 34 的更新,其中包括对各种问题的修复。关于这个版本的更多细节可以在发行说明中找到。
根据 JDK 22 的发布计划,甲骨文公司的 Java 平台组首席架构师Mark Reinhold正式宣布,由于在 Build 35 没有未解决的 P1 缺陷,所以 JDK 22 已经进入其第一个发布候选版本。正式版本预计会在 2024 年 3 月 19 日发布。
2024 年 3 月发布的正式版本最终包含了如下 12 项特性:
JEP 423:G1的区域锚定(Region Pinning for G1)
JEP 457:类文件API(Class-File API,预览)
JEP 459:字符串模板(String Templates,第二轮预览)
JEP 460:向量API(Vector API,第七轮孵化)
JEP 461:流聚合器(Stream Gatherers,预览)
JEP 463:隐式声明类和实例主方法(Implicitly Declared Classes and Instance Main Methods,第二轮预览)
JEP 464:作用域值(Scoped Values,第二轮预览)
对于JDK 23和JDK 22,鼓励开发人员通过Java缺陷数据库报告缺陷。
Jakarta EE 11
在每周的 Hashtag Jakarta EE博客上,Eclipse 基金会的 Jakarta EE 开发人员倡导者Ivar Grimstad提供了迈向 Jakarta EE 11 的最新进展,在最近发布的 Jakarta EE 11-M1 之后,又提供了更正式的里程碑发布计划。开发人员可以期待里程碑 2、3 和 4 版本将会分别于 2024 年 3 月、4 月和 5 月发布。正如 Grimstad 所言:“这是我们第一次在 Jakarta 的发布中使用里程碑的方式。希望这是一个好的做法,帮助我们按计划在今年[2024 年]6 月/7 月完成发布”。
Eclipse GlassFish
GlassFish 8.0.0 的第二个里程碑版本带来了一些值得注意的变更,例如,由于 Jakarta EE Platform 移除了 Jakarta Managed Beans规范,所以删除了使用@ManagedBean
注解的 CDI 测试;解决了startserv
脚本错误报告 bash 语法错误的问题;解决了上下文映射传播器(context map propagator)中ConcurrentModificationException
的问题。关于该版本的更多详细信息,请参阅发布说明。
Spring Framework
Spring Tools 4.21.1发布,该版本包含了缺陷修复、针对 Eclipse 2024-03 里程碑的早期访问构建,以及如下的功能改善:如果通过 Spring Boot Actuators 在应用程序中启用了相关功能,则可以在 VSCode 中查看和编辑实时运行的 Spring Boot 应用程序的日志级别;在应用 OpenRewrite 中的变更之前,可以在 VSCode 中显示“Refactor Preview”。关于该版本的更多详细信息,请参阅发布说明。
JBoss 企业应用平台
红帽公司发布了JBoss企业应用平台 8.0 版本,该版本通过安全性增强、改进云工作流工具以及与 Jakarta EE 10 的兼容性,扩展在云中对 Java 的支持,从而为客户简化了应用的现代化,并为企业级 Java 应用的开发提供持续支持。InfoQ 将会提供更详细的新闻报道。
Micronaut
Micronaut 基金会发布了Micronaut Framework的 4.3.0 版本,其中包括Micronaut Core 4.3.4、缺陷修复、依赖性升级以及模块更新,比如,Micronaut GCP、Micronaut Liquibase、Micronaut Data和Micronaut Validation. 该版本还引入了新模块Micronaut Chatbots和Micronaut EclipseStore。关于该版本的更多详细信息,请参阅发布说明。
同样,后续发布的版本 Micronaut Framework 4.3.1 包括Micronaut Core 4.3.5、缺陷修复、依赖性升级以及模块更新,如Micronaut Security、Micronaut Data和Micronaut Logging。关于该版本的更多详细信息,请参阅发布说明。
IBM Semeru Runtimes
IBM发布了 9.0 版本的通用基础镜像(Universal Base Image,UBI)最小化的 Liberty 容器镜像,这是一个精简的镜像,可用来制作较小的应用镜像,支持Semeru Runtimes Java 21 JRE。UBI 9 最小镜像是从Open Liberty 24.0.0.1发布时开始提供的。
IBM 还发布了 Semeru Runtime 开放版本 21.0.2、17.0.10、11.0.22 和 8.0.402 的 2024 第一季度更新,它们分别基于Eclipse OpenJ9 0.43与 OpenJDK jdk-21.0.2+13、jdk-17.0.10+7、jdk-11.0.22+7 和 jdk8u402-b06。该版本包含了自 2024 年 1 月份甲骨文关键补丁更新(Critical Patch Update)中最新的 CPU 和安全修复。
Quarkus
红帽公司发布了Quarkus的 3.7.2 版本,其中包含一些值得关注的变更,比如,解决了端点返回CompletableFuture
时 SSL 请求挂起的问题;始终在运行时执行OpenIDConnectSecurityFilter
类,以确保 OpenAPI 文档将会使用quarkus.oidc.auth-server-url
属性的运行时值;新的CheckCrossReferences
类,用来检查标准 ID(canonical ID)的交叉引用。关于该版本的更多详细信息,请参阅变更日志。
Helidon
Helidon 4.0.5 版本发布,主要解决了如下问题:KafkaSeTest
类中定义的测试在 Windows 操作系统上失败;通过在HelidonTelemetryContainerFilter
类中为资源路径添加null
检查,导致用户测试出现NullPointerException
异常;以及处理 URI 中字符编码的问题。关于该版本的更多详细信息,请参阅变更日志。
同样,Helidon 3.2.6 版本也已经发布,提供了依赖性升级和值得关注的变更,例如,支持手动计算提供的任务数,而不是仅仅依赖ThreadPool
类中定义的 getActiveCount()
方法所返回的不准确值;解决了TracerProviderHelper
类中定义的currentSpan()
方法在TracerProvider
类的实现为null
的情况下抛出NullPointerException
的问题。关于该版本的更多详细信息,请参阅变更日志。
Hibernate
Hibernate ORM 6.4.4.Final发布,提供了依赖性升级并解决了如下的问题:将 WildFly 升级到 Hibernate 6.4.3 后使用BytecodeProvider
接口的默认实例时出现NullPointerException
;使用BasicTypeRegistry
类时出现内存泄漏;以及查询中不支持的元组组合所导致的IllegalStateException
。有关此版本的更多详细信息,请参见问题列表。
Eclipse Vert.x
Eclipse Vert.x的4.5.3和4.4.8版本发布,主要解决了如下的问题:CVE-2024-1300,这是一个允许攻击者发送带有伪造服务器名称的传输层安全(Transport Layer Security,TLS)客户端“hello”消息的漏洞,在配置支持 TLS 和服务器名称标识(Server Name Indication,SNI)的 TCP 服务器上,会导致内存泄露,进而引发 JVM 内存耗尽的错误;PgDecoder
类中定义的decodeError()
方法会出现NullPointerException
;以及WebClient
接口生成的临时文件未删除。关于这些版本的更多详细信息,请参见4.5.3版本和4.4.8版本的发布说明。
Eclipse JKube
Eclipse JKube 1.16.0 发布,提供了一些值得注意的变更,例如,支持从配置生成 Spring Boot 应用程序属性的占位符;新的JKubeArchiveDecompressor
类,初步支持.tgz
和.zip
文件;支持使用 IPv6 地址字面量解析 Docker 镜像名称。关于该版本的更多详细信息,请参阅发布说明。
Infinispan
Infinispan 14.0.24 版本提供了众多依赖性升级和功能改进,包括,防止HotRodClient
类中的 Java MBeanServer
接口实现所导致的泄漏;默认启用Insights Java Client。有关该版本的更多详细信息,请参阅发布说明。
LangChain for Java
0.27.0 版本的LangChain for Java(LangChain4j)提供了多项缺陷修复、与 Infinispan 和 MongoDB 的新集成,以及一些值得注意的变更,例如,改进了对 AstraDB 和 Cassandra 的支持;为LanguageModelQueryRouter
类提供了回退策略;增强了ServiceOutputParser
类,允许outputFormatInstructions()
方法记录jsonStructure()
方法中的嵌套对象。有关该版本的更多详细信息,请参阅发布说明。
JHipster
JHipster Lite 1.4.0 版本发布,提供了缺陷修复、依赖性关系升级和新特性/特性增强,例如,自动启用 Spring 本地 profile 文件以便于开发的新模块;支持在 Maven profile 中以编程方式声明依赖关系;将getJavaVersion()
方法更名为javaVersion()
,以符合 JHipster Lite 不使用get
前缀的惯例。有关该版本的更多详细信息,请参阅发布说明。
Testcontainers for Java
Testcontainers for Java 1.19.5 发布,它的 Apache Commons Compress 版本从 1.25.0 降到了 1.24.0 版,以避免 Commons Compress 1.25.0 中的最新变更所导致的类路径冲突。有关该版本的更多详细信息,请参阅发布说明。
Java Operator SDK
Java Operator SDK 4.8.0 发布,具有以下值得关注的变更:改进了冲突异常的日志记录;多个控制器可对同一资源类型进行调节,但使用不同的标签;解决了相同类型异常的多个依赖项的问题。有关该版本的更多详细信息,请参阅发布说明。
Multik
Multik 0.2.3 版本已迁移至 Kotlin 1.9.22,它是一个用于 Kotlin 的多维数组库。新特性包括:使用锚定的数组(pinned array)来优化Kotlin/Native中的sin
、cos
、log
、exp
函数;使用Vector128
类在 Kotlin/Native 中实现复数;增强在 Windows 操作系统和 Apple Silicon 处理器上的性能。有关该版本的更多详细信息,请参阅发布说明。
Gradle
Gradle 7.6.4 是第四个维护版本,包含以下特性:升级到Apache Ant 1.10.14,以解决CVE-2020-11979漏洞,在该漏洞中,由于fixcrlf
任务允许在没有为当前用户分配权限的情况下删除临时文件并创建新文件,攻击者可将修改过的源文件注入到构建过程中;升级到Google Guava 32.1.1,以解决FileBackedOutputStream
类中的CVE-2023-2976漏洞,在该漏洞中,机器上能够访问默认 Java 临时目录的其他用户和应用程序访问可访问该类创建的文件;升级至Apache Ivy 2.5.2,以解决CVE-2022-46751漏洞,该漏洞存在于 Apache Ivy 中,由于对XML外部实体引用(XML External Entity Reference)的限制不当,攻击者能够泄露数据、访问仅限于运行 Ivy 程序的机器的资源,或以不同方式干扰 Ivy 的执行。有关该版本的更多详细信息,请参阅发布说明。
原文链接:
Java News Roundup: JDK 22 RC1, JBoss EAP 8.0, GlassFish 8.0-M2, LangChain4j 0.27
欢迎加入 InfoQ 读者技术交流群,与志同道合的朋友一起探讨知识,交流经验。
评论