写点什么

Java 新闻汇总:JDK 22、Spring CVE、Liberica JDK、JDKMon 21、Jupyter for Java 和 Gradle 8.5

  • 2023-12-21
    北京
  • 本文字数:4572 字

    阅读完需:约 15 分钟

大小:2.41M时长:14:00
Java新闻汇总:JDK 22、Spring CVE、Liberica JDK、JDKMon 21、Jupyter for Java和Gradle 8.5

OpenJDK


在审查结束后,JEP 463,隐式声明类和实例主方法(Implicitly Declared Classes and Instance Main Methods,第二轮预览),已经在 JDK 22 中从 Targeted 状态提升到了 Proposed to Target 状态。它以前被称为未命名类和实例主方法(Unnamed Classes and Instance Main Methods,预览)灵活主方法和匿名主类(Flexible Main Methods and Anonymous Main Classes,预览)隐式类和增强的主方法(Implicit Classes and Enhanced Main Methods,预览),该 JEP 包含了对前一轮预览反馈的增强,即 JEP 445,未命名类和实例主方法(预览)。这个 JEP 建议“演进 Java 语言,这样学生们就可以编写他们的第一个程序,而不需要理解为大型程序所设计的语言特性”。该 JEP 延续了甲骨文的 Java 语言架构师Brian Goetz在 2022 年 9 月发表的博客文章Paving the on-ramp。甲骨文的技术顾问Gavin Bierman已经发布了规范文档的初稿,供 Java 社区审查。关于 JEP 445 的更多细节可以在 InfoQ 的新闻报道中找到。

 

在审查结束后,JEP 462,结构化并发(Structured Concurrency,第二次预览),已经从 Proposed to Target 状态提升到了 Targeted 状态。这个 JEP 提议在 JDK 22 中重新审查 API,不做任何变更,以便于从上一轮预览中获取更多的反馈,即 JDK 21 交付的 JEP 453,结构化并发(预览)。这个特性通过引入结构化并发性来简化并发编程,“将在不同线程中运行的相关任务组视为单个工作单元,从而简化错误处理和取消,提高可靠性并增强可观测性。”

 

在审查结束后,JEP 461, 流收集器(Stream Gatherers,预览),已经在 JDK 22 中从 Proposed to Target 状态提升到了 Targeted 状态。该 JEP 建议增强流 API 以支持自定义的中间操作。“这将允许流管道以现有内置中间操作难以实现的方式转换数据。”关于此 JEP 的更多细节可以参考甲骨文 Java 平台组软件架构师Viktor Klang编写的原始设计文档

 

在审查结束后,JEP 458,启动多文件源码程序(Launch Multi-File Source-Code Programs),已经在 JDK 22 的 Proposed to Target 状态提升到了 Targeted 状态。该 JEP 建议增强 Java Launcher,以执行通过一个或多个 Java 源代码文件提供的应用程序。这可以通过推迟一个完整项目的搭建来实现从小型应用程序到大型应用程序的渐进过渡。

 

在审查结束后,JEP 457,类文件API(Class-File API,预览),已经在 JDK 22 的 Proposed to Target 状态提升到了 Targeted 状态。该 JEP 建议提供一个 API 来解析、生成和转换 Java 类文件。它最初作为 JDK 中ASM的替代品,ASM 是一个 Java 字节码操作和分析框架,并计划将其作为公开 API 对外开放。甲骨文的 Java 语言架构师Brian Goetz将 ASM 描述为“带有大量遗留包袱的旧代码库”,并提供了关于该草案如何发展并最终取代 ASM 的背景信息

 

在审查结束后,JEP 423,G1的区域锚定(Region Pinning for G1),已经在 JDK 22 的 Proposed to Target提升到了 Targeted 状态该 JEP 建议通过实现G1垃圾收集器的区域锚定来减少 GC 延迟。这将扩展 G1,以便在 major 和 minor 收集操作期间可以锚定任意区域,以便于实现JNI关键区域时避免禁用垃圾收集进程。

 

