Java 近期新闻:更多的 Log4Shell 声明,Spring 和 Quarkus 更新,值对象相关的新 JEP

  • 2022-01-06
  • 本文字数:2359 字

    阅读完需:约 8 分钟

Java 近期新闻包括:OpenJDK 的新特性,一个新的值对象相关的草案、JDK 18、JDK 19、Loom 项目、其他供应商对 Log4Shell(Log4j 在 Shell 下的实现)的声明、大量的 Spring 和 Quarkus 的更新、Hibernate ORM 60.0-M3、以及 Apache Camel、Camel Quarkus、Apache Tika 2.2.1、GraalVM Native Build Tools 0.9.9 的小版本发布(point release)。

OpenJDK

上周,一个新的 JEP 草案,预览版本的值对象(Value Objects)被添加到了列表中。 这种新的预览语言和VM特性建议将值类型(Type)定义为无标识的值类(Class)并指定其实例的行为来增强 Java 对象模型。 这些类只包含最终的实例字段,而没有对象标识。

JDK 18

上周,JDK 18早期体验版本第29版发布了,其中包含了对第 28 版中各种问题的修复和更新。更多详细信息请查看发布说明

JDK 19

上周,JDK 19早期体验版本第3版也发布了,其中包含对第 2 版中各种问题的修复和更新

对于 JDK 18 和 JDK 19,均鼓励开发人员通过Java Bug Database来提交 Bug。

Loom 项目

Loom 项目(Project Loom)的早期体验版本,19-loom+1-11 版,已经可以在 Java 社区使用了,它是基于 JDK 19 早期访问版本的第2版构建的。

针对 Log4Shell(Log4j)漏洞,其他供应商的声明

甲骨文(Oracle)关于 Helidon 的声明

默认情况下,基于 Helidon 的应用程序不会使用 Log4j,Log4j 也不会出现在类路径中。 但是 Helidon 提供了一个可选的 Log4j 集成模块( helidon-logging-log4 ),并且 Helidon 会管理 Log4j 的版本。

如果你的应用程序使用了helidon-logging-log4,或者你的应用程序直接使用了 Log4j,那么你的应用程序需声明对 Log4j 的显式依赖。但是这个依赖的版本可能会被 Helidon 管理。

JetBrains 关于 JetBrains 市场中第三方插件的声明

由于有很多基于 IntelliJ 的插件,我们最初使用 API Watcher 来检查哪些插件以及它们的哪些确切的版本使用了 log4j 中的哪些内容。我们暂时隐藏了所有检测到的使用了 log4j 的插件版本。

我们知道,这样的检查可能会产生一些误报。但是我们更愿意谨慎行事,更安全地使用它,并引起许多插件作者对潜在风险的注意,而不是错过那些需要重新打包 log4j 的插件。

Spring 框架

Spring 本周非常忙碌,因为有许多不同的 Spring项目的小版本都发布了。

Spring Boot 2.6 和 2.5 版本系列有 2 个小版本发布:

版本2.6.2包含55个bug修复和文档改进,以及许多依赖项升级,如Log4j 2.17.0Kotlin 1.6.10Hibernate 5.6.3.Final以及多个与 Spring 相关的项目。

版本2.5.8包含46个bug修复和文档改进,以及许多依赖项升级,如Log4j 2.17.0Kotlin 1.5.32Hibernate 5.4.33以及多个与 Spring 相关的项目。

Spring Cloud Square 0.4.0 已经发布了,其特性包含:支持对非负载均衡的用例进行调整能够为每个用 @RetrofitClient 注解的 Retrofit 客户端实例配置不同的 WebClient.Builder bean;以及为OkHttpClient类实例集成Spring Cloud Sleuth

Spring Native 0.11.1 已经可用,其中包含了13个bug修复和文档改进,以及对 Spring Boot 2.6.2 的依赖升级。

Spring Integration 5.5.7 已经发布,其中包含了大量的 bug 修复。 更多详细信息请查看迁移指南(针对潜在的破坏性变更)和变更日志

上周还发布了Spring Security版本的5.2.155.3.135.4.105.5.45.6.1等小版本,其中包含一些 bug 修复和小的改进。

Quarkus

Quarkus 2.5.4.Final 是一个维护版本,提供了对 Jackson 2.12.6 的依赖升级,并修复了 Jackson Databind 中可能出现的拒绝服务(Dos)攻击。 更多详细信息请查看变更日志

Quarkus 2.6.0.Final已经发布,其特性包括:依赖升级到了 SmallRye Reactive Messaging 3.13、Kafka 3.0、Kotlin 1.6 和 Camel 3.14;已将诸如 Neo4J、Amazon Alexa、Reactive Messaging HTTP 等扩展迁移到了Quarkiverse Hub;一个新的用于缓存的编程API;以及一个更小的、基于UBI Micro的 Docker 镜像,可用于本地可执行文件。 该版本不包含来自 Quarkus 2.5.4.Final 的修复内容,但 Quarkus 2.5.4.Final 的修复内容包含在了 Quarkus 2.6.1.Final 中。

Quarkus 2.6.1.Final 是 2021 年的最后一个维护版本,包括了 Quarkus 2.5.4.Final 的所有修复和一些依赖项升级。更多详细信息请查看变更日志

Hibernate

上周发布了Hibernate ORM 6.0 的第3个beta版本,其中添加了新的注解: @IdGeneratorType允许以类型安全的方式配置IdentifierGenerator 接口;@TenantId 使用基于列的多租户来标记定义租户的属性;@AttributeBinderType允许自定义属性映射的定义方式。更多详细信息请查看 Hibernate 6.0 的用户指南迁移指南

Apache Camel

阿帕奇(Apache)软件基金会发布了Camel 3.7 版本系列中的最后一个小版本。 3.7.7 版本包含了 7 个 bug 修复和改进,并对 Logback 1.2.8、Log4j 2.16.0、以及 camel-nsqcamel-corda组件的依赖项进行了升级。更多详细信息请查看发布说明

为了与 Quarkus 保持一致,阿帕奇还发布了 Camel Quarkus 2.6.0,其中包含了 Camel 3.14.0 和 Quarkus 2.6.0,而 Quarkus 2.6.0.Final 和 JFR 原生支持。

Apache Tika

Apache Tika发布了其元数据提取工具包的 2.2.1 版。以前它是 Apache Lucene 的一个子项目,这个最新版本包括了对 Log4j 2.17.0 的升级,以及对Office Open XMLdocx/pptx/xlsx)回归的关键修复,该回归是在版本 2.2.0 中引入的。更多详细信息请查看发布说明

GraalVM Native Build Tools

在通往 1.0 版本的道路上,甲骨文实验室(Oracle Labs)发布了0.9.9版本Native Build Tools,这是一个 GraalVM 项目,包含了与 GraalVM Native Image 互操作的插件。 这个最新的版本对 Gradle 插件进行了修复,即:如果缺少类路径条目,则会放松资源检测机制;一个与自定义二进制文件相关的合适的原生推理任务,即除main二进制文件和test二进制文件之外的二进制文件;以及对禁用工具链检测的操作进行返工

原文链接:

https://www.infoq.com/news/2021/12/java-news-roundup-dec20-2021/