@levinzhang
2023-01-15T08:55:58.000000Z
字数 5357
阅读 380
by
本期的Java新闻汇总所涉及的新闻包括OpenJDK、JDK 20、JDK 21、Spring Cloud 2022.0.0、其他Spring项目的小版本发布、Open Liberty 22.0.0.13、Quarkus 2.15.1、Micronaut 3.7.5、Helidon 3.1.0、Hibernate 6.2.CR1、Eclipse Vert.x 4.3.7、Groovy的小版本发布、Camel 3.20、MicroStream加入Eclipse、Kotlin 1.8-RC2以及新项目SourceBuddy、Jarviz和Just问世。
本期的Java新闻汇总所涉及的新闻包括OpenJDK、JDK 20、JDK 21、Spring Cloud 2022.0.0、其他Spring项目的小版本发布、Open Liberty 22.0.0.13、Quarkus 2.15.1、Micronaut 3.7.5、Helidon 3.1.0、Hibernate 6.2.CR1、Eclipse Vert.x 4.3.7、Groovy的小版本发布、Camel 3.20、MicroStream加入Eclipse、Kotlin 1.8-RC2以及新项目SourceBuddy、Jarviz和Just问世。
甲骨文的技术顾问成员Ioi Lam提出了一个倡议,改善在类数据共享(CDS)中对归档Java堆对象的支持,因为Leyden极有可能会大量使用归档Java堆对象。
鉴于在G1、SerialGC和ParallelGC垃圾收集算法中,存在与CDS相关的一些已定义限制,本提案的目标在于,所有的收集器统一支持CDS,并尽量最小化每个收集器支持CDS所需的代码。
与该提案相关的最近提交或后续会更新的提案包括:
InfoQ将会持续关注该提案的进展。
JDK 20早期访问构建版本的Build 29发布,它是对Build 28的更新,包括对各种问题的修复。关于该版本的更多细节,可以参见发布说明。
JDK 21早期访问构建版本的Build 3发布,它是对Build 2的更新,包括对各种问题的修复。
对于JDK 20和JDK 21,鼓励开发人员通过Java Bug数据库报告缺陷。
Spring Cloud 2022.0.0发布,代号为Kilburn,为Spring Cloud的众多子项目交付了GA更新,比如Spring Cloud OpenFeign 4.0.0、Spring Cloud Commons 4.0.0、Spring Cloud Function 4.0.0和Spring Cloud Starter Build 2022.0.0。但是,一些子项目的移除,也带来了破坏性的变更,比如Spring Cloud CLI、Spring Cloud for Cloud Foundry和Spring Cloud Sleuth。Spring Cloud 2022.0.0基于Spring Framework 6.x和Spring Boot 3.x构建,兼容Jakarta EE,并需要Java 17作为基线版本。关于这个版本的更多细节可以在发布说明中找到,InfoQ将在后续发布更详细的新闻报道。
Spring Security的6.0.1、5.8.1、5.7.6和5.6.10版本发布,其中包含缺陷修正和文档改善。在以上的四个版本中,GitHub Actions中定义的已废弃的set-state和set-output命令均已被替换,应该使用推荐的$GITHUB_STATE
和$GITHUB_OUTPUT
环境文件。关于这些版本的更多细节,可以在6.0.1、5.8.1、5.7.6和5.6.10的发布说明中找到。
Spring Boot 3.0.1发布,其中包含54个缺陷修复、文档改进和依赖性升级,如Spring Security 6.0.1、Spring Integration 6.0.1、Reactor 2022.0.1、Tomcat 10.1.4和Jetty 11.0.13。关于这个版本的更多细节可以在发布说明中找到。
Spring Boot 2.7.7也已发布,其中包括24个缺陷修复、文档改进和依赖性升级,如Spring Security 5.7.6、Spring Integration 5.5.16、Reactor 2020.0.26、Tomcat 9.0.70和Jetty 9.4.50.v20221201。关于这个版本的更多细节可以在发布说明中找到。
Spring for GraphQL 1.1.1的发布带来了一些新特性,比如,新的构建器定制器,通过允许资源库实现定制器接口来定制QuerydslDataFetcher和QueryByExampleDataFetcher资源库类;放宽@Argument Map<String, ?>
中的通用类型检查,因为人们认为这太严格了。此外,还有一些依赖性的升级,如Micrometer 1.10.2、Reactor 2022.0.1、Spring Framework 6.0.3和Spring Security 6.0.1。关于这个版本的更多细节可以在发布说明中找到。
Spring Modulith 0.2发布,它提供了如下特性:新的@ApplicationModuleListener注解,以简化在事务中运行的异步、事务性事件监听器的声明;应用模块的依赖结构现在可以作为Spring Boot actuator发布;Postgres事件发布注册表的模式遵循了Postgres的最佳实践。关于这个版本的更多细节可以在发布说明中找到。
IBM发布了Open Liberty 22.0.0.13,其特性包括:能够配置其首次故障数据捕获(First Failure Data Capture,FFDC)应用数据收集系统的最大存在时长;修复了CVE-2022-3509和CVE-2022-3171,它们分别对应文本数据和二进制数据的解析,在Protocol Buffers Java核心和3.21.7、3.20.3、3.19.6和3.16.3之前的lite版本中可能会导致拒绝服务攻击。
Red Hat发布了Quarkus 2.15.1.Final,其中包括缺陷修复、文档改进以及依赖性升级,包括Vert.x 4.3.6、Infinispan 14.0.3.Final、Dekorate 3.1.3和mongo-client.version
4.8.1。关于这个版本的更多细节可以在更新日志中找到。
Micronaut基金会发布了Micronaut 3.7.5,该版本包含缺陷修复和功能改善,比如,Health状态的输出从“Health monitor failed check with status {}”改成了“Health monitor check with status {}”,因为Health状态只会报告UP
或DOWN
;TextStreamCodec类的实例现在需要一个ByteBufferFactory类型的bean,以修复一个加载相关的问题。关于这个版本的更多细节可以在发布说明中找到。
甲骨文发布了Helidon 3.1.0,其特性包括:在Retry接口中定义了新的Exponential和Fibonacci策略;通过新的MPConfigSourceProvider接口支持MicroProfile Config规范;OidcConfig类中新的relativeUris
属性,允许OIDC web客户端在请求URI上使用相对路径;依赖性升级,如GralVM 22.3.0、Netty 4.1.86.Final和PostgreSQL JDBC driver 42.4.3。
Hibernate ORM 6.2的第一个发布候选版本发布,新特性包括:对Java record、映射composite/struct类型和Jakarta Persistence 3.1规范的支持;对MariaDB 10.7和SQL Server 2008的UUID支持;允许@SqlInsert、@SqlUpdate、@SqlDelete注解引用SecondaryTable类;以及一个新的@PartitionKey注解来识别实体中持有的表分区键的字段。
为了回应在4.3.6版本中报告的一些缺陷,Eclipse Vert.x 4.3.7发布,其特性包括,依赖升级到Netty 4.1.86,以解决CVE-2022-41881(HAProxyMessageDecoder Stack Exhaustion DoS)和CVE-2022-41915(HTTP Response Splitting from Assigning Header Value Iterator)。关于这个版本的更多细节,可以在发布说明中找到。
Apache Groovy 3.0.14的维护版本发布,包含错误修复、依赖性升级和两项改进:当用map实现接口时,静态类型检查器不识别闭包输入参数;StaticTypeCheckingSupport类中定义的evaluateExpression()
方法现在可以为简单表达式提供轻量级的评估计算。关于这个版本的更多细节可以在发布说明中找到。
Apache Groovy 2.5.20也是一个维护版本,它包含缺陷修复、依赖性升级以及与3.0.14版本相同的类型检查器改进。关于这个版本的进一步细节可以在发布说明中找到。
Apache Camel 3.20.0版本发布,该版本提供了200多个缺陷修复、改进、依赖性升级和新功能,比如:为位置文件路径参数提供补全(camel-jbang
组件);增加了对Event Resources的支持(camel-kubernetes
组件);为路由模型提供prefixId
,使路由的生成ID具有前缀(camel-core
组件);新的camel-etcd
组件。关于这个版本的更多细节可以在发布说明中找到。
MicroStream宣布,该项目已经加入Eclipse基金会,成为其成员。由于MicroStream已经与Helidon和Micronaut集成,他们的目标是与Eclipse社区紧密合作,并积极为Eclipse项目做出贡献。InfoQ将在后续推出更详细的新闻报道。
Kotlin 1.8.0的第二个发布候选版本提供了一些功能修复,比如:如果委托某个Java类读取一个类,该类明确非空,但使用了灵活的泛型上限的话,会抛出IllegalStateException
异常;UseSerializers类的一个参数没有实现KSerializer接口的实例或没有为具体类型提供序列化器;在JVM IR后端没有对符号VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER
的映射。
SourceBuddy是一个新的工具,可以编译在Java应用中动态创建的Java源码,在过去的一周里,EPAM Systems的架构师Peter Verhas引入了这个工具,并且迅速发布了2.0版本,其特性包括:对类的加载结构进行了重大调整;隐藏类和非隐藏类现在可以混合使用;删除loadHidden()
方法,改用hidden()
方法对每个添加的源进行单独处理。由于后一个特性是一个破坏性的变化,因此有必要在短时间内提供一个主版本。InfoQ将在后续提供更详细的新闻报道。
Jarviz是一个新的JAR文件分析工具,由Andres Almiray提供给Java社区。0.1.0版本发布,其特性包括:支持使用GAV解析JAR;简化清单命令;在调用基于URL的处理器之前解析输出目录。关于这个版本的更多细节可以在发布说明中找到,InfoQ后续会提供更详细的报道。
Just是一个用于开发Spring Boot应用的命令行工具包,由作为自由职业者的架构师兼开发者Maciej Walkowiak发布。0.12.0版本的特性包括:对just kill命令进行了重大改进,当它得知有Docker容器在选定的端口上运行时,会停止/杀死正在运行的Docker容器,而不是杀死Docker进程;为just build命令新增了两个配置属性,即just.build.extra-args
和just.build.maven.profiles
,以简化构建配置;如果框架自动检测失败,可以将just.framework
的值设置给just.framework
属性。InfoQ将在后续推出更详细的新闻报道。
查看英文原文:Java News Roundup: Spring Cloud 2022.0.0, Introducing SourceBuddy, Jarviz and Just