写点什么

Java 近期新闻:OpenJDK JEP、Spring 更新、Payara 平台和 Kotlin 1.6

  • 2021-11-26
  • 本文字数:2945 字

    阅读完需:约 10 分钟

Java近期新闻:OpenJDK JEP、Spring更新、Payara平台和Kotlin 1.6

2021 年 11 月 15 日起始周 Java 新闻更新:OpenJDK JEP、JDK 18、Loom 项目、多个 Spring 单点版本、MicroProfile 5.0-RC2、Payara 平台、一个新的 Jakarta EE 规范提议、JHipster 7.4.0、TornadoVM 0.12、Apache Camel K 1.7 和 Kotlin 1.6.0。


OpenJDK


JEP 419,即外部函数和内存 API(第二个孵化器),从 Candidate 阶段进入到 Proposed to Target 阶段。该 JEP 从 JEP 412(第一个孵化器,包含在 JDK 17 中)演化而来,根据 Java 社区的反馈做了改进,变化包括:支持更多的内存访问句柄,如 boolean 和 MemoryAddress 接口;更通用的 MemoryAddress 和 MemorySegment 接口解除引用 API;更简单的用于获取下行调用方法句柄的 API,不再需要传递 MemoryType 枚举;用于从内存段拷贝 Java 数组(以及将 Java 数组拷贝到内存段)的新 API。JEP 419 的评审将在 2021 年 11 月 23 号结束。


JEP 420,即 switch 模式匹配(第二个预览版),从 Candidate 阶段进入到 Proposed to Target 阶段。该 JEP 允许在 switch 表达式中使用多种模式,每一个模式对应一个特定的动作,支持复杂的面向对象查询。这是 JEP 406(第一个预览版,包含在 JDK 17 中)之后的第二个预览版,增强的地方包括:改进了支配地位检查(Dominance Checking),要求在统一类型的防御模式之前放置一个常量 case 标签;switch 代码块的穷尽性检查比之前更加精细。JEP 420 的评审将在 2021 年 11 月 23 号结束。


Oracle 首席 Java 语言架构师 Brian Goetz 在 2017 年 10 月份的一次 InfoQ 采访中表示模式匹配还处在概念验证阶段。instanceof 的模式匹配(JEP 394)包含在 JDK 16 中。


JEP 422,即 Linux/RISC-V 移植,从 Draft 阶段进入到 Candidate 阶段。该 JEP 是关于将 JDK 移植到 Linux/RISC-V,一个免费开源的 RISC 指令集架构。移植版本将支持模板解释、C1 和 C2 JIT 编译器,以及目前所有主流的垃圾回收器,包括 ZGC 和 Shenandoah。该 JEP 的主要目标是将移植版本集成到 JDK 的主线代码库中。


JDK 18


JDK 18 尝鲜构建版本Build 24可用,相比 Build 23,这次的主要更新包括对各种问题的修复。更多细节可参看版本公告


JDK 18 目前的特性集合如下:



开发者可以通过Java Bug Database提交 bug。


Loom 项目


Loom早期尝鲜18-loom+5-274 构建版可用,该版本基于 JDK 18 早期尝鲜版 Build 22 构建。


Spring Framework


过去繁忙的一周,Spring 团队的多个子项目发布了单点版本。


Spring Boot 2.6发布,将依赖项 Spring Data 升级到 2021.1、Spring HATEOAS 升级到 1.4、Spring AMQP 升级到 2.4、Spring Kafka 升级到 2.8、Spring Security 升级到 5.6、Spring Session 升级到 2021.1。其他新特性包括:增强的/info 端点,加入了 Java 运行时信息;支持使用 WebTestClient 接口来测试 Spring MVC 应用程序。


Spring Boot 2.4.132.5.7发布,分别包含了 26 个问题修复和 35 个问题修复,以及文档改进和依赖项升级。


在发布了 3 个里程碑和一个候选版本之后,Spring Security 5.6.0 正式可用,特性包括:一个新的 SecurityContextChangedListener 接口,可以作为 Lambda 表达式或方法引用的赋值目标;支持 SAML 2.0 单点登出;支持将 TestSecurityContextHolder 传播给 SecurityContextHolder。更多细节可在版本公告中找到。


Spring Cloud Netflix 发布2.2.10.RELEASE版本,解决了CVE-2021-22053漏洞,该漏洞允许执行通过/hystrix/monitor;[user-provided data]提交的代码(在使用 spring-cloud-netflix-hystrix-dashboard 和 spring-boot-starter-thymeleaf 解析视图模板时)。


Spring Batch 发布 4.3.4 和 4.2.8 版本,修复了一些问题:确保 JobParameters 类定义的 getParameters()方法返回的是不可变的参数;修复了在调用 MethodInvokingTaskletAdapter 和 NamedParameterJdbcTemplate 类时抛出的“IllegalArgumentException: Only 1 out of 2 arguments could be assigned”异常;确保在 SimpleJobExplorer 中定义的 getLastJobExecution()方法可以拿到单步执行任务和执行上下文。


Spring Kafka 发布2.8版本,特性包括:支持乱序的手动提交;一系列新的常见错误处理器取代了单独的 record 和 batch 错误处理器;KafkaTemplate<K,V>类现在可用于接收已知分区的记录。


Spring AMQP 发布2.4版本,初步支持 RabbitMQ Stream Plugin,并宣布弃用 Spring Remote Method Invocation(RMI)。更多细节可以在版本公告中找到。


MicroProfile 5.0 之路


在迈向 MicroProfile 5.0 的道路上,MicroProfile 工作服发布了第二个候选版本,其中包含了由社区开发的 8 个规范:



这些规范将向Jakarta EE 9.1看齐。


