【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

Java 近期新闻:JDK 21 的 JEP、Spring Cloud AWS 3.0 以及 OptaPlanner 转移至 Timefold

  • 2023-05-23
    北京
  • 本文字数:4074 字

    阅读完需:约 13 分钟

Java近期新闻:JDK 21的JEP、Spring Cloud AWS 3.0以及OptaPlanner转移至Timefold

OpenJDK


JEP 448,Vector API(第六轮孵化),已经从 JDK 21 的 Candidate 状态提升Proposed to Target 状态。这个 JEP 位于Panama项目中,它纳入了前五轮孵化反馈的改进,即 JDK 20 交付的 JEP 438,Vector API(第五轮孵化)、JDK 19 交付的 JEP 426,Vector API(第四轮孵化)、JDK 18 交付的 JEP 417,Vector API(第三轮孵化)、JDK 17 交付的 JEP 414,Vector API(第二轮孵化)和 JDK 16 交付的 JEP 338,Vector API(孵化)。该特性的目标是增强 Vector API,从而能够根据 JEP 424, 外部函数与内存API(预览)的定义,从MemorySegment中加载和存储 Vector。该轮审查预计会在 2023 年 5 月 9 日结束。


JEP 445,无名类和实例主方法(Unnamed Classes and Instance Main Methods)(预览)已经从 JDK 21 的 Candidate 状态提升Proposed to Target。这个特性的 JEP 以前被称为灵活主方法和匿名主类(Flexible Main Methods and Anonymous Main Classes)(预览)以及隐式类和主方法增强(Implicit Classes and Enhanced Main Methods)(预览),提议“改进 Java 语言,以便于让学生无需了解为大型程序所设计的语言特性,就能编写出第一个程序”。这个 JEP 进一步推进了甲骨文的 Java 语言架构师Brian Goetz在 2022 年 9 月份所发表的博客文章“Paving the on-ramp”。甲骨文技术团队的顾问成员Gavin Bierman发布了规范文档的第一个草案,供 Java 社区审查。该轮审查预计会在 2023 年 5 月 12 日结束。InfoQ 会以更详细的新闻报道进行跟踪。


JEP 441,switch的模式匹配,已经从 JDK 21 的 Candidate 状态提升为Proposed to Target 状态。该 JEP 最终确定了这一特性,并针对前四轮预览的反馈添加了一些改进,即 JDK 20 交付的 JEP 433,switch的模式匹配(第四轮预览)、JDK 19 交付的 JEP 427,switch的模式匹配(第三轮预览)、JDK 18 交付的 JEP 420,switch的模式匹配(第二轮预览)以及 JDK 17 交付的 JEP 406,switch的模式匹配(预览)。该特性通过对 switch 表达式和语句进行模式匹配,增强了语言的功能。该轮审查预计会在 2023 年 5 月 11 日结束。InfoQ 会以更详细的新闻报道进行跟踪。


JEP 440,记录模式(Record Patterns),已经从 JDK 21 的 Candidate 状态提升到了 Proposed to Target 状态。该 JEP 最终确定了这一特性,并针对前两轮预览的反馈添加了一些改进,即 JDK 20 交付的 JEP 432,记录模式(第二轮预览)和 JDK 19 交付的 JEP 405,记录模式(预览)。该特性使用记录模式来解构记录值,以实现对语言的增强。记录模式可以与类型模式结合使用,以“实现强大的、声明式的、可组合的数据导航和处理形式”。类型模式最近通过 JDK 18 交付的 JEP 420,switch模式匹配(第二次预览)和 JDK 17 交付的 JEP 406,switch模式匹配(预览)扩展到了switch case 标签中。JEP 432 最重要的变化是移除了对出现在增强型for语句中的记录模式的支持。该轮审查预计会在 2023 年 5 月 11 日结束。InfoQ 会以更详细的新闻报道进行跟踪。


JEP 439,Generational ZGC,已经从 JDK 21 的 Candidate 状态提升为Proposed to Target 状态。该 JEP 建议“通过扩展 Z 垃圾收集器(ZGC)来提升应用的性能,使年轻对象和老对象保持独立的分代。这将允许 ZGC 更频繁地收集年轻的对象,这些对象往往会在较为年轻的时候就已经死亡了。”该轮审查预计会在 2023 年 5 月 10 日结束。InfoQ 会以更详细的新闻报道进行跟踪。


JEP 404,Generational Shenandoah(实验阶段),已经从 JDK 21 的 Candidate 状态提升到了 Proposed to Target 状态。该 JEP 建议“通过分代的收集功能增强 Shenandoah 垃圾收集器,以提高可持续的吞吐量、负载高峰的韧性和内存利用率。”与其他垃圾收集器(比如 G1、CMS 和 Parallel)相比,Shenandoah 目前需要额外的堆头部空间(headroom),并且更难恢复不可达对象占用的空间。该轮审查预计会在 2023 年 5 月 12 日结束。InfoQ 会以更详细的新闻报道进行跟踪。


