OpenJDK
Java社区进程(JCP)执行委员会投票通过了 JSR 396(Java SE 21平台),向着计划在 2023 年 9 月 19 日发布的 GA 版本继续迈进。
JEP 442(外部函数和内存API第3个预览版)将在即将发布的 JDK 21 中交付,JEP 草案 8310626(外部函数和内存API)预计将在 JDK 22 中交付,那是Panama项目的主要特性之一。该项目将 JVM 与定义明确的“外部”(非 Java) API 连接起来,其中包括许多 C 程序员常用的接口。
Per-Åke Minborg是 Oracle 的一名技术顾问。他在这篇博文中讨论了外部函数和内存 API 的性能优势。Minborg 提供了一个关于字符串转换的基准测试:在 JDK 21 和 JDK 22 中使用该 API vs. 使用旧的 Java 本机接口(JNI)调用。
JDK 21
Build 35仍然是 JDK 21早期访问构建的当前构建。要了解关于这个版本的更多细节,请查看发布说明。
JDK 22
JDK 22早期访问构建Build 13在上周发布,其中包括 Build 12 的更新,主要是修复了各种问题。要了解关于这个版本的更多细节,请查看发布说明。
对于JDK 22和JDK 21,我们鼓励开发人员通过Java Bug数据库报告 Bug。
GraalVM
在迈向 1.0 版本的道路上,Oracle 实验室发布了Native Build Tools的0.9.25版本。这是一个 GraalVM 项目,其中包含与 GraalVM 原生镜像进行互操作的插件。这个最新版本将依赖项升级到了GraalVM Reachability Metadata Repository 0.3.4。要了解关于这个版本的更多细节,请查看变更日志。
Spring Framework
为了解决 N+1 问题,Spring Data 团队引入了单查询加载(Single Query Loading)。这是一种通过单个SELECT
语句加载任意聚合的技术。随着Spring Data JDBC 3.2.0-M2 的发布,该团队宣称,这项新技术是“解决 N+1 问题的开始”。类RelationalMappingContext
中新增了一个方法setSingleQueryLoadingEnabled(true)
,用于启用单查询加载。目前,该特性只适用于简单聚合(只包含一个聚合根和其他实体的单个集合)。但其团队承诺,未来的版本将改进这一限制。
Quarkus
Red Hat发布了Quarkus的 3.3.1 版本,带来了依赖项升级和一些值得注意的变化,其中包括:修复了MicrometerRecorder
类中潜在的NullPointerException
;在VertxPoolMetrics
类中新增计数器rejected
,用来记录被拒绝的请求数;修复了VertxHttpExporter
类解析/v1/traces
端点有误的问题。要了解关于该版本的更多细节,请查看变更日志。
类似的,Quarkus 3.2.5.Final也带来了一些值得注意的变化,其中包括:修复了当CsrfRequestResponseReactiveFilter
类检查媒体类型时,跨站点请求伪造扩展中潜在的NullPointerException
;禁用ReactiveMongodbPanacheResourceTest
类中的testMoreRepositoryFunctionalities()
方法;修复了一个在多个线程中调用 bean 的写锁定方法时发生死锁的问题,其中该方法调用了同一 bean 中的另一个写锁定方法。要了解关于这个版本的更多细节,请查看变更日志。
最后,Quarkus 2.16.10.Final发布,将依赖项Snappy Java从版本 1.1.8.4 升级到版本 1.1.10.1。要了解关于该版本的更多细节,请查看变更日志。
Micronaut
Micronaut 基金会发布了Micronaut Framework 4.1.0 版本,带来了Micronaut Core 4.1.3和一些新特性,其中包括:Bean映射器自动创建一种类型与另一种类型的映射;新增一个 Introspection Builder,如果一个类型只能通过构造器模式来构造,则可以利用@Introspected
注解的 builder 成员来生成一个动态构造器;针对使用Kotlin符号处理(KSP)构建 Micronaut 应用程序做了改进。要了解关于该版本的更多细节,请查看发布说明。
Microaut Frameworkd 4.0.6(第6个维护版本)升级了以下模块:Micronaut for Spring、Micronaut JAX-RS、Micronaut Servlet、Micronaut Validation、Micronaut Redis、Micronaut Tracing、Micronaut AWS和Micronaut Kafka。要了解关于该版本的更多细节,请查看发布说明。
WildFly
WildFly 29.0.1发布,带来了组件升级(从 Quickstarts 29.x 迁移到 BOMs and WildFly Server 29.0.1.Final)和一些值得注意的 Bug 修复,其中包括:新依赖项org.jboss.jts to jdk.jconsole
导致 WildFly 29.0.0 不能在 Eclipse Temurin 17.0.8 上启动的问题;将依赖项升级到Square Okio 3.4.0,以解决CVE-2023-3635漏洞(可能导致 Okio 客户端在通过GzipSource
类处理精心制作的 GZIP 归档文件时发生拒绝服务);升级到 WildFly 29.0.0 后与 MicroProfile RestClient 和 Jakarta CDI 规范有关的问题。要了解关于该版本的更多细节,请查看发布说明。
Hibernate
Hibernate ORM的 6.3.0 和 6.2.8 版本发布,带来了一些值得注意的变化,其中包括:初步支持 Jakarta EE 11 的Jakarta Persistence 3.2规范,包括明确了 HQL/JPQL 查询中的数值字面量类型;新的Hibernate 6入门指南;Hibernate查询语言新语法和新特性指南;作为 JPA 静态元模型生成器的一部分,能够为命名查询生成 DAO 风格的方法;生成器可以处理任意方法,而且创建出的查找器方法与使用新注解@Find
的查询方法类似。
Hibernate Reactive 2.0.5.Final发布,兼容 Hibernate ORM 6.2.8.Final 和 Vert.SQL driver 4.4.5。值得注意的变化包括:MutinyGenerator
类中定义的generate()
方法返回类型从Uni<Object>
更改为Uni<?>
;增加了针对@TimeZoneStorage
注解的测试;新增ParametersProcessorTest
类来修复OracleParameters
、PostgresParameters
和SQLServerParameters
类处理参数时的转义问题。要了解关于该版本的更多细节,请查看发布说明。
Eclipse 基金会
Eclipse GlassFish 7.0.8 是第8个维护版本。该版本初步支持 JDK 21,并优化了 CDI 扩展,减少了非必要的ProcessAnnotatedType
接口处理程序调用。它还带来了一些值得注意的 Bug 修复,包括:RWLockDataStructureTest
类中的一个 JDK 11 兼容性问题;多 jar 文件兼容性问题;管理员用户将密码改为空时的 Admin Console 行为。要了解关于该版本的更多细节,请查看发布说明。
Eclipse Vert.x 4.4.5发布,带来了依赖项升级和一些值得注意的变化,其中包括:改进ForwardedParser
类,支持未用方括号括起来的 IPV6 地址;在实现WebSocketBase
接口时,将帧聚合器与帧处理程序解耦;修复了 HTTP/2 在超时时抛出HttpClosedException
而不是TimeoutException
的问题。要了解关于该版本的更多细节,请查看发布说明和弃用及破坏性变更清单。
Eclipse JKube 1.14.0发布(一个用于 Kubernetes 和 OpenShift 的 Java 工具和插件实用程序),带来了 Bug 修复、改进,并支持 Gradle 8、Helidon、Spring Boot Layered Jar和向 OCI 注册中心推送Helm chart。要了解关于该版本的更多细节,请查看发布说明。
JReleaser
JReleaser 1.8.0 版本发布(一个简化项目发布的 Java 实用程序),提供了文档改进、依赖项升级和一些值得注意的变化,其中包括:为缺失的 announcer 创建默认模板;升级到最新的 SDKMan 端点;改进 GitHub 422 错误响应的错误处理。要了解关于该版本的更多细节,请查看发布说明。
值得注意的是,SLSA(Supply Chain Levels for Software Artifacts)已经宣布与 JReleaser、Maven 和 Gradle 的贡献者合作发布SLSA 1.0。这验证了 GitHub Actions BYOB(Build Your Own Builder)框架的设计,并证明了它的灵活性。
OpenXava
OpenXava 7.1.5发布,带来了一些显著的变化,其中包括:新增CompositeFilter
类,用于在 Tab.setFilter()
中同时使用两个IFilter
,也可作为 @Tab
注解的IFilter
;新增环境变量XAVA_CALENDAR_VIEWEVENT_ACTION
,用于定义日历单击事件的动作;修复在 @Editor("ValidValuesRadioButton")
中使用枚举时会在日志中产生IndexOutOfBoundsException
异常的问题。要了解关于该版本的更多细节,请查看发布说明。
原文链接:
https://www.infoq.com/news/2023/09/java-news-roundup-aug28-2023/
相关阅读:
Java 近期新闻:JDK 21 RC1、Apache Camel 4.0、Payara Platform、Apache Tomcat、Micronaut
评论