JEP 464,作用域值(Scoped Values,第二次预览)已经从它的 JEP Draft 8318898 状态提升Candidate 状态,然后快速在 JDK 22提升到了 Proposed to Target 状态。它以前被称为范围局部变量(Extent-Local Variables,孵化),这个 JEP 建议在 JDK 22 中重新预览 API,不做任何更改,以便于从上一轮预览中获得额外的经验和反馈,即 JDK 21 交付的 JEP 446, 作用域值(预览)和 JDK 20 交付的作用域值(孵化)。该特性允许在线程内部和线程之间共享不可变数据。这种方式优于 thread-local 变量,特别是在使用大量虚拟线程的时候。该审查预计会在 2023 年 12 月 7 日结束。

JDK 22


JDK 22 的早期访问构建版本的Build 26发布,其中包括对 Build 25 的更新,其中包括对各种问题的修复。关于这个版本的更多细节可以在发行说明中找到。

 

对于JDK 22,鼓励开发人员通过Java缺陷数据库报告缺陷。

Jakarta EE


Jakarta Data 1.0.0 的第二个里程碑版本提供了如下特性:制品名称的重命名,例如,从jakarta-data-api改为jakarta.data-api,以便于同所有 Jakarta EE 规范保持一致;延迟静态元模型的实现,以进一步解决与反射和注解处理器相关的问题;对版权文档的优化,以便将值与占位符绑定。关于此版本的更多细节可以在发布说明中找到。

 

Eclipse JNoSQLJakarta NoSQL规范的兼容实现)的 1.0.3 版本发布,带来重要的数据库升级,比如,MongoDB 驱动 4.11.1、Hazelcast 5.3.6、Apache Solr 9.4.0、Couchbase Library 3.4.11 和 ArangoDB Library7.2.0。更新方法还实现了增强功能,以改进整个项目的功能。关于此版本的更多细节可以在发布说明中找到。

BellSoft


BellSoft发布Liberica JDK的 17 和 21 版本,这是他们 OpenJDK 的下游发行版,具有检查点协调恢复(Coordinated Restore at Checkpoint,CRaC)功能,使开发人员能够构建运行中的应用程序快照,减少 Java 应用的启动和预热时间。这些新版本将适用于 x86_64 和 AArch64 CPU 架构以及 Linux 操作系统。

Spring Framework


