OpenJDK
为了与 Oracle 的最新设计思想“在语言和类文件中表达扁平化(flattenability)”保持一致,Oracle 编程语言设计师Daniel Smith更新了 JEP 401(空限制值对象存储预览)。该提案最初名为 Primitive Classes(预览版),支持值对象的空限制存储,即在字段和数组组件中将它们初始化为类的初始实例,并拒绝空值写入尝试。有关值对象的定义,可参见 JEP 草案 8277163(值对象预览)。
JDK 21
根据 JDK 21 的发布时间表,Oracle Java 平台组首席架构师Mark Reinhold正式宣布,JDK 21 进入第一个发布候选,因为 Build 35 中已经没有未解决的 P1 Bug。GA 版本预计将于 2023 年 9 月 19 日发布。
JDK 21 最终将包含以下 15 项特性:
JEP 430:字符串模板(预览版)
JEP 431:有序集合
JEP 439:分代式ZGC
JEP 440:记录模式
JEP 441:Switch模式匹配
JEP 442:外部函数&内部API(第三个预览版)
JEP 443:未命名模式和变量(预览版)
JEP 444:虚拟线程
JEP 445:未命名类和实例主方法(预览版)
JEP 446:作用域值(预览版)
JEP 448:向量API(第六轮孵化)
JEP 449:弃用Windows 32-bit x86移植,准备删除
JEP 451:准备禁用代理的动态加载
JEP 452:密钥封装机制API
JEP 453:结构化并发(预览版)
Build 35仍然是 JDK 21早期访问构建的当前构建。要了解关于该构建的更多细节,请查看发布说明。
JDK 22
JDK 22早期访问构建Build 11在上周发布,其中包括 Build 10 的更新,主要是修复了各种问题。要了解关于这个版本的更多细节,请查看发布说明。
对于JDK 22和JDK 21,我们鼓励开发人员通过Java Bug数据库报告 Bug。
Spring Framework
Spring Framework 6.1 的第四个里程碑版本带来了依赖项升级和一些值得注意的变化,其中包括:在@TestPropertySource
注解中支持资源模式;在DatabaseClient
接口中支持基于类的映射;新增RowMapper
接口 ,能够自动绑定到数据库字段。要了解关于该版本的更多细节,请查看问题列表。
Spring Data 2023.1.0 的第二个里程碑版本(代号为 Vaughn)发布,新特性包括:兼容 JDK 21;支持Kotlin值类;通过Executor
接口使用虚拟线程;使用检查点协调恢复(CRaC)进行优化探索。要了解关于该版本的更多细节,请查看发布说明。
类似地,Spring Data服务版的 2023.0.3、2022.0.9 和 2021.2.15 版本修复了 Bug,并升级了相应的依赖项,如:Spring Data MongoDB 4.1.3、4.0.9 和 3.4.15;Spring Data Elasticsearch 5.1.3、5.0.9 和 4.4.15;Spring Data Neo4j 7.1.3, 7.0.9 和 6.3.15。
Spring Modulith 1.0 的第二个候选版本带来了一些值得注意的变化,其中包括:统一使用event_publication
作为关系存储的表名,以及 Event Publication Registry 中 MongoDB 的集合名;将执行器重命名为modulith
,消除了之前在执行器名称中使用的破折号;显式声明@ApplicationModule(allowedDependencies ={}
禁止任何传出依赖。要了解关于该版本的更多细节,请查看发布说明。
Apache 软件基金会
Apache Camel 4.0.0发布,带来了许多 Bug 修复、依赖项升级、改进和新特性,其中包括:使用 GraalVM 支持 Spring Boot 3 AOT 原生编译;支持Micrometer Observation;在Camel JPA中支持分页。要了解关于该版本的更多细节,请查看发布说明。InfoQ 后续会带来更详细的新闻报道。
Apache Tomcat 11.0.0-M10、10.1.12、9.0.79和8.5.92版本在上周发布,所有四个版本都提供了 Bug 修复和改进,其中包括:重构 HTTP/2 实现,以减少使用虚拟线程时的钉选(pinning);增加了指向 OpenSSL 配置文件的直通密码,例如profile =SYSTEM
,而不是在试图解析它时产生错误;依赖项升级到Tomcat Native 2.0.5。要了解关于这些版本的更多信息,可以查看11.0.0-M10、10.1.12、9.0.79和8.5.92版本的发布说明。
Payara
Payara发布了Payara平台的 2023 年 8 月版,其中包括社区版 6.2023.8、企业版 6.5.0 和企业版 5.54.0,其中包括一些值得注意的 Bug 修复,诸如:在 JDK 17 中无法实例化LdapCtxFactory
类;由于libpam4j-repackage.jar
依赖项中的错误,无法在 JDK 11.0.20 或 JDK 17.0.8 上启动 Payara Server;在使用DataSource
接口中定义的getConnection()
方法时,由于事务状态显示错误而导致的异常。要了解关于这些版本的更多信息,请查看社区版6.2023.8和企业版6.5.0的发布说明。
Micronaut
Micronaut 基金会发布了Micronaut Framework的 4.0.4、3.10.1 和 3.9.6 版本。4.0.4 版本提供了模块升级: Micronaut GraphQL、Micronaut Neo4J、Micronaut Reactor、Micronaut Servlet、Micronaut Cache和Micronaut CRaC。3.10.1 版本和 3.9.6 版本修改了 SDKMan Gradle 任务,用sdkMinorRelease
属性取代了sdkMajorRelease
,其中还包含联合发布及公告。要了解关于这些版本的更多细节,请查看4.0.4、3.10.1和3.9.6版本的发布说明。
Hibernate
Hibernate Search 6.2.1.Final发布。该版本带来了一些显著的变化,其中包括:如果 Spring 应用程序运行在 JDK 13 及更高版本上,则能够读取它重新打包后的 Jandex 索引;如果将属性hibernate.search.backend.query.shard_failure.ignore
设置为false
,则部分失败的搜索查询现在可以触发一个异常;依赖项升级到Hibernate ORM 6.2.7.Final 和 Elasticsearch client 8.9.0;兼容OpenSearch 2.9.0。
Micrometer
Micrometer Metrics的 1.12.0-M2、1.11.3、1.10.10 和 1.9.14 版本发布,其中包括 Bug 修复、文档改进、依赖项升级和新特性,诸如:不再要求在ObservationThreadLocalAccessor
类上设置ObservationRegistry
接口的实例;新增类JmsInstrumentation
,使用 Observation API 检测 Jakarta Messaging Session
接口的实例。要了解关于这些版本的更多细节,请查看1.12.0-M2、1.11.3、1.10.10和1.9.14版本的发布说明。
类似的,Micrometer Tracing的 1.2.0-M2、1.1.4 和 1.0.9 版本也已经发布,其中包括依赖项升级,以及在 OpenTelemetry Tracer
接口中使用CurrentTraceContext
接口,以便更有效地合并 scope、baggage 以及检查空操作。要了解关于这些版本的更多细节,请查看1.2.0-M2、1.1.4和1.0.9版本的发布说明。
Infinispan
Infinispan 14.0.14发布,带来了一些值得注意的变化,其中包括:在 Infinispan 测试中删除了所有的 Hibernate Search 5 注解;为了解决 CVE,依赖项升级到 Netty 4.1.94.Final 和 Jackson 2.15.2;InvalidatedNearRemoteCache
在并发访问的情况下持久化陈旧数值的能力。要了解关于这个版本的更多细节,请查看变更日志。
JHipster
JHipster React Native 4.4.0发布,新特性包括:升级到 Expo 49 SDK,其中 React Native 版本为 0.72.3;更新LICENSE
文件中的通知和许可信息;更新著作权声明。要了解关于该版本的更多细节,请查看变更日志。
JBang
JBang 0.110.1发布,带来了一些 Bug 修复:在容器中运行时抛出NullPointerException
异常;在JavaSource
类的getCompileOptions()
方法中使用-g
标志来替换JAVAC_OPTIONS
和COMPILE_OPTIONS
环境变量。
Piranha
Piranha 23.8.0发布,提供了一些值得注意的变化,其中包括:使用PiranhaConfiguration
接口进行分发;新增ExitOnStopFeature
类,在请求停止所有特性后退出 JVM;新增WebAppFeature
类,可用于托管单个 Web 应用程序。要了解关于这个版本的更多细节,请查阅官方文档和问题跟踪系统。
Reactor 项目
Reactor 2023.0.0 的第二个里程碑版本发布,将依赖项升级到reactor -core 3.6.0-M2
、reactor-netty 1.1.10
和reactor-kafka 1.3.20
。此外,2023.0.0-M2 版本也做了调整,其中reactor-pool 1.0.1
、reactor-addons 3.5.1
和reactor-kotlin-extensions 1.2.2
构件保持不变。要了解关于该版本的更多细节,请查看变更日志。
同样,Reactor 2022.0.10(第10个维护版本)升级了依赖项reactor-core 3.5.9
、reactor-netty 1.1.10
和reactor-kafka 1.3.20
。此外,2022.0.10 版本也做了调整,其中reactor-pool 1.0.1
、 reactor-addons 3.5.1
和reactor-kotlin-extensions 1.2.2
构件保持不变。要了解关于这个版本的更多细节,请查看变更日志。
Byte Buddy
Byte Buddy 1.14.6 发布,带来了一些值得注意的变化,其中包括:在AgentBuilder.PatchMode
枚举中新增SUBSTITUTE
枚举,在ResettableClassFileTransformer
接口中新增Substitutable
子接口,用于按序打补丁;在给AgentBuilder
接口打补丁时,可以显式指定差异匹配器的规范;根据新版本的要求为 Android 创建只读的JAR
文件。要了解关于该版本的更多细节,请查看发布说明。
JobRunr
JobRunr是一个以持久存储为基础的分布式 Java 后台处理库。JobRunr 6.3.0 版本发布,修复了一些 Bug,并提供了一些新特性,其中包括:支持 Micronaut 4.0 和 Kotlin 1.9;改进 JobRunr 仪表板性能,减少 JobRunr REST API 调用;改进稳定性,尽量减少抛出SevereJobRunrException 类的实例;新增超时机制,在必要时自动中断Job类的实例。要了解关于该版本的更多细节,请查看发布说明。
Arquillian
Arquillian 1.7.1.Final发布,新特性包括:修复了arquillian-bom1.7.0.Final
中一个构件在使用 Maven 3.6.3 时抛出校验和验证错误的问题;依赖项升级到RESTEasy 6.2.4.Final。要了解关于该版本的更多细节,请查看变更日志。
Gradle
Gradle 8.3发布,新特性包括:支持 JDK 20;使用工作进程将 Java 编译器作为编译器守护进程运行,从而加快 Java 编译速度;可使用Kotlin K2编译器进行实验;改进CodeNarc插件的输出。要了解关于该版本的更多细节,请查看发布说明。
原文链接:
https://www.infoq.com/news/2023/08/java-news-roundup-aug14-2023/
相关阅读:
Java 近期新闻:Payara Cloud、MicroProfile Telemetry、Foojay.io 日历、JVM 语言峰会
评论