我们发布了Hibernate Validator 6.0.12.Final版本,其中包含了CDI集成的修改,以及对JDK 11支持的修复和改进。

这是对使用Hibernate Validator的每个人的推荐升级,在大多数情况下,它是6.0.11.Final的直接替换(请参阅迁移指南)。

新增内容

CDI集成

在开发Hibernate Validator 6.0.10.Final版本时,我们注意到,如果类本身没有Bean Validation注解(例如,注解在超类或接口上,但不在类本身上),则CDI集成会导致类的方法不被验证。

Bean Validation建议为了便携性,在您想要验证的每个类上放置@ValidateOnExecution注解,但我们认为删除这种意外的限制对参考实现会更好。

由于CDI不允许根据父类和接口的注解过滤类,这导致我们通过扫描CDI传给我们的类的整个类层次结构中的注解来修复问题。这不是理想的解决方案,我们知道它会稍微慢一些,但我们认为这是可以接受的。

来自Open Liberty团队的Andrew Guibert上周联系我们,告诉我们这对CDI应用程序的启动时间产生了负面影响,可能导致20%的减慢。

因此,我们决定暂时撤销这个补丁,作为HV-1645的一部分,我们将打开一个CDI问题,希望这个限制未来能够以CDI的方式解决,并且对性能的影响非常小。

JDK 11支持

来自Pivotal的Stéphane Nicoll告诉我们,在使用JDK 11时,Hibernate Validator会拉取JavaFX作为依赖项。这是我们在JDK 11和JavaFX测试基础设施中遇到的一个意外后果,现在已修复。

我们还进行了额外的基础设施工作,以便能够在JDK 11的WildFly容器中运行我们的WildFly集成测试和TCK测试套件。

完整变更日志

已修复问题的完整列表可以在我们的JIRA上找到。

获取6.0.12.Final版本

要使用Maven、Gradle等获取发布版本,请使用以下GAV坐标

  • org.hibernate.validator:hibernate-validator:6.0.12.Final

  • org.hibernate.validator:hibernate-validator-cdi:6.0.12.Final

  • org.hibernate.validator:hibernate-validator-annotation-processor:6.0.12.Final

请注意,组ID已从org.hibernate(Hibernate Validator 5及之前版本)更改为org.hibernate.validator(自Hibernate Validator 6版本开始)。

此外,SourceForge上提供了一个包含所有组件的发行版包(TAR.GZZIP)。

如果您想在WildFly上利用此版本的新功能,我们还提供了WildFly补丁,适用于WildFly 13WildFly 14 Beta1。您可以在这里了解如何应用此类补丁。

接下来是什么?

我们的努力现在转向了新的6.1版本,它将引入一些结构化变更,例如允许非标准名称的getters(例如,使用name()而不是getName())和JSON验证支持。

反馈、问题、想法?

要取得联系,请使用常用渠道


返回顶部