@levinzhang
2022-06-07T22:56:49.000000Z
字数 5637
阅读 501
by
本期的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。
本期的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。
尽管为期一周的审查已经在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早期访问构建版本的Build 23已经发布,它是Build 22的更新,包括对各种问题的修复。更多细节可以在发布说明中找到。
随着Rampdown第一阶段目标日期的临近(2022年6月9日),JDK 19的特性集目前包含如下所示的六个特性:
鼓励开发者通过Java Bug数据库报告缺陷。
在通往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团队是非常繁忙的,他们提供了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平台的2022年5月企业版。Payara Platform Enterprise 5.39.0版提供了四个缺陷修复、两个组件升级和五个改进,其中包括:支持JDK 17,以及在调用Admin Console时能够指定超时选项。关于这个版本的更多细节可以在发布说明中找到。
在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 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 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。有关该版本的更多细节可在发布说明中找到。
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(一个监控和更新已安装的JDK的新工具),已经交付给Java社区。该工具由Azul公司的首席工程师Gerrit Grunwald创建,17.0.25版包括:Linux版本相关的缺陷修复;用新的指示器取代CVE的指示器(indicator)。
JobRunr是一个在Java中进行后台处理的工具,其创始人和主要开发者Ronald Dehuysser发布了5.1.2版本,其特性包括:支持用@Recurring注解提供一个间隔以取代cron表达式;允许在MockJobContext测试中设置JobContext类的实例。
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团队来说,最近也是非常繁忙的,他们为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软件基金会发布了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