JEP 450,紧凑的对象头信息(Compact Object Headers)(实验阶段)已经从 JEP Draft 8294992提升到了 Candidate 状态。在Lilliput项目的支持下,该 JEP 草案建议将 Java 对象的头信息从 96 或 128 比特减少至 64 比特。Lilliput 项目由亚马逊云科技的首席工程师Roman Kennke创建,该项目在 2022 年 5 月实现了 64 比特的头信息,这是其第一个里程碑


甲骨文的编程语言设计师Daniel Smith已经宣布,原名为空限制值对象存储(Null-Restricted Value Object Store)(预览)和基本类型类(Primitive Classes) (Preview)的 JEP 401 改名为值对象的扁平化堆分布(Flattened Heap Layouts for Value Objects)。Smith 提供了一份更新的规范文档供社区审查。

JDK 21


JDK 21 的早期访问构建版本Build 21发布,该版本是对 Build 20 的更新,包含了对各种问题的修复。关于该版本的更多细节,请参阅发布说明


对于JDK 21,鼓励开发人员通过Java Bug数据库报告缺陷。

Spring Framework


Spring Boot 3.1.0 的第二个发布候选版本提供了一些新特性,比如,将DockerComposeProperties类中的默认关闭设置为stop;自动应用TestcontainersLifecycleApplicationContextInitializer类进行上下文测试;增加对 SQL Server、Oracle Database、Liquibase、Flyway 和 Cassandra 数据库的 Docker Compose 服务连接支持。同时,Couchbase SSL 的 keystore 属性spring.couchbase.env.ssl.key-storespring.couchbase.env.ssl.key-store-password被弃用,转而使用 Couchbase 中对 SSL 绑定的支持。关于该版本的更多细节,请参阅发布说明


Spring Modulith 0.6提供了缺陷修复、依赖性升级以及值得关注的新特性,例如,如果启用了事件发布注册表,则自动配置 MongoDB 事务;事件发布注册表支持异步处理和关闭行为;@EnableScenario注解,用来在@SpringBootTest集成测试中使用 Scenario Testing API;支持 Application Module Canvas 中的 jMolecules 架构类型。Spring Modulith 团队还决定将该项目提升为顶级的、非实验性的 Spring 项目,并计划在 Spring Boot 3.1 的 GA 发布后发布 1.0-M1 版本。关于该版本的更多细节,请参阅发布说明


Spring Cloud for Amazon Web Services的 3.0.0 版本发布,其新特性包括,与 Spring Boot 3.0 兼容;构建在AWS SDK V2 for Java之上;重写的 SQS 集成模块;对 DynamoDB 的重新集成。关于该版本的更多细节,请参阅发布说明


Spring Cloud Data Flow 2.10.3发布,主要解决了传递性依赖中的安全性问题,比如,spring-security-oauth2-client-5.4.2spring-expression-5.2.11spring-webmvc-5.3.25json-smart-2.3jettison-1.51。此外,还有 Spring Boot 2.7.11 和 Spring Cloud 子项目的依赖性升级。关于这个版本的更多细节,请参阅发布说明


Spring Tools 4.18.1发布,其特性包括,支持在探查@Value注解时导航到 Spring 属性文件;支持属性导航中的@ConditionalOnProperty注解,以及使用 Eclipse 2023-06 里程碑版本构建。Spring Tools 团队预计 4.19.0 版本将在 2023 年 6 月底发布。关于这个版本的更多细节,请参阅发布说明

Infinispan


Infinispan 14.0.9.Final发布,其重要变化包括,修复 Infinispan 第三方集成测试与 JDK17 之间的问题;文档记录如何监控跨站复制;删除对 Jaeger 测试容器的依赖,并修复属性文件中的端口号。关于这个版本的更多细节可以在变更日志中找到。

Open Liberty


IBM发布了Open Liberty 23.0.0.4,其特性包括,为 ARM64 架构以及现有的 AMD64、PPC64LE 和 S390X 架构提供容器镜像;解决了CVE-2023-24998,即Apache Commons FileUpload中的一个漏洞,由于请求部分的数量没有进行限制,攻击者可以通过恶意上传触发拒绝服务攻击。

Quarkus


Quarkus 3.0.2.Final 是第二个维护版本,其中有一些值得注意的变化,比如,在Infinispan Dev Services指南中把server-list文件改名为hosts;修复 Dev UI2 显示错误 Java 版本的问题;解决Kubernetes Dev Services指南中没有正确记录k3s名称的问题;修正 RESTEasy Reactive 流资源方法导致原生模式下出现NoSuchMethodException异常的问题。关于这个版本的更多细节,请参阅发布说明


Quarkus 2.16.7.Final发布,其特性包括,修复了 OIDC 代码加载令牌解密密钥时的算法对比缺陷;OIDC UserInfo类的一个微小更新,如果给定名称的字符串或布尔属性不存在,会抛出NullPointerException;解决 Quarkus dev模式在使用@ApplicationScoped注解时无法与某种类型的项目目录树协同运行的问题;修正如果 OIDC 客户端无法获取令牌会抛出异常的问题。关于这个版本的更多细节,请参阅发布说明

