面向 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 杰出人物对话以及有趣的游戏。以下是活动议程:
这次特别的活动在 Java YouTube频道上进行了直播。
Azul推出了Java现状调查,涉及的领域包括:OpenJDK 发行版及开发者正在使用的 Java 版本;基于 Java 的基础架构和语言;在公有云上运行的 Java 应用程序。调查将于 2023 年 6 月 15 日结束。
原文链接:
https://www.infoq.com/news/2023/05/java-news-roundup-may22-2023/
领取专属 10元无门槛券
私享最新 技术干货