@levinzhang
2023-03-05T15:29:23.000000Z
字数 4865
阅读 429
by
本期的Java新闻汇总所涉及的新闻包括OpenJDK、JDK 20、JDK 21、Native Build Tools 0.9.20、Spring 6.0.5、Spring Cloud Data Flow 2.10.1、Quarkus 2.16.3、Payara平台、Micronaut 3.8.5、Helidon 3.1.2、Vert.x 3.9.15、Hibernate Search 6.2.Alpha2、MyFaces 4.0-RC5、Grails 5.3.2、Reactor 2022.0.3、Metrics 1.11-M1和Tracing 1.1-M1、Maven 3.9、Gradle 8.0和Piranha 22.3。
本期的Java新闻汇总所涉及的新闻包括OpenJDK、JDK 20、JDK 21、Native Build Tools 0.9.20、Spring 6.0.5、Spring Cloud Data Flow 2.10.1、Quarkus 2.16.3、Payara Platform、Micronaut 3.8.5、Helidon 3.1.2、Vert.x 3.9.15、Hibernate Search 6.2.Alpha2、MyFaces 4.0-RC5、Grails 5.3.2、Reactor 2022.0.3、Metrics 1.11-M1和Tracing 1.1-M1、Maven 3.9、Gradle 8.0和Piranha 22.3。
甲骨文的技术顾问成员、Loom项目的负责人Ron Pressler提交了JEP Draft 8302326,即隐式类和主方法增强(Implicit Classes and Enhanced Main Methods)(预览)。该特性JEP提议“改进Java语言,从而能够让学生无需了解为大型程序所设计的语言特性,就能编写出第一个程序”。这个JEP进一步推进了甲骨文的Java语言架构师Brian Goetz在2022年9月份所发表的博客文章“Paving the on-ramp”。
JDK 20早期访问构建版本的Build 36发布,它是对Build 35的更新,包括对各种问题的修复。关于该版本的更多细节,可以参见发布说明。
JDK 21早期访问构建版本的Build 10发布,它是对Build 9的更新,包括对各种问题的修复。关于该版本的更多细节,可以参见发布说明。
对于JDK 20和JDK 21,鼓励开发人员通过Java Bug数据库报告缺陷。
在通往1.0版本的道路上,Oracle Labs发布了Native Build Tools的0.9.20版本,它是一个GraalVM项目,由与GraalVM Native Image进行互操作的插件所组成。这个最新版本提供了如下特性:一个新的showPublications
Gradle task,能够列出Maven上发布的所有Group | Artifact | Version(GAV)坐标;当收集元数据时,确保只有一个task可以并发访问可达性元数据服务,以避免出现死锁;为初学者提供了一个基于干净Java项目的快速入门指南。关于该版本的更多信息,请参阅变更日志。
Spring Framework 6.0.5发布,其特性包括:对JDK 21的早期支持;废弃ConcurrentExecutorAdapter类,并且将会在6.1版本中移除;在PayloadMethodArgumentResolver类中支持Optional;在使用GraalVM转换原生镜像时,支持@JsonNaming。关于这个版本的更多细节,请参阅发布说明。
Spring Cloud Data Flow 2.10.1版本发布,其特性包括:库升级到Spring Boot 2.7.8、Spring Framework 5.3.25和Spring Shell 2.1.5,以及依赖项目的升级,比如Spring Cloud Dataflow Build 2.10.1、Spring Cloud Deployer Kubernetes 2.8.1和Spring Cloud Common Security Config 1.8.1。关于这个版本的更多细节,请参阅发布说明。
Red Hat发布了Quarkus 2.16.3.Final版本,其特性包括支持自定义Flyway凭证和URL。其他的缺陷修复和改进包括:当使用@ConfigMapping
注解与@Unremovable
注解一起标注时,会注册一个CDI bean;简化了Quarkiverse Hub的工作流,这是用于托管和构建Quarkus扩展的地方;当project.build.directory
属性被profile覆盖时,对quarkus:dev
的修复。关于这个版本的更多细节,请参阅发布说明。
Payara发布了2023年2月版的Payara平台,包括社区版6.2023.2和企业版5.48.0。这两个版本均包含如下两项改进:将MicroProfile OpenAPI属性从mp.openapi.scan.lib
改名为mp.openapi.extensions.scan.lib
,这是一个破坏性的变更;使过期证书的定位和记录更加简便。社区版还包括将EJB Timer服务的命名空间迁移至Jakarta Persistence 3.0。在这两个版本中,值得关注的缺陷修复包括:改进JDK 11和JDK 17上的应用部署;Asadmin CLI工具命令的超时,start
/stop
/restart-deployment-group
;以及恢复因有问题而删除的JobManager接口。关于这两个版本的细节,可以在社区版发布说明和企业版发布说明中找到。
Micronaut基金会发布了Micronaut 3.8.5,该版本包含缺陷修复、文档改进、对Netty 4.1.87.Final的依赖升级以及对Micronaut OpenAPI和Micronaut Oracle Cloud的模块更新。关于这个版本的更多细节,请参阅发布说明。
Helidon 3.1.2是一个缺陷修复版本,包括:废弃BodyPart接口中的name()
和 filename()
方法,将其替换为isNamed()
方法;修复OIDC退出功能;改善Helidon Config组件;在Helidon 2.x发布序列中创建一个OpenTelemetry规范的向后移植(backport)。
尽管Eclipse Vert.x 3.9的发布序列已经在2022年结束,但是在2023年将会继续提供安全更新。3.9.15版本对Jackson 2.14.0、Netty 4.1.89和Hazelcast 3.12.13进行了升级,以解决CVE-2022-41881、CVE-2022-41915和CVE-2022-36437漏洞。关于这个版本的更多细节,请参阅发布说明。
Hibernate Search 6.2.0的第二个alpha版本发布,提供了如下特性:与Elasticsearch 8.6和OpenSearch 2.5的兼容性;将-orm6
制品升级到Hibernate ORM 6.2.0.CR2;更简单的and
/or
/not
断言(predicate);针对多租户的大规模索引;以及在outbox-polling
协调策略中,将标识符切换为UUID。
MyFaces Core 4.0.0的第五个候选版本发布,它是Jakarta Faces规范的兼容实现,其特性包括:集成了jsf.js
的下一代脚本;将所有单元测试迁移到JUnit 5;如果selectOne
属性没有选中的条目,则显示警告;以及更新WebConfigParamsLogger类中的日志。关于这个版本的更多细节,请参阅发布说明。
Grails的5.3.2和5.3.1版本发布,由于org.apache.maven:maven-resolver-provider
从3.8.3版本升级到3.9.0版本的Maven坐标问题,5.3.2版本修补了5.3.1版本。否则,5.3.1版将由依赖升级组成,包括:Micronaut 3.8.4、Grails Gradle Plugin 5.3.0、com.netflix.nebula:gradle-extra-configurations-plugin
9.0、Vue 5.0.3和io.methvin:directory-watcher
0.18.0。
Reactor项目2022.0.3是第三个维护版本,提供了对reactor-core
3.5.3、reactor-netty
1.1.3和reactor-kafka
1.3.16的依赖升级。
Micrometer Metrics 1.11.0的第一个里程碑版本提供了新的特性,比如,支持Azul Prime C4垃圾收集器和Apache HttpClient 5.x;在Observation接口中添加了一个新方法,observe(Function<C extends Observation.Context, T> function)
,以补充现有的observe(Runnable runnable)
和observe(Supplier<T> supplier)
方法。
Micrometer Tracing 1.1.0的第一个里程碑式版本发布,其特性包括:PropagatingSenderTracingObservationHandler和PropagatingReceiverTracingObservationHandler类的无操作实现;Slf4JEventListener类的自定义Mapped Diagnostic Context(MDC)键。
Maven 3.9.0发布,新特性包括:名为MAVEN_ARGS
的新环境变量;允许在多个本地仓库中构建应用程序;能够在独立的本地仓库中存储快照;提供已废弃Mojo插件相关的警告;简化了Maven制品解析器的Redis Java客户端(Redisson)和Hazelcast的集成。
在经历了五个候选版本之后,Gradle 8.0发布,该版本提供了如下特性:对Kotlin DSL的增强,它是Groovy DSL的替代方案,升级到了Kotlin 1.8和JDK 11;buildSrc
构建的改进;配置缓存,这是一个孵化中的新特性;以及Java工具链的改进。关于这个版本的更多细节,请参阅发布说明,InfoQ会跟进更详细的报道。
在GA发布后不久,紧随其后的补丁版本Gradle 8.0.1对如下问题进行了修复:以文档形式记录了Scala插件与工具链的集成以及target
标记的问题;在没有事先警告和废弃通知的情况下删除了--no-rebuild
命令行选项;以及Scala构建失败,且报告内容为,isBlank
不是String
类的成员。
Piranha 23.2.0发布,该版本提供了值得注意的变更,比如,废弃LoggingExtension和MimeTypeExtension类;将pom.xml
文件中的debug
模块重新定位到test
目录中;引入新的静态工具类 WarFileExtractor,用于提取WAR文件。关于这个版本的更多细节,请参阅其文档和问题跟踪器。
查看英文原文:Java News Roundup: Gradle 8.0, Maven, Payara Platform, Piranha, Spring Framework, MyFaces, Piranha