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)。
上周,一个新的 JEP 草案,预览版本的值对象(Value Objects) 被添加到了列表中。这种新的 预览语言和 VM 特性 建议将值类型(Type)定义为无标识的值类(Class)并指定其实例的行为来增强 Java 对象模型。这些类只包含最终的实例字段,而没有对象标识。
上周,JDK 18早期体验版本 的 第 29 版 发布了,其中包含了对第 28 版中各种 问题 的修复和 更新。更多详细信息请查看 发布说明(https://jdk.java.net/18/release-notes)。
上周,JDK 19早期体验版本 的 第 3 版 也发布了,其中包含对第 2 版中各种 问题 的修复和 更新。
对于 JDK 18 和 JDK 19,均鼓励开发人员通过 Java Bug Database 来提交 Bug。
Loom 项目(Project Loom)的 早期体验版本,19-loom+1-11 版,已经可以在 Java 社区使用了,它是基于 JDK 19 早期访问版本的 第 2 版 构建的。
甲骨文(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 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 修复。更多详细信息请查看 迁移指南(针对潜在的破坏性变更)(https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-5.4-to-5.5-Migration-Guide)和 变更日志(https://github.com/spring-projects/spring-integration/releases/tag/v5.5.7)。
上周还发布了 Spring Security 版本的 5.2.15、5.3.13、5.4.10、5.5.4 和 5.6.1 等小版本,其中包含一些 bug 修复和小的改进。
Quarkus 2.5.4.Final 是 一个维护版本,提供了对 Jackson 2.12.6 的依赖升级,并修复了 Jackson Databind 中可能出现的 拒绝服务(Dos)攻击。更多详细信息请查看 变更日志(https://github.com/quarkusio/quarkus/releases/tag/2.5.4.Final)。
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 的所有修复和一些依赖项升级。更多详细信息请查看 变更日志(https://github.com/quarkusio/quarkus/releases/tag/2.6.1.Final)。
上周发布了 Hibernate ORM 6.0 的 第 3 个 beta 版本,其中添加了新的注解:@IdGeneratorType允许以类型安全的方式配置IdentifierGenerator接口;@TenantId使用基于列的多租户来标记定义租户的属性;@AttributeBinderType允许自定义属性映射的定义方式。更多详细信息请查看 Hibernate 6.0 的 用户指南(https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html) 和 迁移指南(https://github.com/hibernate/hibernate-orm/blob/6.0.0.Beta3/migration-guide.adoc)。
阿帕奇(Apache)软件基金会 发布了Camel 3.7 版本系列中的最后一个小版本。3.7.7 版本包含了 7 个 bug 修复和改进,并对 Logback 1.2.8、Log4j 2.16.0、以及camel-nsq和camel-corda组件的依赖项进行了升级。更多详细信息请查看 发布说明(https://camel.apache.org/releases/release-3.7.7/)。
为了与 Quarkus 保持一致,阿帕奇还发布了 Camel Quarkus 2.6.0,其中包含了 Camel 3.14.0 和 Quarkus 2.6.0,而 Quarkus 2.6.0.Final 和 JFR 原生支持。
Apache Tika 发布了其元数据提取工具包的 2.2.1 版。以前它是 Apache Lucene 的一个子项目,这个最新版本包括了对 Log4j 2.17.0 的升级,以及对 Office Open XML(docx/pptx/xlsx)回归的关键修复,该回归是在版本 2.2.0 中引入的。更多详细信息请查看 发布说明(https://dist.apache.org/repos/dist/release/tika/2.2.1/CHANGES-2.2.1.txt)。
在通往 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/
点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!
西安一码通半个月崩溃两次,被工信部点名;快手再传裁员:最高比例达 30%;阿里调整大淘宝组织架构 | Q 资讯
Apache Flink 不止于计算,数仓架构或兴起新一轮变革
点个在看少个 bug 👇