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.0、Kotlin 1.6.10、Hibernate 5.6.3.Final以及多个与 Spring 相关的项目。
版本2.5.8包含46个bug修复和文档改进,以及许多依赖项升级,如Log4j 2.17.0、Kotlin 1.5.32、Hibernate 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.15、5.3.13、5.4.10、5.5.4和5.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-nsq
和camel-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 XML(docx
/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/
评论