OpenJDK
JEP 457,Class-File API(预览)已经从 Draft 8280389提升到了 Candidate 状态。该 JEP 建议提供用于解析、生成和转换 Java 类文件的 API。它最初作为 JDK 中 Java 字节码操作和分析框架ASM的替代品,并计划将其作为公共 API 对外开放。甲骨文的 Java 语言架构师Brian Goetz将 ASM 称为“带有大量遗留包袱的旧代码库”,并提供了该草案将如何发展并最终取代 ASM 的背景信息。
JEP 456,未命名变量和模式(Unnamed Variables and Patterns)已经从 Draft 8311828提升至 Candidate 状态,以完成该特性的上一轮预览,即 JDK 21 中的 JEP 443,未命名变量和模式(Unnamed Patterns and Variables,预览)。这个 JEP 建议”用未命名的模式和未命名变量来增强语言,前者与记录组件相匹配,但无需说明组件的名称和类型,后者可以被初始化但不使用“。 这两者均由下划线字符表示,如r instanceof _(int x, int y)
和r instanceof _
。
JEP 455,模式、instanceof和switch中的原始类型(预览)已经从 Draft 8288476提升到了 Candidate 状态。该 JEP 建议“通过允许在所有模式上下文中使用原始类型来增强模式匹配,使原始类型模式的语义与 instanceof 一致,并扩展 switch 以允许原始常量作为 case 标签”。
甲骨文公司的软件开发总监Jim Laskey提交了 JEP Draft 8314219,字符串模板(String Templates),以完成该特性的上一轮预览,即 JDK21 中的 JEP 430,字符串模板(预览)。该 JEP 通过字符串模板(包含嵌入式表达式的字符串字面量)增强了 Java 编程语言,字符串模板会在运行期解释执行,在这个过程中嵌入式表达式会被评估和校验。关于 JEP 430 的更多详情,请参阅 InfoQ 的新闻报道。
JDK 22
JDK 22 早期访问版本的Build 17发布,该版本是对 Build 16 的更新,包含对各种问题的修复。有关该版本的更多详情,请参阅发布说明。
对于JDK 22,鼓励开发人员通过Java缺陷数据库报告缺陷。
Eclipse GlassFish
Eclipse GlassFish 7.0.9 是第九个维护版本,包含了组件升级和重要的缺陷修复,比如,试图将带有 EJB 远程接口的应用程序部署到嵌入式GlassFish时会出现IllegalArgumentException
;ServletContextListener
接口中定义的contextInitialized()
方法在部署时会调用多次;stop-local-instance
命令行参数无法停止服务器实例。关于该版本的更多详情,请参阅发布说明。
OmniFish 的总监Ondro Mihályi一直在为 GlassFish开发对虚拟线程的支持,并提供了可运行的样例。
Jextract 项目
Jextract 项目向 Java 社区提供了基于 JDK 21 的早期访问构建版本Build 21-jextract+1-2。要使用该构建版,在 MacOS Catalina 或更高版本上运行的开发人员需要在使用jextract
二进制文件之前需要移除 quarantine 属性。
由于 Panama 项目早期访问构建中的大多数特性均已转移到孵化 JEP,jextract
(一个从原生库头信息生成 Java 绑定的工具)依然是唯一的特性,因此将会在其自己的项目中进行维护。
Spring Framework
Spring Cloud 2023.0.0(代号为 Leyton)的第二个里程碑版本发布,它包含了如下特性:将所有 Spring Cloud 项目文档迁移至Antora(多资源库文档站点生成器);对 Spring Cloud Commons 4.1.0-M2、Spring Cloud Starter Build 2023.0.0-M2 和 Spring Cloud Kubernetes 3.1.0-M2 等子项目进行里程碑升级。关于该版本的更多信息,请参阅发布说明。
Helidon
Helidon 4.0.0 的第一个发布候选版本带来了缺陷修复、依赖升级和值得注意的变更,例如,对 API 进行了重大重构和稳定化;支持 HTTP/2;WebServer和WebClient组件已经宣布功能完备。关于该版本的更多信息,请参阅发布说明。
Open Liberty
IBM发布了Open Liberty的 23.0.0.10-beta 版本,该版本包含如下特性:支持 JDK 21 和即将发布的 MicroProfile 6.1;使用 Spring Boot 3.0 和 InstantOn with Coordinated Restore at Checkpoint(CRaC)改进了 Spring Boot 应用的启动时间;Jakarta Data 规范的 beta 3 实现;自动生成和轮换Lightweight Third Party Authentication(LTPA)密钥,而不会影响应用的用户体验。
Apache 软件基金会
Apache Camel的4.0.1和3.21.1版本都提供了值得关注的改进,比如:为 OpenTelemetry 提供了跟踪每个处理器的跟踪策略;在日志中屏蔽了名为“secret”的环境变量;防止在生产者端点中使用代理协议。关于这些版本的更多详情,请参阅4.0.1版本和3.21.1版本的发布说明。
JHipster
JHipster Lite 0.43.0 版本发布,其中包括缺陷修复、依赖升级和新特性/增强,例如,将原来的LogsSpy
类拆分为LogsSpy
和LogsSpyExtension
类,以遵循单一职责原则并避免暴露 JUnit5 相关的方法;用Vitest取代Sinon JavaScript 框架的使用。关于该版本的更多详情,请参阅发布说明。
JDKMon
JDKMon的17.0.77和17.0.75版本发布,它是一个用来监控和更新已安装 JDK 的工具。该工具由 Azul 的首席工程师Gerrit Grunwald创建,这些版本提供了:最新的更新文档;在“About”对话框中添加了指向 GitHub 发行版的链接。
JobRunr
JobRunr是一个用于分布式后台处理并由持久性存储作为支撑的 Java 库,它发布了 6.3.2 版本,其中包括了缺陷修复、依赖升级和一项新的特性,即增加了在 Quarkus 中对 GraalVM 原生可执行文件的支持。关于该版本的更多详情,请参阅发布说明。
Yupiik
Yupiik Fusion 1.0.8发布,提供了以下新特性:确保 span 标签只能为字符串,否则将需要一个额外的映射步骤;支持enum
类型;改善模板处理;用来支持限流的新类RateLimiter
和RateLimitedClient
。关于该版本的更多详情,请参阅发布说明。
Gradle
Gradle 8.4 的第三个候选版本发布,提供了如下特性:鉴于 Kotlin 尚不支持 JDK 21,仅对 JDK 21 提供了初步支持,以编译、测试和运行 Gradle 项目;改进了在 Windows 操作系统上的编译;简化了使用ConfigurationContainer
接口创建以角色为中心的Configuration
接口实例的方法;改进了对Kotlin DSL的支持。关于该版本的更多详情,请参阅 发布说明。
原文链接:
Java News Roundup: New JEP Candidates, Spring Cloud, GlassFish, Helidon, Open Liberty, Apache Camel
评论