面向 JDK 21 的 JEP 451(代理动态加载禁用准备)已经从候选状态提升到 Proposed to Target 状态。该 JEP 起初名为“默认禁止代理的动态加载”,在 JEP Draft 8305968(完整性和强封装)之后提出。其意图本是默认禁止将代理动态加载到正在运行中的 JVM,现在已经演变为在将代理动态加载到运行中的 JVM 时发出警告。该 JEP 的目标包括:重新评估可用性和完整性之间的平衡;确保大多数不需要动态加载代理的工具不受影响。InfoQ 后续将带来更详细的新闻报道。
为了回答关于 switch 模式穷尽检查的设计哲学的诸多问题,Oracle Java 语言架构师 Brian Goetz 和 Oracle 技术顾问 Gavin Bierman 发布了一份文档,详细说明了无条件、穷尽和余值(remainder)之间的关系。
JDK 21 早期访问构建 Build 24 在上周发布,其中包括 Build 23 的更新,主要是修复了各种问题。要了解关于这个版本的更多细节,请查看发布说明。
对于 JDK 21,我们鼓励开发人员通过 Java Bug 数据库报告 Bug。
Spring Cloud 2022.0.3 版本的代号为 Kilburn,与 Spring Boot 3.1 兼容,并更新了 Spring Cloud 子项目,包括:Spring Cloud OpenFeign 4.0.3、Spring Cloud Commons 4.0.3、Spring Cloud Kubernetes 3.0.3 和 Spring Cloud Starter Build 2022.0.3。然而,以下子项目的删除也带来了一些破坏性更改:Spring Cloud CLI、Spring Cloud for Cloud Foundry 和 Spring Cloud Sleuth。关于该版本的更多细节,请查看发布说明。
Spring Shell 3.1.0,3.0.4 和 2.1.10 版本发布,带来了一些值得注意的修复,例如:ConfirmationInput 类的实例在输入时不显示所选择的选项;如果未使用 @Option 或 @ShellOption 注解,那么将目标方法参数作为布尔参数将失败。这些版本分别基于 Spring Boot 3.1.0、3.0.7 和 2.7.12 构建。关于这些版本的更多细节,请查看 3.1.0、3.0.4 和 2.1.10 的发布说明。
Spring Security Kerberos 2.0.0 的第二个候选版本将依赖项升级到了 Spring Security 6.1.0。关于该版本的更多细节,请查看发布说明。
Payara 发布了 Payara 平台的 2023 年 5 月版,其中包括社区版 6.2023.5、企业版 6.2.0 和企业版 5.51.0。这三个版本主要是解决:CVE-2023-1370 漏洞——在 Json-smart (JSON 处理器库)中对 JSON 嵌套数组和对象进行非受控递归解析时,可能导致堆栈溢出,进而导致软件崩溃;使用 Web UI 创建 JVM 选项时抛出的异常“JVM option${ } 在配置中已经存在”。该版本还带来了依赖项升级:Jackson 2.15.0、SnakeYAML 2.0、JSON Smart 2.4.10 以及 JDK 8u372、11.0.19 和 17.0.7 的 Docker 镜像。要了解关于这些版本的详细信息,请查看社区版 6.2023.5、企业版 6.2.0 和企业版 5.51.0 的发布说明。
Quarkus 3.0.4.Final 是第三个维护版本(第一个是 3.0.1),提供了文档方面的改进和重要的 Bug 修复,例如:当设置了 quarkus.package.output-directory 属性时,本地镜像构建失败;当将 @ConfigMapping 与 onStartup() 方法一起使用时,会出现“No current injection point found”错误;修复 RestEasy Reactive 中的 location 和 content location 头信息。要了解关于该版本的更多细节,请查看变更日志。
同样,Quarkus 2.13.8 也带来了一些重要的 Bug 修复,其中许多是向后移植的,例如:针对警告消息 quarkus.oidc.application-type=service 的修复;默认加密 OIDC 会话 cookie 值;在 ProviderConfigInjectionWarningsTest 类中过滤掉与 Apache HTTP 客户端未关闭相关的 RESTEasy 警告;因最近一次 Netty 版本升级所导致的 MongoDB 客户端本地镜像构建警告。要了解关于该版本的更多细节,请查看发布说明。
WildFly 28.0.1 发布,提供了依赖项升级和重要的 Bug 修复,包括:在 ContextPropagationTestCase 类中定义的 testContextPropagation() 测试在使用 Long Running Actions 时偶尔会失败;一个可部署、但在 OpenShift 上不起作用的 QS 应用,这是由 todo-backend(OpenShift 后端部署快速入门)中的 Helm Charts 更新导致的;在 ExpirationMetaData 接口中定义的 isExpired() 方法与 LocalScheduler 类中的逻辑不一致。
在迈向 4.0 版本的道路上,Micronaut 基金会发布了 Micronaut 4.0.0-M5,带来了许多依赖项升级和改进,包括:向 JSON 消息阅读器添加 @BootstrapContextCompatible 注解(带有该注解的 bean 可以加载到 Bootstrap Context 中);在 Micronaut OpenAPI 中使用 Micronaut 环境时禁用 SLF4J 初始化的能力;使用 bean 定义类型作为基于 AbstractConcurrentCustomScope 类定义类单例作用域时的 bean 类型。要了解关于该版本的更多细节,请查看发布说明。
Oracle 发布了 Helidon 2.6.1,升级了依赖项,并引入了一些重要的更改,包括:更新 ByteBufDataChunk 类中定义的 isReleased() 方法,使用 AtomicBoolean 类的一个实例来防止可能多次调用 release 回调的竞态条件;为 @MPTest 注解添加 @Target(ElementType.METHOD) 注解,用于指定具体的目标;修复 WritableMultiPart 类中定义的重载方法 create()。要了解关于该版本的更多细节,请查看发布说明。
MicroStream 8.1.0 发布,提供了与 Quarkus 3 的集成,并修复了在使用 Lazy Collections API 时 Stream API 无法按预期卸载的问题。
Micronaut 团队还为 MicroStream 引入了 Quarkus 扩展,允许在 Quarkus 应用程序中通过注解访问 MicroStream 的功能。
Apache Camel 3.20.5 发布,主要是针对 camel-jbang 模块进行了 Bug 修复、依赖项升级和改进,包括:加载仅定义 Java bean 的 YAML 文件的能力;使用 camel-jbang 在 XML DSL 中创建 Camel 文件时,使用文件名生成路由 ID;从空文件夹运行 camel-jbang,然后在文件夹中新增文件时重新加载。要了解关于该版本的更多细节,请查看发布说明。
JDKMon 17.0.61(一个监控和更新已安装 JDK 的工具)于上周发布。这个新版本是由 Azul 首席工程师 Gerrit Grunwald 创建的,它向 jdkmon.properties 文件中添加了一个属性,用于禁用通知。同时,它还修复了与检测到的 CPU 架构相关的问题以及与同一 JDK 版本的多个构建相关的问题。
JHipster 团队发布了 JHipster Lite 的 0.333.0 版本,带来了许多依赖项升级和重要的更改,包括:修复了 JGit 集成的本地提示;新增 DestroyRef 提供程序。要了解关于该版本的更多细节,请查看发布说明。
Java 初次露面是在 1995 年 5 月 23 日的 SunWorld 1995 大会上,上周,它迎来了自己的 28 岁生日。Oracle Java 开发关系团队举办了名为 Java 28 小时的庆祝活动,由 Ana Maria Mihalceanu、Nicolai Parlog 和 Sharat Chander 主持。活动主题包括:实时编码和探索、演示、与 Java 杰出人物对话以及有趣的游戏。以下是活动议程:
与 Nicolai 一起探索 JUnit Pioneer。
由 Nicolai 介绍面向数据的 Java 编程(21)。
与 Gavin Bierman 聊模式匹配,由 Nicolai 主持。
与 Nicolai 讨论 JEP 451(代理动态加载禁用准备)以及 JEP Draft 8305968(完整性和强封装)。
与 Ron Pressler 聊平台完整性(JEP Draft 8305968)、 JEP 445(未命名类和实例主方法预览)以及 JEP 453(结构化并发预览),由 Nicolai 主持。
Ana 发表“与 Java 共成长”的演讲。
和 Ana 一起玩 Byte Legend。
Sharat 介绍 Java 现状以及社区的重要性。
与 Pratik Patel、Mohammed Aboullaite、Venkat Subramaniam、Andres Almiray、Ixchel Ruiz 和 Vincent Mayers 进行圆桌讨论,由 Sharat 主持。
与 Brian Goetz 聊 Valhalla 项目,重点是如何在语言中显示值、基本类型和空值,由 Nicolai 主持。
对话 Gunnar Morling,由 Nicolai 主持。
由 Nicolai 介绍 Java Next。
与 Nicolai 一起玩 Slay the Spire(用 Java 编写)并探索 modding。
由 Nicolai 介绍“Amber 项目:Java 问题的 SolutionFactory”。
由 Nicolai 介绍从 Idea 到 IDE。
由 Nicolai 主持的“随便问”环节。
Nicolai 致闭幕词。
这次特别的活动在 Java YouTube 频道上进行了直播。
Azul 推出了 Java 现状调查,涉及的领域包括:OpenJDK 发行版及开发者正在使用的 Java 版本;基于 Java 的基础架构和语言;在公有云上运行的 Java 应用程序。调查将于 2023 年 6 月 15 日结束。
原文链接:
https://www.infoq.com/news/2023/05/java-news-roundup-may22-2023/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
抗拒使用 GPT-4 和 Copilot 写代码,拥有 19 年编程经验的老程序员“面试”被淘汰
文章引用微信公众号"InfoQ",如有侵权,请联系管理员删除!