Payara


Payara发布了 2021 年 11 月份版本的 Payara Platform。Payara Platform Community 5.2021.9 包含了 11 项改进、6 个问题修复和 11 项组件升级。Payara Platform Enterprise 5.33.0 包含了 4 项改进、4 个问题修复和两项组件升级。社区版已支持 JDK 17,针对企业版还在做进一步的测试,以保证稳定性。两个版本都做出了一个重大变化,即移除了 TLS 1.0 和 TLS 1.1 协议,默认情况下禁用。


更多细节可在社区版企业版的版本公告中找到。


Jakarta EE


Jakarta EE 工作组提出制定一个新的 Jakarta EE 规范——Jakarta Commons,用于处理常见的 API、功能和开发库,确保规范的一致性。工作组正在通过这份文档向 Java 社区收集反馈。


JHipster


JHipster发布7.4.0 版本,修复了 User 实体的关系名称,支持 ECMAScript Modules(ESM)和 Vue 微前端架构,将 React JHipster 库更新成 Bootstrap 5.0,在作为 OAuth 2.0 资源服务器时可以处理 Auth0 的认证信息。


TornadoVM


TornadoVM 是一家开源软件公司,发布了 TornadoVM 0.12版本,特性包括:一个新的后端,用于 SPIR-V 的 Level Zero 分配器;一个改进的基准测试框架;基准测试框架中增加了新的指标,内核时间(kernel time)和数据传输(data transfers);改进的分析器,加入了新的命令行选项--enableProfiler <silent|console>和--dumpProfiler <jsonFile>。


曼彻斯特大学高级处理器技术研究小组研究员 Juan Fumero 在 2020 年 3 月伦敦 QCon 大会上介绍了 TornadoVM,并为 InfoQ 的技术文章提供了素材。


一个基于 Docker 的示例应用程序可以在 GitHub代码库中找到。


Apache Camel K


Apache Camel K 发布1.7版本,特性包括:支持 Quarkus Native Build 和 Kustomize,Apache Camel Kamelet Catalog 中增加了新 Kamelet。


Apache Camel K 是一个轻量级集成框架,基于 Apache Camel K Runtime 1.10.0、Apache Camel Quarkus 2.4.0、Apache Camel 3.12.0 和 Apache Camel Kamelets 0.5.0。


Kotlin


JetBrains发布Kotlin 1.6.0,带来了很多新特性:封印的 when 语句、改进的 suspend 函数类型和转换、注解类的初始化、改进的递归泛型类型推断。Kotlin/JVM、KotlinJS 和 KotlinNative 也得到了增强。开发者可以通过 JetBrains 布道师开发者 Anton Arhipov 在 YouTube 发布的视频来了解更多内容。


查看英文原文

Java News Roundup: OpenJDK JEPs for JDK 18, Spring Updates, Payara Platform, Kotlin 1.6

2021-11-26 13:126779

评论

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

java安全编码指南之:可见性和原子性

程序那些事

Java java安全编码 java编码指南 java安全编码指南

收藏+下载!Flink 社区最全学习渠道汇总

Apache Flink

flink

Dolphinscheduler系统架构设计

dll

Apache DolphinScheduler

架构师训练营第 1 期第 2周作业

owl

极客大学架构师训练营

从大数据的角度来谈谈运维监控这件事儿

小清新同学

运维 监控

Go中的HTTP请求之——HTTP1.1请求流程分析

Gopher指北

HTTP Go web Go 语言

架构师训练营第 2 周作业

netspecial

极客大学架构师训练营

监控应用,应该监控什么?

小清新同学

云计算 运维 监控

MySQL varchar类型最大值,原来一直都理解错了

架构精进之路

MySQL varchar

架构师训练营第二周学习总结

尹斌

RN运行项目报错:Unable to resolve module `./debugger-ui/debuggerWorker.js` from ``

凌宇之蓝

ios android React Native

自己动手写SQL执行引擎

无毁的湖光

Java MySQL 数据库 Linux 算法

Python 自动化测试全攻略:五种自动化测试模型实战详解

葡萄城技术团队

自动化测试

难得干货,揭秘支付宝的2维码扫码技术优化实践之路

JackJiang

支付宝

虚拟卡兑换架构设计

孙志平

2B还是2C,这真是个问题

MavenTalker

SaaS

程序执行太慢?快来学习SIMD加速技术,这个案例下的加速效果我也没想到(附带动手实验)

Optimize-Lab

优化代码 优化技巧 开源社区 simd Go 语言

不一样的面向对象(二)

书旅

php 面向对象

关于Java 编译Servlet或者自定义Tag,引入包的问题

谷鱼

Java

架构师训练营第 1 期第 2 周学习总结

owl

极客大学架构师训练营

架构师训练营第二周作业

尹斌

什么才是“应用拓扑”?

小清新同学

运维 监控

高难度对话读书笔记—认知篇2

wo是一棵草

刷爆朋友圈的字节跳动编码题,今天把解析思路分享下!

Java架构师迁哥

如何快速制造OOM

Since

JVM OOM

传销资金盘挂靠区块链热点 肃清整顿热潮拉开帷幕

CECBC

区块链 金融

保留时序数据波动细节的一种采样算法

小清新同学

监控 时序数据库

项目实战,动态增删form表单

麦洛

jquery 克隆

如何设计Go语言中的channel

soolaugust

channel goroutines Go 语言

缓存解决方案-技术专题-Caffeine Cache

码界西柚

架构师训练营第 1 期第二周课后练习题

Leo乐

极客大学架构师训练营

Java近期新闻:OpenJDK JEP、Spring更新、Payara平台和Kotlin 1.6_语言 & 开发_Michael Redlich_InfoQ精选文章