2021 年 10 月 11 日起始周 Java 新闻更新:OpenJDK、JDK 18、Spring Framework、Grails 5.0、Micronaut 3.1、Helidon 2.3.4、Hibernate ORM 和 Hibernate Reactive GA 版本、与 WildFly 25、GraalVM Native Tools 0.96、Apache Camel 3.11.3、Piranha 21.10.0 相关的更新,以及 Kotlin 的 Multik 多维数组开发库。

 OpenJDK

 经过一周的评审,JEP 408,也就是 Simple Web Server 由 JDK 18 的 Proposed to Target 状态进入到了 Targeted。这个 JEP 提供了一个基于 HTTP 命令行的、最小化的、只提供静态文件的 Web 服务器。这个工具主要用于构建原型、临时编码和测试,特别是在培训环境中。这个 Web 服务器可以通过以下命令来启动:

 $ java -m jdk.httpserver [-b bind address] [-p port] [-d directory] [-h to show help message] [-o none|default|verbose]

复制代码

JEP 419,也就是外部函数和内存 API 从 Draft 状态进入到了 Candidate。该 JEP 从 JEP 412(已在 JDK 17 中发布)演化而来,基于 Java 社区的反馈做了改进,主要变更包括:支持更多的内存访问变量句柄,如 boolean 和 MemoryAddress 接口;MemoryAddress 和 MemorySegment 接口的解除引用 API;简化持有调用方法句柄的 API,不再需要传递 MemoryType 枚举;在内存段之间拷贝数组的新 API。

JDK 18

JDK 18 尝鲜构建版Build 19可用,修复了在 Build 18 中存在的各种问题,更多细节可参看发布公告

JDK 18 目前的特性集合如下:

开发者可以通过Java Bug Database提交 bug。

Spring Framework

Spring Framework 发布多个单点版本。

5.3.11 版本包含了 32 个问题修复和改进,5.2.18.RELEASE 版本包含 10 个问题修复和改进。这个两个版本都提供了一个增强的 DefaultResponseErrorHandler 类,可以将整个错误响应消息体记录到日志当中。5.3.11 版本的其他新特性包括:支持非公开的 Record 声明;可以直接调用实现了 Closeable 和 AutoCloseable 接口的类的 close()方法。

Grails

Grails 基金会发布了 Grails 5.0,升级了多个依赖项:Apache Groovy 3、Micronaut Framework 3、Gradle 7、Spring Boot 2.5、Spring Framework 5.3 以及 Spock 2.0。其他值得注意的变更还包括:弃用基于点号的访问模式;默认按类型装配,取代了按名字装配;Gradle 插件改动。更新细节可在发布公告文档中找到。

Micronaut

Micronaut 基金会发布了Micronaut 3.1,带来了大量的新特性,包括:支持 JDK 17;工厂 Bean 可以创建原始类型或原始数组类型的 Bean;新的 @InjectScope 注解,用于销毁无定义作用域的 Bean;对生成类的自检进行了优化;改进了针对 Kotlin 的上下文传播;在 HTTP 过滤器中使用正则表达式。

Helidon

Helidon 2.3.4 发布,改进的特性包括:修复了 WebServer 组件存在的问题,比如 Netty 服务器在负载下会挂起,以及在检查消息体是否被完全读取时出现的静态条件;修复了 WebClient 的一个问题,如果一个主机地址出现在一个非主机列表中,将其转换成相对的请求 RUI;修复了与 Metrics 组件相关的问题,如新的 PeriodExecutor 类会错误地记录警告信息,警告信息的消息可能是错误的,以及指标性能优化导致的原生镜像构建错误。更多细节可以参看发布公告

Hibernate

Hibernate 发布了Hibernate ORM的单点版本和Hibernate Reactive的 GA 版本。

Hibernate ORM 5.6.0.Final 修复了同时使用 @EmbeddedId 和 @MapsId 时会出现的一个错误,将依赖项 ByteBuddy 升级到 1.11.20,增加了为升级到 Hibernate ORM 6.0 而发出的弃用警告信息。

Hibernate ORM 6.0 第一个 Beta 版本的特性包括:迁移到了 Jakarta Persistence;改进的类型系统,引入了新的根据位置读取 JDBC 记录的概念;新的类型注解;改进的时间区域支持。更多细节可以在用户指南迁移指南发布公告页找到。

Hibernate Reactive 1.0.0.CR10 发布,支持 MySQL、DB2 和 MS SQL Server 的自动模式验证和更新

WildFly

WildFly 团队向 Java 社区发布了很多与 WildFly 25 相关的更新。

WildFly 25 的源码到镜像(Source to Image,S2I)Docker 镜像已在 quay.io 上发布,用于构建、分析和发布容器镜像。这些镜像包含了与 WildFly 25 GA 版本相关的更新。

WildFly Bootable JAR 6.0 Maven 插件发布,特性包括:Galleon 配置示例;自动生成自签名安全证书;原生支持 OpenID Connect。更多细节可以参看这篇博文

WildFly 25 现在支持 MicroProfile Reactive Messaging 2.0 规范,基于SmallRye Reactive Messaging实现。开发者现在可以使用 @Channel 注解和 Emitter 接口将数据推送到响应式流中。

GraalVM

在 1.0 版本之前,Oracle 实验室发布了 0.9.6 版本的Native Build Tools,提供用于操作 GraalVM 原生镜像的插件。该版本集成了 JUnit 5.8,不过也引入了一个重大变化,导致 Maven 用户需要定义插件扩展。

<plugin>    <groupId>org.graalvm.buildtools</groupId>    <artifactId>native-maven-plugin</artifactId>    <version>${native.maven.plugin.version}</version>    <extensions>true</extensions></plugin>

复制代码

不再需要 junit-platform-native 依赖项,不过 Gradle 用户仍然需要这个依赖项。

Apache Camel

Apache Camel 3.11.3 发布,包含 26 个 bug 修复和改进,包括:依赖项 Apache Karaf 升级到 1.1.11、Camel Spring Boot 升级到 2.5.5。更多细节可参看发布公告

Piranha

Piranha 21.10.0 发布。该版本号称是“第一个支持版本”,提供了一个新的支持分支,与自 JDK 17 以后的 LTS Java 版本对齐,并支持 Jakarta EE。更多细节可以在官方文档和问题追踪系统中找到。

Kotlin Multik 开发库

JetBrains 发布 Multik 0.1,一个新的多维数组开发库,可以读写.csv 文件,执行代数运算,支持复数,并改进了已有函数的性能。更多细节可以在这篇博文中找到。

原文链接

Java News Roundup: Grails 5.0, Spring Framework, Hibernate, WildFly and the Kotlin Multik Library