本期的 Java 新闻包括 JDK 19、OpenJDK、Jakarta EE 10、Spring 里程碑和小版本升级以及 CVE、Payara 平台发布、Quarkus 2.9.1.Final、Micronaut 3.4.4、WildFly 16.1.1、Hibernate ORM 5.6.9.Final、Hibernate Reactive 11.5.Final、JDKMon 17.0.25、JobRunr 5.1.2、JReleaser 早期访问版本、Apache Tomcat 小版本发布以及 Apache Camel 3.17.0。
OpenJDK
尽管为期一周的审查已经在 2022 年 5 月 19 日结束,但是 JEP 405,Record Patterns(Preview)依然处于 JDK 19 的 Proposed to Target 状态。在Amber项目的支持下,这个 JEP 提议使用 record 模式来增强该语言,从而实现 record 值的解构。Record 模式可以与 type 模式联合使用,从而“实现强大的、声明式的以及可组合形式的数据导航和处理”。Type 模式最近通过 JEP 406,Pattern Matching for switch(Preview)(在 JDK 17 中交付)和 EP 420, Pattern Matching for switch(Second Preview)(在 JDK 18 中交付)被扩展到了switch
case 标签中。
JEP 428,Structured Concurrency(Incubator)从 JEP Draft 8277129 状态提升到了 Candidate 状态。这个孵化中的 JEP 在Loom项目的支持下,提议通过引入一个库来简化多线程编程,它能够将运行在不同线程中的多个任务视为一个工作单元。这可以简化错误处理和任务取消功能,提升可靠性并增强可观测性。
JDK 19
JDK 19早期访问构建版本的Build 23已经发布,它是 Build 22 的更新,包括对各种问题的修复。更多细节可以在发布说明中找到。
随着 Rampdown 第一阶段目标日期的临近(2022 年 6 月 9 日),JDK 19的特性集目前包含如下所示的六个特性:
405: Record Patterns (Preview) (依然在审查状态)
422: Linux/RISC-V Port
鼓励开发者通过Java Bug数据库报告缺陷。
Jakarta EE
在通往 Jakarta EE 10 的道路上,Eclipse 基金会的 Jakarta EE 开发人员倡导者Ivar Grimstad在其 Hashtag Jakarta EE 每周博客中宣布,Jakarta EE 10平台规范进入发布审查的新目标日期是 2022 年 6 月 9 日。做出该决定是为了确保企业级应用能够完全兼容 JDK 11 和 JDK 17。另外,Eclipse GlassFish最近在7.0.0-M4和即将发布的 7.0.0-M5 版本之间提供了一个中间预发布版本,该版本已经顺利通过了 JDK 11 的 TCK,但要通过 JDK 17 的 TCK 依然还需要相关的工作。
Spring Framework
最近,对于 Spring 团队是非常繁忙的,他们提供了Spring Boot, Spring for GraphQL、Spring Data、Spring Session和Spring Security相关的小版本、里程碑版本以及 CVE。
Spring Boot 2.7.0发布,提供了如下功能:Spring for GraphQL 1.0的自动配置和度量;新的注解@DataCouchbaseTest和@DataElasticsearchTest,分别用于 Couchbase 和 Elasticsearch 的测试。依赖升级,包括:Spring Data 2021.2、Spring HATEOAS 1.5、Spring LDAP 2.4、Spring Security 5.7 和 Spring Session 2021.2。关于这个版本的更多细节,可以在发布说明中找到。InfoQ 将在后续推出更详细的新闻报道。
Spring Boot 2.6.8发布,其中包括 35 个缺陷修复、文档改进和依赖升级。关于该版本的更多细节可在发布说明中找到。
Spring Boot 2.5.14发布,包括 29 个缺陷修复、文档改进和依赖升级。2.5 版本已经结束了其生命周期,开发者应该考虑升级到更高版本的 Spring Boot。关于这个版本的更多细节可以在发布说明中找到。
在通往 Spring Boot 3.0.0 的道路上,第三个里程碑版本已经发布,其特性包括:Micrometer Observation、Tracing 和OtlpMeterRegistry的自动配置,并恢复了对 REST Assured 和 Pooled JMS 的支持。关于这个版本的更多细节可以在发布说明中找到。
从第一次提交到现在已经过去了两年,从第一次介绍给 Java 社区到现在也已经过去了 10 个月,Spring for GraphQL 1.0发布,其特性包括:为 data fetcher 提供了基于注解的编程模型;将Querydsl和Query by Example资源库(repository)作为 data fetcher;通过 HTTP、WebSocket 和 RSocket 改进服务器、客户端和测试;通过对数据@Controller
方法的注解实现字段级的安全。InfoQ 将在后续推出更详细的新闻报道。
Spring Data 2021.2 和 2022.0 的第四个里程碑版本发布。2022.0 的发布列车将基于 Spring Framework 6、JDK 17 和 Jakarta EE 9。代号为 Raj 的 Spring Data 2021.2 特性包括:data-mongodb
模块的声明式Update
方法;data-jpa
模块对@IdClass
处理的改进;data-elasticsearch
模块对重索引的支持;以及data-cassandra
模块的直接投影。有关该版本的更多细节可在发布说明中找到。
Spring Session 2021.2发布,其特性是依赖升级到 Spring Data 2021.2。这个版本也是下一代的 Spring Session,该版本将建立在 Spring Framework 6.0 之上。
CVE-2022-22978,Authorization Bypass in RegexRequestMatcher已经得到解决,但无意中被写成了 CVE-2022-22975。使用RegexRequestMatcher类实例的应用程序,如果正则表达式中带有“.
”,有可能会导致绕过授权的情况。
CVE-2022-22976,BCrypt Skips Salt Rounds for Work Factor of 31也已解决,它解决了一个整数溢出的错误,该错误会导致编码器不执行加盐轮转。
Spring Security 的 5.7.1、5.6.5 和 5.5.8 版本发布,提供了一个缺陷修复,StrictHttpFirewall类的实例错误地拒绝有效的中文、日文、韩文和越南文(CJKV)字符。
Spring Security 5.7.0、5.6.4、5.5.7 版本也已发布,解决了上述的 CVE-2022-22978 和 CVE-2022-22976 漏洞。
在通往 Spring Security 6.0.0 的道路上,第五个里程碑版本已经发布,值得注意的变化包括:每个分发类型都需要授权;将 shouldFilterAllDispatchTypes 属性的默认值改为 true;将默认的安全上下文过滤器从SecurityContextPersistenceFilter类改为SecurityContextHolderFilter类;并删除 SAML API 中定义的所有废弃功能。该版本还修复了StrictHttpFirewall类的实例错误地拒绝有效的 CJKV 字符。
Payara
Payara 公司发布了其Payara平台的 2022 年 5 月企业版。Payara Platform Enterprise 5.39.0 版提供了四个缺陷修复、两个组件升级和五个改进,其中包括:支持 JDK 17,以及在调用 Admin Console 时能够指定超时选项。关于这个版本的更多细节可以在发布说明中找到。
Quarkus
在 Quarkus 2.9.0发布一周后,Red Hat 提供了 Quarkus 2.9.1.Final 的维护版本,其中包括缺陷修复和文档改进,以及依赖升级,包括:GraalVM 22.1、Hibernate Reactive 1.1.5.Final、Hibernate ORM 5.6.9.Final、Micrometer BOM 1.8.6 和 Infinispan 13.0.10.Final。关于这个版本的更多细节可以在更新日志中找到。
Micronaut
Micronaut 基金会发布了 Micronaut 3.4.4,对 Micronaut 模块进行了更新:Micronaut Maven Plugin 3.2.4、Micronaut SQL 4.2.3、Micronaut JAX-RS 3.2.1、Micronaut Oracle Cloud 2.1.3、Micronaut MQTT 2.1.1 和 Micronaut OpenAPI 4.0.1。关于这个版本的更多细节可以在发布说明中找到。
WildFly
在 WildFly 26.1 发布五周后,Red Hat 提供了一个维护版本,即 26.1.1,该版本具有许多组件的升级,包括:WildFly Core 18.1.1.Final、Smallrye Config 2.10.0、Smallrye Health 3.2.1、Netty 4.1.76 以及 RESTEasy 6.0.1.Final。有关该版本的更多细节可在发布说明中找到。
Hibernate
JBoss提供了Hibernate ORM和Hibernate Reactive的更新。
Hibernate ORM 5.6.9.Final 是 5.6 版本中的一个维护版本,提供了补丁和关键缺陷的修复。
Hibernate Reactive 1.1.5.Final 为使用Stage.SessionFactory和Stage.Session接口的开发者提供了一个关键的缺陷修复。如果开发者的应用程序偶尔产生“No Vert.x context active”的错误信息,那就应该升级到这个最新版本。
JDKMon
最新版本的JDKMon(一个监控和更新已安装的 JDK 的新工具),已经交付给 Java 社区。该工具由 Azul 公司的首席工程师Gerrit Grunwald创建,17.0.25 版包括:Linux 版本相关的缺陷修复;用新的指示器取代 CVE 的指示器(indicator)。
JobRunr
JobRunr是一个在 Java 中进行后台处理的工具,其创始人和主要开发者Ronald Dehuysser发布了5.1.2版本,其特性包括:支持用@Recurring注解提供一个间隔以取代 cron 表达式;允许在MockJobContext测试中设置JobContext类的实例。
JReleaser
JReleaser的一个更新的早期访问版本发布,其特性包括:对 aws-java-sdk 1.12.220、jsonschema 4.24.3、sshj 0.33.0、tika 2.4.0 和 mockito 4.5.1 进行了依赖升级。
Apache Tomcat
对于 Apache Tomcat 团队来说,最近也是非常繁忙的,他们为 9.0、10.0 和 10.1 版本提供了小版本发布。
9.0.63、10.0.21和10.1.0-M5版本都具有以下特性:从 Kubernetes 服务绑定作为属性源获取值;识别Linux内核重复接受缺陷的根本原因;对 Tomcat 本地库 1.2.3 的依赖性升级,以支持用OpenSSL 1.1.1构建的 Windows 二进制文件,以及在配置内部、内存密钥存储时支持加密的PKCS#1格式的私钥。
Apache Tomcat 10.1.0-M15 是一个 alpha 里程碑版本,为开发者提供了早期访问 Apache Tomcat 10.1 版本中的新功能。
Apache Camel
Apache 软件基金会发布了 Apache Camel 3.17.0,其中有 220 个缺陷修复、改进和依赖性升级,包括:Spring Boot 2.6.7;用于camel-jbang
模块的 Kamelets 0.8.1;Google Cloud Libraries BOM 25.2.0;Jakarta Mail 1.6(Jakarta EE 8),以及用于修复 OSGi 可重复性问题的maven-bundle-plugin
模块。该版本的更多细节可以在发布说明中找到。
原文链接:
Java News Roundup: OpenJDK, Spring Updates and CVEs, Payara Platform, Apache Tomcat Updates
评论