写点什么

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:006773

评论

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

分布式时序数据库DolphinDB与InfluxDB对比测试报告

DolphinDB

数据库 大数据 Influxdb 性能测试 DolphinDB

话题讨论 | 选择做一个程序员,你后悔过吗?

xcbeyond

话题讨论

情报合成研判系统开发,智慧警务解决方案

t13823115967

智慧公安

区块链司法存证应用落地应用解决方案

t13823115967

区块链落地开发

时序数据库DolphinDB与Druid的对比测试

DolphinDB

数据分析 时序数据库 Druid 数据库选择 DolphinDB

开发实践丨用小熊派STM32开发板模拟自动售货机

华为云开发者联盟

物联网 小熊派 开发板

第四章作业

走走,停停……

《算法导论》.pdf

田维常

Java架构速成笔记:七大专题,1425页考点,挑战P8岗

Java架构追梦

Java 学习 面试 java架构

P8架构挑战:七大专题1425页考点,你能成功吗?

小Q

Java 学习 程序员 架构 面试

可见性是什么?(通俗易懂)

叫练

volatile JMM 多线程 synchronized

《css大法》之使用伪元素实现超实用的图标库(附源码)

徐小夕

CSS css3 大前端 CSS小技巧

人脸识别是如何实现的

anyRTC开发者

ios 音视频 WebRTC 人脸识别 安卓

原创 | 使用JPA实现DDD持久化-O/R映射元数据:类级映射-实体和值对象

编程道与术

Java hibernate 编程 mybatis jpa

一文教你看懂缓存穿透、击穿、雪崩、降级等异常

鄙人薛某

Java 缓存 后端 缓存击穿 缓存雪崩

使用JPA实现DDD持久化-O/R映射元数据-特殊属性映射:ID、Version和Transient

编程道与术

Java hibernate 编程 mybatis jpa

话题讨论 | 立一个近期的flag,你会想到什么?

xcbeyond

话题讨论

不满意社区的轮子,我们自创了一套 React Hooks 风格的数据加载方案

LeanCloud

API React Hooks

甲方日常 65

句子

工作 随笔杂谈 日常

网咯请求中的 connectTimeout 和 soTimeout

不在调上

有钱还APP系统开发|有钱还软件开发(现成)

系统开发

如何预防勒索攻击事件?这份安全自查指南请查收

京东科技开发者

数据安全 数据加密 系统安全

话题讨论 | 30 张图解高并发服务模型你必须这些

程序员柠檬

话题讨论

全球熵ETV系统APP软件开发

系统开发

业务中台建设-数据

孝鹏

架构 中台 数据 赋能

北京奥森小景

小马哥

摄影 美景 奥森 28天写作

Mybatis 中xml和注解映射,这次终于搞明白了

田维常

mybatis

原创 | 使用JPA实现DDD持久化-领域模型:对象的世界

编程道与术

Java hibernate 编程 mybatis jpa

原创 | 使用JPA实现DDD持久化-O/R映射元数据:映射注解分组

编程道与术

Java hibernate 编程 mybatis jpa

安装MySQL后,需要调整的10个性能配置项

Simon

MySQL percona server

operator-sdk & kubebuilder

QiLab

k8s operator-sdk kubebuilder crd

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