OpenJDK
在评审结束后,JEP 455(模式、instanceof 和 switch 中的原始类型(预览))已从 Proposed to Target 进入 Targeted(JDK 23)状态。该 JEP 来自 Project Amber,旨在增强模式匹配,允许在模式中使用原始类型以及扩展 instanceof
和 switch
来处理原始类型。Oracle 高级工程师Aggelos Biboudis最近发布了这一特性的更新草案规范。
JDK 23
JDK 23 的 Build 7 已推出,包含自 Build 6 以来的更新,其中包括对各种问题的修复。关于此版本的更多详细信息,请参阅发布说明。
JDK 22
JDK 22 的 Build 33 也已推出,包含自 Build 32 以来的更新,其中包括对各种问题的修复。有关此版本的更多详细信息,请参阅发布说明。
对于JDK 23 和 JDK 22,开发者可以通过 Java Bug Database 报告错误。
Jakarta EE 11
Eclipse 基金会 Jakarta EE Developer AdvocateIvar Grimstad在他每周的 Hashtag Jakarta EE 博客中提供了关于 Jakarta EE 11 及其后续版本的最新进展。根据 Jakarta EE 规范流程,Jakarta EE 规范委员会将对计划中的 Jakarta EE 11 发布进行评审并投票批准。如果投票未通过,Jakarta EE 11 的发布日期可能会推迟。
此外,Jakarta EE 工作组一直在考虑 Jakarta EE 11 之外的一些新规范的想法,例如 Jakarta AI。该小组已经创建了一个 Google 文档,供 Java 社区评审并提供输入/反馈。
Spring Framework
Spring Framework 团队披露,于 2024 年 1 月 11 日发布的 6.1.3 和 6.0.16 版本解决了 CVE-2024-22233 Spring Framework Server Web DoS 漏洞,该漏洞允许攻击者提供特制的 HTTP 请求,如果应用程序使用 Spring MVC,并且类路径上存在 Spring Security 6.1.6+ 或 6.2.1+,则可能导致拒绝服务。
Spring Shell 3.2.1 和 3.1.8 版本已发布,带来了显著变更:解决了在子命令为空时命令别名在类型级别上不起作用的问题;由于原生镜像的问题,为避免导入应用程序可能不需要的类,拆分了 JLine 依赖项;解决了如果 shell 隐藏光标,在 终端多路复用器(tmux)中不会还原 shell 光标的问题。这两个版本都构建在 Spring Boot 的 3.2.2 和 3.1.8 之上。有关这些版本的更多详细信息,请参阅 3.2.1 和 3.1.8 的发布说明。
Spring Cloud Commons 4.1.1 已发布,修复在自动配置过程中实例化 @LoadBalanced 注解的 bean 时,未正确注册 Spring Framework BeanPostProcessor 接口的实现。有关此版本的更多详细信息,请参阅 发布说明。
BellSoft
BellSoft发布了Liberica Native Image Kit 23.1.2(适用于 JDK 21)和 23.0.3(适用于 JDK 17)。这是 Oracle Critical Patch Update的一部分,用于解决安全问题和进行错误修复。其他显着的改进包括:对 AWT 和 JavaFX 全屏模式的支持;在 AMD64 平台上强化内存复制例程,并在可用时使用 AVX 指令以提高性能;以及 SubstrateVM 监视器进入/退出例程,用于加速原生镜像的启动。
WildFly
Red Hat发布WildFly 31,包含了应用服务器特性,包括:支持 MicroProfile 6.1、Hibernate ORM 6.4.2、Hibernate Search 7.0.0 和Jakarta MVC 2.1;使用 MicroProfile Reactive Messaging 3.0 规范与高级消息队列协议(AMQP)1.0 交换消息。此版本还引入了WildFly Glow,一个命令行和一组工具,用于“提供一个精简的 WildFly 服务器实例,其中包含应用程序所需的服务器功能”。InfoQ 将跟进更详细的新闻报道。
Quarkus
Red Hat还发布了Quarkus 3.6.7,其中有一些值得注意的变化,例如:确保刷新后的 CSRF cookie 根据令牌标头的存在保留其原始值;Hibernate JPA 2元模型生成器的依赖项管理;在使用多个持久化单元时,解决Spring Data JPA与实体管理器的问题。有关该版本更多详细的信息,请参阅变更日志。
此外,Quarkus 3.2.10.Final(3.2 LTS 版本系列的第十个维护版本)主要提供了以下 CVE 解决方案:CVE-2023-5675,这是 Quarkus RestEasy Reactive 和 Classic 应用程序中用于自定义 Quarkus 扩展的端点的授权漏洞;以及CVE-2023-6267,这是基于注解的安全漏洞,资源可能使用的 JSON 在评估和应用安全约束之前被处理,即反序列化。有关此版本的更多详细信息,请参阅变更日志。
Helidon
Helidon 4.0.4 带来了一些显著的变化,包括:解决了TracerProviderHelper类中currentSpan()
方法在TracerProvider类的实现为null
时抛出NullPointerException
的问题;清理和简化了在WebClient配置中进行名字解析时确定 IP 地址类型(v4 或 v6)的逻辑;当没有正确配置时,安全传播将被禁用。有关此版本的更多详细信息,请参阅变更日志。
Micronaut
Micronaut 基金会发布Micronaut Framework 4.2.4,其中包括Micronaut Core 4.2.4、问题修复、依赖项升级和模块更新:Micronaut AWS、Micronaut Flyway、Micronaut JAX-RS、Micronaut JMS、Micronaut MicroStream、Micronaut MQTT和Micronaut Servlet。有关此版本的更多详细信息,请参阅发行说明。
Hibernate
Hibernate Reactive 2.2.2.Final 发布,包含:对 Hibernate ORM 6.4.2.Final 的依赖项升级;删除导致 Quarkus 启动时引发ClassCastException的未使用代码;以及新的注解@EnableFor和@DisabledFor,分别用于启用和禁用数据库类型的测试。有关此版本的更多详细信息,请参阅发行说明。
Hibernate Search 7.1.0 第二个 alpha 版发布:与 Hibernate ORM 6.4.2.Final、Lucene 9.9.1 和 Elasticsearch 8.12 的兼容性;集成了 Elasticsearch/OpenSearch 的矢量搜索功能;在检查元模型时查找每个字段的能力。有关此版本的更多详细信息,请参阅发行说明。
Eclipse Store
Eclipse Store 1.1.0 发布,引入了一些新特性,包括:使用Java Management Extensions(JMX)框架进行监控;与 Spring Boot 3.x 的集成;实现 JSR 107(Java Temporary Caching API(JCache))。有关此版本的更多详细信息,请参阅发行说明。
Infinispan
Infinispan 15.0.0.Dev07 和 14.0.22.Final 进行了依赖项升级并包含了一些显著的错误修复,例如:在SoftIndexFileStoreFileStatsTest类中定义的testExpirationCompactionOnLogFile()
方法导致测试失败;在JGroupsTransport类中定义的getMembersPhysicalAddresses()
方法引发的IllegalArgumentException
;以及由于Hot Rod Client的故障转移而引发的NullPointerException
。有关这些版本的更多详细信息,请参阅15.0.0.Dev07版本说明和14.0.22版本说明。
JHipster
JHipster Lite 1.3.0、1.2.1 和 1.2.0 已发布,包含了问题修复、依赖项升级和新功能/增强功能,例如:改用LinkedHashSet类代替HashSet类来改进可重复生成的代码;使用 Angular 17 的新特性,包括 Signals 和 Control Flow;以及对Protocol Buffers的支持。有关这些版本的更多详细信息,请参阅1.3.0版本说明、1.2.1版本说明和1.2.0版本说明。
Testcontainers for Java
Testcontainers for Java 1.19.4 发布,包含了问题修复、文档改进和新特性,例如:增强了exec
命令,支持设置工作目录和环境变量;对 MySQL 8.3 的支持;将Selenium的默认启动时间增加到 60 秒。有关此版本的更多详细信息,请参阅发行说明。
Gradle
Gradle 8.6 的第三个候选版本提供了一些持续的改进,包括:通过GRADLE_ENCRYPTION_KEY
环境变量在配置缓存中支持自定义加密密钥;错误和警告报告的改进;改进Build Init Plugin,支持各种类型的项目;以及增强的构建编写过程,方便插件作者和构建工程师开发自定义构建逻辑。有关此版本的更多详细信息,请参阅发行说明。
原文链接:https://www.infoq.com/news/2024/01/java-news-roundup-jan22-2024/
评论