Helidon


甲骨文发布了Helidon 3.2.1,其新特性包括, JpaExtension类的启用标志,以允许后续的重构和替换;与 MicroProfile Rest ClientFault Tolerance规范进行集成的变化,以处理因Weld规范中的默认调用上下文问题而产生的异步调用;支持与 Jaeger OpenTelemetry 不同传播器的集成。关于这个版本的更多细节,请参阅发布说明

Apache 软件基金会


Apache Camel 4.0.0 的第三个里程碑版本包含缺陷修复、依赖性升级和功能增强,例如,改变默认的 Micrometer 指标名称以遵循 Micrometer 命名约定;支持Micrometer Observation;在 Spring Boot 实现中直接使用 HTTP 服务器;为添加/删除的 HTTP 端点添加监听器,使运行时(如 Spring Boot)更容易使用 Camel 的platform-http和自己的 HTTP 服务器。关于这个版本的更多细节,请参阅发布说明

Arquillian


Arquillian 1.7.0.Final发布,其特性包括,支持Jakarta Servlet 6.0;支持@ArquillianResource注解注入的 URL 使用 HTTPS;修复了使用 TestNG 7.5+时LoggerFactory类出现的NoClassDefFoundError异常的问题。关于这个版本的更多细节可以在更新日志中找到。

OptaPlanner 转移至 Timefold


OptaPlanner是一个面向软件开发人员的开源人工智能约束解算器(constraint solver),它将转移Timefold,这是一家由Maarten Vandenbroucke(联合创始人兼 CEO)和Geoffrey De Smet(联合创始人兼 CTO)创建的新规划优化公司。OptaPlanner 是 De Smet 在红帽公司担任高级首席软件工程师时创建的,在红帽公司的支持下,OptaPlanner 已经发展成熟,提供了他们自己的版本。InfoQ 会以更详细的新闻报道进行跟踪。


原文链接:

Java News Roundup: JEPs for JDK 21, Spring Cloud AWS 3.0, OptaPlanner to Timefold

2023-05-23 08:004784

评论

发布
暂无评论
发现更多内容

Kotlin 入门笔记(一)

如浴春风

5月月更

从源码深入了解Dio 的 CancelToken

岛上码农

flutter 安卓开发 跨平台开发 ios 开发 5月月更

全链路压测(十):测试要做的准备工作

老张

性能测试 全链路压测 稳定性保障

C语言总结_字符串函数封装练习

DS小龙哥

5月月更

Git进阶系列 | 1. 创建完美的提交

俞凡

git 最佳实践

Nation3云上国家--一场基于Web3的社会实验(32/100)

hackstoic

DAO web3 nation3

摸鱼即刻开始

程序员阿杜

Gitea 如何配置自定义页面

HoneyMoose

【建议收藏】Redis知识干货汇总

利志分享

redis 面试

Continuous Integration 对 ABAP 技术栈来说意味着什么

Jerry Wang

持续集成 SAP abap 5月月更 持续优化

【51单片机】矩阵键盘

謓泽

5月月更 51单片机

网站开发进阶(四)Tomcat Server处理http请求过程详解

No Silver Bullet

tomcat HTTP 网站开发 5月月更

极简Java数据结构-环形队列突破上限

芝士味的椒盐

Java 数据结构 5月月更

架构实战营-模块四-作业

michael

架构实战营 #架构实战营 「架构实战营」

千万级学生管理系统的考试试卷存储方案设计

大眼喵

「架构实战营」

redis性能调优--内存使用率过高

en

redis 内存

电商秒杀系统设计

Geek_36cc7c

Git进阶系列 | 2. Git中的分支策略

俞凡

git 最佳实践

洞见科技李博:科技向实,隐私计算规模化应用吹响号角

洞见科技

金融科技 隐私计算

深入理解 Go 中的字符串

宇宙之一粟

字符串 Go 语言 5月月更

Java 从一个 List 中删除重复的元素

HoneyMoose

Java 如何逆向遍历一个 List

HoneyMoose

辛亥篇 「虛幣」起役《「內元宇宙」聯載》

因田木

類電子病歷

[Day33-01]-[二叉树] 路径总和

方勇(gopher)

LeetCode 二叉树 数据结构和算法

抽象类——加油站加油

程序员猪小哼

DevOps系列之 —— DevOps概览(一)软件产业和交付模式发展趋势

若尘

DevOps 5月月更

架构实战营模块一作业

哈啰–J

SpringSecurity 表单登录

急需上岸的小谢

5月月更

MySQL三万字精华总结 + 面试100问吊打面试官绰绰有余

Java架构追梦

Java MySQL 程序员面试

OKR工具有哪些?如何选择适合自己的?

PingCode

maven构建docker镜像三部曲之二:编码和构建镜像

程序员欣宸

Docker maven java 5月月更

  • 扫码加入 InfoQ 开发者交流群
Java近期新闻:JDK 21的JEP、Spring Cloud AWS 3.0以及OptaPlanner转移至Timefold_编程语言_Michael Redlich_InfoQ精选文章