
OpenJDK
甲骨文(Oracle)的软件架构师Maurizio Cimadamore已经提交了 JEP Draft 8310626,外部函数和内存API。该 JEP 提议在经过两轮孵化和三次预览后最终确定该特性:JEP 412,外部函数和内存API(孵化阶段),在 JDK 17 中交付;JEP 419,外函数与内存API(第二轮孵化),在 JDK 18 中交付;JEP 424,外部函数和内存API(预览版),在 JDK 19 中发布;JEP 434,外部函数和内存API(第二次预览),在 JDK 20 中发布;以及 JEP 442,外部函数和内存API(第三次预览),将在即将发布的 JDK 21 中发布。自上一个版本发布以来的改进包括:一个新EnableNativeAccess 清单属性,允许可执行 JAR 中的代码在不使用--enableNativeAccess标志的情况下调用受限方法;允许客户端以编程方式构建 C 函数描述符,避免使用特定于平台的常量;改进了对本地内存中可变长度数组的支持;以及支持本地字符串中的多个字符集。
Cimadamore 和甲骨文技术人员顾问成员Per-Åke-Minborg还提交了 JEP Draft 8312611,计算常量(Computed Constants)。这个 JEP 引入了计算常量的概念,其定义为最多初始化一次的不可变值的占位符。这为final字段提供了性能和安全优势,同时在初始化时间方面提供了更大的灵活性。该特性将作为预览版API 首次亮相。
甲骨文 OpenJDK 开发团队的Julian Waters已经提交了 JEP Draft 8313278,Java虚拟机预先编译(Ahead of Time Compilation for the Java Virtual Machine)。该 JEP 提议“增强 Java 虚拟机加载 Java 应用程序和编译成本机代码库的能力,以实现更快的启动和基线执行”。
JDK 的回归测试工具jtreg已经发布了7.3 版本,并准备集成到 JDK 中。值得注意的变更包括:更新了一组用于在类 Unix 平台上进行测试的默认环境变量(DBUS_SESSION_BUS_ADDRESS、WAYLAND_DISPLAY和XDG-*);修复了使用多模块设置运行测试时的竞争条件;以及修复了在AgentServer类中定义的log(),该方法不会刷新输出。有关该版本的更多详细信息,请参阅发布说明。
JDK 21
JDK 21早期访问构建版本的第33版已于上周发布,其中包括第 32 版中各种问题的修复和更新。有关该版本的更多详细信息,请参阅发布说明。
JDK 22
JDK 22早期访问构建版本的第8版也已于上周发布,其中包括第 7 版中各种问题的修复和更新。有关该版本的更多详细信息,请参阅发布说明。
对于JDK 22和JDK 21,均鼓励开发人员通过Java缺陷数据库报告缺陷。
GraalVM
GraalVM Community Components 23.0.1已发布,由用于JDK 20 Community 20.0.2的GraalVM和用于JDK 17 Community 17.0.8的GraalVM组成,并提供了以下原生镜像(Native Image)的修复:jvm stat性能数据初始化;JDK Flight Recorder(JFR)事件常量池 ID;用户体验问题;以及生成报告中的分析结果。对计数循环的剥离挖掘优化功能也进行了更新,其中挖掘溢出循环在 Graal 编译器中被定义为“不剥离”。这些新版本分别构建在 JDK 版本的20.0.2+9和17.0.8+7上。有关这些版本的更多详细信息,请参阅版本20.0.2和版本17.0.8的发布说明。
同样,GraalVM Community Edition 22.3.3也发布了,以与 GraalVM 社区版的 2023 年 4 月关键补丁更新(CPU)保持一致。该版本基于 JDK 的 17.0.7 和11.0.19版本构建。有关该版本的更多详细信息,请参阅发布说明。
有关 GraalVM 最新版本的更多详细信息,请参阅这篇详细的新闻报道,其中包括与 Oracle 实验室 GraalVM 的开发人员倡导者Alina Yurenko的问答。
Spring 框架
Spring Cloud 2022.0.4 已发布,代号为 Kilburn,其带来了显著的变更,例如:支持Spring Cloud Commons中ServiceInstanceListSupplier接口的委托进行重试感知负载均衡;改进了在Spring Cloud Stream中加载共享 bean 的异常处理;Spring Cloud OpenFeign和Spring Cloud Netflix分别升级到 Feign 12.4 和 Eureka 2.0.1。该最新版本基于 Spring Boot 3.0.9 构建。需要注意的是,其子项目:Spring Cloud CLI、Spring Cloud for Cloud Foundry和Spring Cloud Sleuth已从发布序列中删除。有关该版本的更多详细信息,请参阅发布说明。
Spring Security的 6.1.2、6.0.5、5.8.5、5.7.10 和 5.6.2 版本已经发布,以解决两个通用漏洞披露(Common Vulnerabilities and Exposures,CVE):CVE-2023-34034,WebFlux安全绕过无前缀的双通配符模式,这是一个漏洞,在 Spring WebFlux 的 Spring Security 配置中使用双通配符(**)作为模式会导致模式匹配出现不匹配,从而可能导致安全绕过;和 CVE-2023-34035,使用多个Servlet时可能会错误配置授权规则,该漏洞使用requestMatchers(String)方法和多个 servlet(其中一个是 Spring MVC DispatcherServlet类)可能会导致授权规则错误配置。有关这些版本的更多详细信息,请参阅版本6.1.2、版本6.0.5、版本5.8.5、版本5.7.10和版本5.6.12的发布说明。
Spring Shell的 3.1.3、3.0.7 和 2.1.12 版本已经发布,其特性包括:在CompletionProposal类中添加了complete()方法,以便通过多次单击选项卡(如文件路径)来完成单个参数。这些版本分别基于Spring Boot的 3.1.2 版本、3.0.9 版本和 2.7.14 版本构建。有关这些版本的更多详细信息,请参阅版本3.1.3、版本3.0.7和版本2.1.12的发布说明。
Grails
Grails 基金会发布了Grails的 6.0 版本,它提供了:最小的 JDK 11 版本;对 Spring Framework 5.3.28、Spring Boot 2.7.12 和 Gradle 7.6.1 的支持;Grails Forge UI的首次亮相,这是一个类似于 Spring Initializr 等项目的入门项目;以及增强了对 Micronaut Framework 的集成。有关该版本的更多详细信息,请参阅发布说明,InfoQ 将会跟进更详细的新闻报道。
TornadoVM
开源软件技术公司TornadoVM发布了 0.15.2 版本的虚拟机,该版本提供了缺陷修复和显著的改进,例如:对在多个设备上执行多个独立任务的最初支持,可以在多个硬件加速器上执行多任务;支持 OpenCL/PTX 和 SPIR-V 后端的三角radian、cospi和sinpi函数;并与 ComputeAorta(Codeplay 针对 RISC-V 的oneAPI构建套件的一部分)进行初始集成,以便在 RISC-V 上以仿真模式运行矢量指令。有关该版本的更多详细信息,请参阅发布说明。
曼彻斯特大学高级处理器技术研究小组副研究员Juan Fumero于 2020 年 3 月在伦敦QCon上介绍了 TornadoVM,并为 InfoQ 撰写了这篇最新的技术文章。
LibericaJDK
BellSoft 为 JDK 17.0.8 和 20.0.2发布了Liberica Native Image Kit(NIK)的 23.0.1 版本,作为关键补丁更新(CPU)发布周期的一部分,其特性包括:对 Windows 操作系统上的 ParallelGC 的实验性支持;针对 JavaFX FXML 应用程序的编译修复;并修复了以下通用漏洞披露:CVE-2023-22043;CVE-2023-22041;CVE-2023-25193;CVE-2023-22044;CVE-2023-22045;CVE-2023-22049;CVE-2023-22036;和CVE-2023-22006。
PrimeFaces
PrimeFaces的 13.0.0 版本已经发布,其中包括一些缺陷修复、依赖项升级,并增加了一些新特性,例如:支持SelectCheckboxMenu类中的列和页脚 facet;在InputNumber类中添加selectOnFocus()和caretPositionOnFocus()方法;以及在OverlayPanel类中添加了缓存属性。需要注意的是,其存在一些破坏性变更。有关该版本的更多详细信息,请参阅发布说明。
Quarkus
红帽(Red Hat)发布了Quarkus 3.2.2.Final 版本,以解决 3.2.1 版本中的两个回归问题以及文档方面的改进。值得注意的变更包括:恢复到了openjdk-17-runtime:1.16镜像,因为开发分支的版本号已升至 1.17,预计下一个版本将于 2023 年 8 月发布;删除了有关quarkus.launch.rebuild属性的误报警告;并且如果 OIDC 状态 cookie 不匹配,则允许重新身份验证。有关该版本的更多详细信息,请参阅变更日志。
Hibernate
Hibernate Reactive 2.0.4.Final已发布,其特性包括:对 Hibernate ORM 6.2.7.Final 的依赖升级;仅根据请求启动 Docker 容器,以确认远程数据库在执行完整构建之前已经启动;以及修复@SQLSelect注解在主实体上不起作用的问题。有关该版本的更多详细信息,请参阅发布说明。
Micronaut
Micronaut Framework 4.0.2 是第二个维护版本,它提供了缺陷修复、文档改进、依赖项升级和改进,例如:在BuildTestVerifier接口中添加了版本号检查;并将异步验证移动到了处理器模块,这是因为AsyncTypeElementVisitor类被定义成了compileOnly依赖项。有关该版本的更多详细信息,请参阅发布说明。
Micronaut 基金会已将其聊天社区从Gitter转移到Discord,并且立即生效。该基金会表示,Discord 提供了改进的桌面应用程序体验、更好的结构化对话和增强的通知。并且鼓励 Gitter 上的开发者转移到 Discord,但该基金会将继续监控 Giter 上的对话,并提供 Discord 的链接。
JBang
JBang 0.110.0 的发布将其 Maven Central ID 从mavencentral更改为center,用于获取依赖项,以便在基于 Maven 和基于 JBang 的构建之间更好地共享下载。还修复了包含大写字母的 Maven 构件无法下载的回归问题。
JHipster
JHipster Lite的0.39.0版本已经发布,其中包括了一些缺陷修复、依赖项升级和功能改进,例如:通过改进的配置增强了Logback依赖项,并且不再需要显式定义 shutdown 钩子;将getInstantOrDefault()方法添加到了JHipsterModuleProperties类中;以及在 REST 分页中将映射切换到非并行流,以确保流的顺序处理。有关该版本的更多详细信息,请参阅发布说明。
JUnit
JUnit 5.10.0 已经发布,新特性包括:ModuleSelector、EngineDiscoveryListener、EngineDiscoveryRequestResolver、LauncherSession和@Suite等实验性 API 已经提升到稳定状态;@SelectMethod注解中的新选择器;以及一个新的LauncherInterceptor接口,用于拦截Launcher和LauncherSessionListener接口实例的创建。有关该版本的更多详细信息,请参阅发布说明。
Gradle
Gradle 8.3 的第二个候选版本提供了持续的改进,例如:对 JDK 20 的支持;使用工作进程将 Java 编译器作为编译器守护进程运行,从而更快地进行 Java 编译;使用Kotlin K2编译器进行实验的能力;以及改进了CodeNarc插件的输出。有关该版本的更多详细信息,请参阅发布说明。
原文链接:
https://www.infoq.com/news/2023/07/java-news-roundup-jul24-2023/
相关阅读:
Java 近期新闻:Jakarta EE 11 更新、Quarkus LTS、Micronaut、Foojay 顾问委员会、DevBCN、JCrete













评论