OpenJDK
JEP 456(未命名变量和模式) 已从 Candidate 进入到 Proposed to Target 状态(JDK 22)。这一 JEP 提议在 JEP 443(未命名模式和变量(预览),随 JDK 21 发布) 的预览之后最终确定该特性。该特性将“通过 未命名模式 (用于匹配记录组件,无需声明组件的名称或类型)和 未命名变量(可以初始化但不使用)来增强语言。” 这两者都使用下划线字符表示,如 r instanceof _(int x, int y)
和 r instanceof _
。评审预计于 2023 年 10 月 26 日结束。
JDK 22
JDK 22 早期访问版本 的 Build 20 已发布,包含自 Build 19 以来的 更新,修复了各种 问题。有关该版本的更多详细信息,请参阅 版本说明。
对于 JDK 22,开发者可以通过 Java Bug 数据库 报告问题。
BellSoft
与 Oracle 2023 年 10 月的 关键补丁更新(Critical Patch Update,CPU) 一同,BellSoft 发布了 Liberica JDK 21.0.0.0.1、17.0.8.1.1、11.0.20.1.1、8u391、7u401 和 6u401 的 CPU 补丁。此外,还发布了包含 CPU 和非关键修复的 补丁集更新(Patch Set Update,PSU) 版本 21.0.1、17.0.9、11.0.21 和 8u392。
Oracle
Oracle 推出了 Oracle Java Platform Extension for Visual Studio Code,为 VSCode 带来了 Maven 和 Gradle 项目全功能 Java 开发(编辑/编译/调试/测试)能力,以及项目资源管理、调试和启动配置、JDK 下载器、重构等功能。
GraalVM
Oracle Labs 发布 0.9.28版本的 Native Build Tools。新版本提供了这些特性:NativeImageUtils类中定义的 escapeArg()
方法回退到了之前的版本,修复了 Windows 路径转义问题;改进了 JDK 主要版本的检测;不再使用已弃用的 Gradle JavaPluginConvention 类,替换为 JavaPluginExtension类。有关该版本的更多详细信息,请参阅 变更日志。
Spring Framework
Spring Boot 3.2.0 的 第一个候选版本 包含了错误修复、文档改进、依赖项升级和新特性,如:打破 TransactionManagerCustomizers类与 TransactionManager接口之间的循环;自动配置 HikariCheckpointRestoreLifecycle类,适配用户自定义的 HikariDataSource 实例;支持在 buildInfo
Gradle 任务中添加 Gradle Provider 接口。有关该版本的更多详细信息,请参阅 版本说明。
类似地,Spring Boot 3.1.5、3.0.12 和 2.7.17 也已发布,包含了错误修复、文档改进、依赖项升级和显著的变更:纠正了 spring.jms.listener.concurrency
属性的行为,其中最大用户数被设置为此属性的值,最小消费者数始终设置为 1。这与文档描述不符,开发者应该在 spring.jms.listener.max-concurrency
属性中设置他们期望的最大值。有关这些版本的更多详细信息,请参阅 3.1.5、3.0.12 和 2.7.17 的版本说明。
Spring Security 6.2.0 的 第一个和第二个候选版本,以及服务版本 6.1.5、6.0.8 和 5.8.8,都包含了错误修复和依赖项升级。这些版本的新特性包括:说明如何发布一个不再使用已弃用的 WebSecurityConfigurerAdapter 类的 AuthenticationManager @Bean
;为依赖项使用了 Gradle Version Catalog 。候选版本的新特性包括:为 AuthorizeHttpRequestsConfigurer 类添加 Servlet Path 支持;允许在 BasicAuthenticationFilter 类中设置 AuthenticationConverter 接口的实例。有关这些版本的更多详细信息,请参阅 6.2.0-RC2、6.2.0-RC1、6.1.5、6.0.8 和 5.8.8 的版本说明。
Spring Authorization Server 1.2.0 的 第一个候选版本 包含了依赖项升级和一个新特性,增加了可重复使用的默认身份验证失败处理程序类 OAuth2ErrorAuthenticationFailureHandler。有关该版本的更多详细信息,请参阅 版本说明。
类似地,Spring Authorization Server 1.1.3、1.0.4 和 0.4.4 已发布,包含了次要错误修复和依赖项升级:Spring Boot 3.1.4、3.0.11 和 2.7.16;Spring Security 6.1.5、6.0.8 和 5.8.8;以及 Spring Framework 6.0.13、6.0.13 和 5.3.30。有关这些版本的更多详细信息,请参阅 1.1.3、1.0.4 和 0.4.4 的版本说明。
Spring Cloud Dataflow 2.11.1 版本 包含了一些显著的变更,如:确保TaskOperations接口中的 Launch API 具有向后兼容性;将常见的安全配置模块添加到依赖项管理中,修复了创建单体库后会出现的问题;升级到json-smart2.4.11、Nimbus JOSE + JWT 9.31、snappy-java 1.1.10.4 和 Apache Commons Compress 1.24.0,解决各种 CVE 问题。有关这一版本的更多详细信息,请参阅 版本说明。
WildFly
Red Hat发布了 WildFly 30.0.0,该版本支持 JDK 21,并且已通过 TCK 测试,作为 Jakarta EE Core Profile 的兼容实现。该版本还支持大多数MicroProfile 6.0 规范,但由于 Red Hat 不支持 MicroProfile Metrics 规范,所以不能声明是兼容实现。需要注意的是,Red Hat 建议开发者继续在 JDK 17 和 JDK 11 上运行他们的应用程序,因为他们还没有在Jakarta EE Platform和Jakarta EE Web Profile上认证 WildFly 30。尽管如此,Red Hat 表示“WildFly 30 是评估应用程序在 SE 21 上运行性能的绝佳选择。”有关该版本的更多详细信息,请参阅版本说明。
Payara
Payara 发布了 2023 年 10 月版本的Payara Platform,包括 Community Edition 6.2023.10、Enterprise Edition 6.7.0 和 Enterprise Edition 5.56.0。这些版本包含:错误修复;升级了 OIDC 客户端中的 json-smart 2.4.11,解决了CVE-2023-1370漏洞问题,该漏洞发生在解析嵌套的 JSON 结构数组和对象时,由于没有定义限制,可能导致堆栈溢出和软件崩溃;为 Payara 域命令,如start-domain
和stop-domain
,引入了新的超时选项--timeout
。有关这些版本的更多详细信息,请参阅Community Edition 6.2023.10、Enterprise Edition 6.7.0和Enterprise Edition 5.56.0的版本说明。
MicroProfile
MicroProfile 工作组发布了MicroProfile 6.1,包含了规范的更新:MicroProfile Config 3.1、MicroProfile Metrics 5.1 和 MicroProfile Telemetry 1.1。
MicroProfile Config 的重要变化包括:更新 TCK,与 Jakarta EE Contexts and Dependency Injection 4.0规范中的重大变化对齐,包括空的beans.xml
文件以及将 bean 发现模式从all
改为annotated
;MissingValueOnObserverMethodInjectionTest类,它断言了DeploymentException
,因ConfigObserverbean 被定义为@ApplicationScoped
(可代理)和final
(不可代理)而导致失败。有关该版本的更多详细信息,请参阅版本说明。
MicroProfile Metrics 的重要变化包括:引入 MicroProfile Config 属性,用于自定义Histogram和Timer指标如何跟踪和输出百分位和直方图桶的统计信息;将@RegistryScope注解定义为限定符;建议多应用程序部署使用mp.metrics.defaultAppName
属性来消除因多应用程序服务器需要一致标签所导致的问题。有关该版本的更多详细信息,请参阅版本说明。
MicroProfile Telemetry 1.1 的重要变化包括:澄清哪些 API 类必须对用户可用;一种不依赖于时间戳的测试实现;澄清Span和Baggage bean 在当前 span 或 baggage 发生变化时的行为。有关该版本的更多详细信息,请参阅版本说明。
MicroProfile 6.1 的初始兼容实现是Open Liberty 23.0.0.10-beta。
Micronaut
Micronaut 基金会披露了Micronaut Security模块的 OAuth2 漏洞。在CVE-2023-36820这个漏洞中,如果令牌是由相同的身份发行者/提供者发布时,IdTokenClaimsValidator类将跳过受众声明验证,导致访问控制不当。
Micronaut 基金会还发布了 Micronaut Framework 4.1.5 版本,其中包括Micronaut Core 4.10.0和模块更新:Micronaut AWS、Micronaut RxJava 3、Micronaut Discovery Client、Micronaut Reactor、Micronaut Object Storage。此外,Netty 升级到了4.1.100.Final。有关该版本的更多详细信息,请参阅版本说明。
Quarkus
Quarkus 3.2.7和2.16.12主要解决了几个 CVE:
CVE-2023-44487,Tomcat 的 HTTP/2 实现中的一个漏洞,容易受到快速重置攻击的影响,导致拒绝服务,通常表现为抛出
OutOfMemoryError
。CVE-2023-39410,这是Apache Avro的漏洞,允许攻击者反序列化不受信任或损坏的数据,导致内存消耗超出允许的限制,并进一步导致系统耗尽内存。
CVE-2023-34454,这是 snappy-java 的漏洞,允许攻击者利用未经检查的乘法引起可能的整数溢出,导致不可恢复的致命错误。
有关这些版本的更多详细信息,请参阅版本3.2.7和版本2.16.12的更新记录。
Quarkus 团队还记录了他们解决 CVE-2023-44487 的过程,包括 CVE 的概述、线程与事件循环以及他们的解决方案。
Open Liberty
IBM发布Open Liberty 23.0.0.10,支持 JDK 21,并更新了featureUtility
命令,在将新特性安装到 Open Liberty 时默认会验证特性的真实性。这替代了校验和,校验和不能确保下载文件的真实性。
Apache 软件基金会
Apache TomEE 9.1.1 版本已发布,其中包括了错误修复、依赖项升级,其中最显著的变化是取消了对CFX影子版本的支持,转而支持Apache CXF 4.0。该版本还包含了对多个 CVE 的修复和反向移植:
CVE-2023-34981,修复Bug 66512引起的回归问题,如果响应不包含 HTTP 标头,就不会为响应发送Apache JServ Protocol(AJP)
SEND_HEADERS
消息,从而导致信息泄漏。这已在Bug 66591中修复,建议开发者迁移到 11.0.0-M6、10.1.9、9.0.75 或 8.5.89。CVE-2023-42795,在回收各种内部对象(包括请求和响应,并且这些对象在被下一个请求/响应重用)时发生暴露,错误可能导致 Tomcat 跳过回收过程的某些部分,从而导致当前请求/响应的信息泄漏。
CVE-2023-35116,这是针对 Jackson Databind 2.15.2 及更低版本的漏洞,攻击者可以创建一个使用循环依赖的对象,可能导致拒绝服务。值得注意的是,这个 CVE 还存在争议,因为 Jackson 的维护者FasterXML认为,外部攻击者无法构造试图进行序列化的循环数据结构。
有关该版本的更多详细信息,请参阅版本说明。
Apache Tomcat 10.1.15和8.5.95都包含了对主要问题的修复:重构代码后出现的 HTTP 压缩回归问题;因清理 10.1.14 和 8.5.94 中使用不必要的全限定类名导致的回归问题(影响了 JDBC 连接池)。有关这些版本的更多详细信息,请参阅10.1.15和8.5.95的版本说明。
JHipster
JHipster 8.0.0 的第一个候选版本包含了错误修复、依赖项升级以及一些显著的变化,如:在 Hibernate 中,由 JHipster 生成的equals()
方法现在可以被安全使用;改进了MetricsComponent类的代码覆盖率;改进了对 JHipster Blueprints的支持。有关该版本的更多详细信息,请参阅版本说明。
JHipster Lite 0.45.0 已经发布,包含了错误修复、文档改进、依赖项升级以及新功能/改进,如:为了支持 YAML 配置,新增了一个YamlFileSpringPropertiesHandler类;为方便调试,为各种 JHipster 类新增了toString()
方法;支持处理 Spring 属性文件中的多行注释。有关这个版本的更多详细信息,请参阅版本说明。
JHipster 团队还进行了 10 周年庆祝。第一个代码提交发布于 2013 年 10 月 21 日。
EclipseCon
EclipseCon 2023大会在德国 Ludwigsburg 的Forum am Schlosspark和电影与媒体中心(FMZ)举行,吸引了来自 Java 社区的演讲者,就汽车与移动性、物联网与边缘计算、开源最佳实践、编程语言与运行时、以及工具与 IDE 等主题发表了演讲。大会还设有社区日,汇集了志同道合的个人、热情的专家和各行各业的好奇人士,举办会议、研讨会、进行项目更新、演示或小组讨论等。Eclipse 基金会的 Jakarta EE 开发者布道师Ivar Grimstad发布了他关于社区日、第一天、第二天和第三天的每日总结。
原文链接:
https://www.infoq.com/news/2023/10/java-news-roundup-oct16-2023/
评论