@levinzhang
2022-09-17T20:00:04.000000Z
字数 3919
阅读 459
by
本期的Java新闻包括OpenJDK、JDK 20、Jakarta EE 10、Spring Cloud 2021.0.4、Quarkus 2.12.1、Micronaut 3.6.2和3.6.3、Helidon 2.5.3、JDK 8维护版本的重要变更、Hibernate ORM 6.1.3、Reactive Native JHipster 4.3.0、Apache NetBeans 15、Apache Groovy 4.0.5、Apache Camel 3.18.2、Ktor 2.1.1以及JavaZone会议。
本期的Java新闻包括OpenJDK、JDK 20、Jakarta EE 10、Spring Cloud 2021.0.4、Quarkus 2.12.1、Micronaut 3.6.2和3.6.3、Helidon 2.5.3、JDK 8维护版本的重要变更、Hibernate ORM 6.1.3、Reactive Native JHipster 4.3.0、Apache NetBeans 15、Apache Groovy 4.0.5、Apache Camel 3.18.2、Ktor 2.1.1以及JavaZone会议。
JDK的回归测试工具jtreg 7版本发布,其特性包括升级至JUnit 5,提供了Jupiter API并支持运行现有的JUnit 4测试和标签语言规范(Tag Language Specification)。第三方库JAR文件的命名约定已经变更为使用jtreg
构建时指定的JAR文件的基础名称。这个名称可能依赖于库的版本。受此影响的JDK测试均已更新。jtreg
7支持的最低版本是JDK 11。
JDK 19依然处于发布候选阶段,预计GA版本会在2022年9月20日发布。发布说明包含了文档的链接,比如完整的API规范以及一个标注的API规范,后者对比了JDK 18(Build 36)和JDK 19(Build 36)的差异。关于JDK 19的更多细节和对JDK 20的预测可以参阅InfoQ的新闻报道。
JDK 20的早期访问构建版本Build 14发布,它是对Build 13的更新,包括对各种问题的修复。关于该版本的更多细节,请参阅发布说明。
对于JDK 19和JDK 20,鼓励开发者通过Java Bug数据库报告缺陷。
在通往Jakarta EE 10的路上,Eclipse基金会的Jakarta EE开发人员倡导者Ivar Grimstad在他的Hashtag Jakarta EE周报上宣布,Jakarta EE 10的Platform Profile和Web Profile审查投票已经开始,预计会在9月13日结束。Core Profile已经在8月份通过了审查。这似乎是一个好的信号,Jakarta EE 10有可能会在本月正式发布。关于Jakarta EE规范的更多细节可以参阅Grimstad在JavaZone上做的题为Jakarta EE 10 - Feature-by-Feature的演讲。
代号为Jubilee的Spring Cloud 2021.0.4版本发布,其特性包括对所有Spring Cloud子项目的更新,在Config, Gateway、OpenFeign和Circuit Breaker方面都有明显的变化。关于该版本的更多细节,可以参阅发布说明。
Red Hat发布了Quarkus 2.12.1.Final,对RequestContext类的性能下降问题进行了修复。此外,还对Smallrye OpenAPI 2.2.1和Dekorate 2.11.2进行了依赖升级。关于该版本的更多细节,可以参阅发布说明。
Micronaut基金会发布了3.6.2和3.6.3版本的Micronaut,对Micronaut的一些模块进行了缺陷修复和补丁发布,例如Security、Email、Micronaut for Spring、Tracing、Flyway、AWS、Serialization和Data。3.6.2版本还提供了升级后的SnakeYAML 1.31,它解决了CVE-2022-25857漏洞,在之前版本SnakeYAML中的这个漏洞缺少对集合嵌套深度的限制,很容易导致拒绝服务攻击(Denial of Service)。关于这些版本的更多细节可以在3.6.2和3.6.3版本的发布说明中找到。
Helidon 2.5.3发布,其中有许多变化,包括在gRPC组件中升级了protocol buffer以支持osx-aarch_64
架构;在Security组件中实现了access token刷新;在Config组件中修复了为watcher服务获取父目录的问题。此外,还对SnakeYAML 1.31和Oracle Cloud Integration Integration 2.41.0进行了依赖升级。
BellSoft是Liberica JDK(OpenJDK的下游发布版)的创建者,他们讨论了一些重要的变更,这会影响将于2022年10月发布的JDK 8 Maintenance Release 4。核心变化是JDK-8202260,也就是JDK缺陷系统中定义的引用对象不应该支持克隆(Reference Objects Should Not Support Cloning),它描述了在Java SE 8平台中发现的一个重要问题:
在Java SE规范中,并没有明确定义克隆引用对象的语义。克隆与垃圾回收密切相关,如果引用对象的可达性状态在GC活动中发生变化,收集器可能在代码调用
clone()
方法之前,对该对象进行入队(enqueue)。结果就是,克隆的对象不会被入队和引用。从而导致高度不可预知的引用处理。
在JDK 9和JDK 11中进行了一些后续的变更,这些变更会回传到JDK 8 Maintenance Release 4中。例如,在JDK 11,Reference.clone()方法始终会抛出一个CloneNotSupportedException
异常。
Hibernate ORM 6.1.3.Final发布了一项优化,其中带有@JdbcTypeCode(SqlTypes.JSON)和@JdbcTypeCode(SqlTypes.SQLXML)注解的字符串将不会被序列化为JSON/XML。相反,它们会被解析为纯JSON/XML,以避免序列化/反序列化的开销。
在JHipster 7.9.3发布后不久,JHipster React Native的4.3.0版本已交付给Java社区。改进之处包括:通过React Native 0.69.5和React 18升级到Expo SDK 46;迁移到Expo Application Services;支持基于Auth0的注销;为GitHub Actions使用Node 16;大量的依赖升级;以及使用Keycloak、Okta和Auth0改进质量保证。关于这个版本的更多细节可以参阅发布说明。
Apache NetBeans 15发布,其特性包括:支持JEP 413,即Java API文档中支持代码片段(Code Snippets in Java API Documentation)(在JDK 18中交付);清理代码库,删除对Windows 95和Windows 98的支持;升级到Maven-Indexer 6.2.0,包括删除避免IndexOutOfBoundsException的临时方案;以及更新到Oracle Cloud Integration 2.27.0。关于这个版本的更多细节可以参阅发布说明。
Apache Groovy 4.0.5发布,它具有56个缺陷修复、改进和依赖性升级,比如,JUnit Jupiter 5.9.0、JUnit Platform 1.9.0、Gradle 7.5.1、Spock 2.2和slf4j 2.0.0。 唯一的新特性是对DateUtilExtensions类的增强,以便检索静态日历常量的子集。关于这个版本的更多细节可以在发布说明中找到。
Apache Camel 3.18.2发布,它包含了50个错误修复和改进,例如:支持Camel Freemarker组件中的邮件附件;以及处理CamelMicroProfilePropertiesSource
类中loadProperties()
方法中的NoSuchElementException
。还有一些依赖性的升级,包括Spring Boot 2.7.3和gRPC 1.48.1。关于这个版本的更多细节可以在发布说明中找到。
JetBrains发布了Ktor 2.1.1,其特性是改进了以下问题:Netty HTTP/2的异常;JDK 8和JDK 11在构建Ktor时的不匹配;以及废弃receiveOrNull()
方法,该方法被认为令人感到困惑。关于这个版本的更多细节可以在更新日志中找到。
JavaZone会议在挪威奥斯陆的Oslo Spektrum举行,来自Java社区的许多演讲者发表了闪电演讲、报告和工作坊。
查看英文原文:
Java News Roundup: NetBeans 15, Jakarta EE 10, jtreg 7, Spring Cloud, Groovy, Helidon, Micronaut