VMware披露了两个安全漏洞:CVE-2023-34053,Spring框架服务器Web观测DoS漏洞(Spring Framework Server Web Observations DoS Vulnerability)以及 CVE-2023-34055,Spring Boot服务器Web观测DoS漏洞(Spring Boot Server Web Observations DoS Vulnerability,它们会影响Spring Framework6.0.0 至 6.0.13 版本和Spring Boot3.1.0 至 3.1.5 版本、3.0.0 至 3.0.12 版本以及 2.7.0 至 2.7.17 版本。这两个漏洞都允许攻击者提供特制的 HTTP 请求,这些请求可能会在以下情况下导致拒绝服务:

  • 应用程序使用了Spring MVCSpring WebFlux

  • io.micrometer:micrometer-core制品位于类路径中。

  • 在应用程序中配置了 Micrometer ObservationRegistry接口的实现来记录观测结果。


因此,鼓励开发人员升级到 Spring Framework 6.0.14 以及 Spring Boot 2.7.18、3.0.13 和 3.1.6。

 

Spring Shell的 3.2.0-rc1、3.1.6、3.0.10 和 2.1.15 版本发布,分别进行了缺陷修复和对 Spring Boot 3.2.0、3.1.6、3.0.13 和 2.7.18 依赖升级。3.0 和 2.1 版本系列已被宣布与它们对应的 Spring Boot 版本一起结束生命周期。3.2.0-RC1 和 3.1.6 版本中的新特性包括:支持zsh补全和模态视图;对Terminal UI的小改动。关于此版本的更多细节可以在3.2.0-RC1版本3.1.6版本3.0.10版本2.1.15版本的发行说明中找到。

Quarkus


Red Hat发布Quarkus的 3.6.0 版本,其中有一些显著的变化,比如,支持 OIDC bearer 令牌的自定义授权模式;改进了服务器发送事件(SSE),允许 REST 客户端返回整个 SSE 事件并对这些事件进行过滤;支持与 Jakarta Annotations @RolesAllowed注解类似的@SecureField注解中的表达式。关于这个版本的更多细节可以在变更日志中找到。

 

Red Hat 还宣布JDK 17 将是即将发布的 Quarkus 3.7 要求的最低版本,它计划于 2024 年 1 月底发布。InfoQ 将会跟进更详细的新闻报道。

Open Liberty


IBM发布Open Liberty的 23.0.0.12-beta 版,该版本支持Jakarta Data 1.0.0-M1,其中包括:用于基本存储库方法的新 BasicRepository接口;在CrudRepository接口中添加 insert()和update()方法;新的 @Insert、@Update、@Delete 和 @Save 注解。这个版本还提供了一个可配置的静默超时阶段,即当 Liberty 运行时的关闭时间超过默认的 30 秒时。这能够支持需要更多时间来完成处理请求的服务。

Helidon


Helidon 4.0.1,即第一个维护版本,提供了值得关注的变更,比如,支持 Helidon Web 服务器组件的代理协议; WebServer接口的性能改进;在 CrossOriginConfig.Builder类中定义的enabled()方法现在返回Optional<Boolean>而不是boolean以解决 CORS 问题。关于此版本的更多细节可以在变更日志中找到。

 

同样,Helidon 3.2.4 的发布提供了依赖项升级和一些值得注意的变化,例如,用于延迟 OCI Vault 配置的新类的集合;将 opentracing 相关的类和接口迁移到 Helidon Tracing API;正确处理请求 URL 的 IPv6 地址的解析。关于这个版本的更多细节可以在变更日志中找到。

Hibernate


Hibernate Reactive 2.2.0.Final 版本发布,它兼容 Hibernate ORM 6.4.0.Final and Vert.x SQL driver 4.5.0。Red Hat 还提供了 2.2.1.Final 和 2.0.7.Final 版本,它们分别与Hibernate ORM的 6.3.2.Final and 6.2.13.Final 版本兼容。关于此版本的更多细节可以在发布说明中找到。

 

Hibernate Search 7.1.0 的第一个alpha版本提供了一个孵化特性,即允许在Apache Lucene后端进行矢量搜索,并提供了搜索二进制或文本数据的工具。此外,在 Spring boot 3.2 中读取嵌套 JAR 时,Hibernate Search 将不再启动失败。关于此版本的更多细节可以在发布说明中找到。

Grails 基金会


Grails 5.3.4 发布,提供了依赖升级和一些值得注意的变化,比如,为所有主分支启用 GitHub CodeQL;添加了一个 SnakeYAML 物料清单(BOM)来覆盖 SpringBoot BOM;对 Javadoc 的清理,包括在 Javadoc 中转义特殊字符、重构代码、定义显式类型和删除不必要的变量使用。关于此版本的更多细节可以在发布说明中找到。

Apache 软件基金会


Apache Groovy 5.0.0 的第三个alpha版本提供了缺陷修复、依赖升级和功能改进,例如,支持 JDK 22;实现了在groovyc命令行中进行库编译器时缺失的特性;还有一个针对数组类型的新indexOf(element)扩展方法。关于此版本的更多细节可以在发布说明中找到。

 

同样,Apache Groovy 4.0.16 的发布也提供了缺陷修复、依赖升级和功能改进,例如,对 JDK 22 的支持;在DefaultGroovyStaticMethods类中定义一个新的allThreads()方法,以补充 Java Thread 类中定义的现有currentThread()方法。关于此版本的更多细节可以在发布说明中找到。

 

为了与 Quarkus 保持一致,Camel Quarkus 3.6.0 版本发布,解决了以下问题:在执行QuartzQuarkusSchedulerAutowiredWithSchedulerBeanTest类的时候,出现间歇性的AssertionFailedError;在使用容器的测试中,清除硬编码对主机的使用。关于此版本的更多细节可以在发布说明中找到。

 

Apache Maven 3.9.6 版本提供了依赖项升级和排除插件验证的功能。关于此版本的更多细节可以在发布说明中找到。

JDKMon


监视和更新已安装 jdk 的工具JDKMon发布了21.0.0版本。这个工具由 Azul 的首席工程师Gerrit Grunwald创建,这个新版本通过将所有依赖项移动到最新的 LTS 版本,完全支持 JDK 21。

PrimeFaces


PrimeFaces 的 12.0.7、11.0.13、10.0.20 和 8.0.25 版本发布,特性包括:升级JSON in Java到 20231013,以解决CVE-2023-5072漏洞,该漏洞允许攻击者利用 JSON 解析器中的缺陷,例如,中等大小的字符串输入可能导致无限量的内存使用并导致拒绝服务。关于这些版本的更多细节可以在12.0.7版本11.0.13版本10.0.20版本8.0.25版本的发布说明中找到。

Jupyter for Java


Jupyter for Java,这是一个新的 GitHub 组织,旨在帮助开发人员发现在 Jupyter notebooks 中使用 Java 的各种方法。该项目由 Red Hat 的杰出工程师Max Rydahl Andersen创建,目前包含五个提供资源和样例的仓库。

Gradle


Gradle 8.5.0发布,提供了以下新特性:完全支持在 JDK 21 上编译、测试和运行;Kotlin DSL的改进,包括在预编译 Kotlin 脚本插件中更快的首次使用以及对版本目录的支持;改进了错误和告警的报告。关于此版本的更多细节可以在发布说明中找到。

 

原文链接:

Java News Roundup: JDK 22, Spring CVEs, Liberica JDK, JDKMon 21, Jupyter for Java, Gradle 8.5

2023-12-21 08:006742

评论

发布
暂无评论
发现更多内容

shell脚本之格式化输出

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

vue高频面试题合集(三)附答案

helloworld1024fd

软件架构治理 之 如何度量软件架构

码猿外

架构设计 软件架构治理

基于AQS实现自己的同步工具

自然

多线程 并发 8月月更

SRv6在5G移动网络中的部署方式

穿过生命散发芬芳

8月月更 SRv6

RocketMQ顺序消息

急需上岸的小谢

8月月更

在知识经济的年代,让你学会如何经营好自己的知识

Baklib

数据结构——栈

工程师日月

8月月更

真会玩!用手机吹气球你见过不?

岛上码农

flutter ios 前端 安卓开发 8月月更

第一个spark应用开发详解(java版)

程序员欣宸

Java spark 8月月更

开发者时薪高达1200美元?一文带你走近Move语言的编程魅力!

TinTinLand

区块链 开发者 开发语言 Move

每日一R「04」常用的智能指针

Samson

8月月更 ​Rust

Spring Cloud Sleuth简述

阿泽🧸

8月月更 Spring Cloud Sleuth

“以太坊杀手” Polkadot 何以在一众公链中脱颖而出

One Block Community

区块链 去中心化 跨链技术 波卡生态

架构实战营模块四作业

zhihai.tu

知识管理的成熟,需要具备什么条件?

Baklib

开源一夏 | 拥抱新技术?你需要考虑的方面

微枫Micromaple

开源 经验总结 技术栈 技术分享 8月月更

估价器测试工具的实现

转转技术团队

测试工具

浅谈营销型企业站文案应该如何写

石头IT视角

编译调试插件功能总结

乌龟哥哥

8月月更

云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析

阿里巴巴云原生

阿里云 RocketMQ 云原生

L2必读 | 走进 AnyTrust 技术底层,数据可用性和最小信任假设如何实现

TinTinLand

区块链 以太坊 扩容 技术文章

史上最全的Java并发系列之Java中的并发工具类

自然

多线程 并发 8月月更

转转用例平台系列 - 脑图组件2.0

转转技术团队

测试开发 测试用例平台开发

参与openEuler社区不到1年,我成为了社区Maintainer……

openEuler

openEuler 开源社区 社区运营 #开源

开源一夏 | 你不能错过的 Go 强大图形化测试工具

宇宙之一粟

开源 测试框架 testing Go 语言 8月月更

slb与nat及eip的相关联

肖飞码字

负载均衡 NAT 弹性公网IP

Spring 全家桶之 Spring Data JPA(二)

小白

8月月更

虚位以待!一大波 Web3 公司开发岗位来袭

TinTinLand

区块链 软件开发 招聘

史上最全的Java并发系列之Java中的13个原子操作类

自然

多线程 并发 Java core 8月月更

复盘:如何更好的进行技术面试

老张

面试

Java新闻汇总:JDK 22、Spring CVE、Liberica JDK、JDKMon 21、Jupyter for Java和Gradle 8.5_编程语言_Michael Redlich_InfoQ精选文章