我们发布了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版本开始)。
如果您想在WildFly上利用此版本的新功能,我们还提供了WildFly补丁,适用于WildFly 13和WildFly 14 Beta1。您可以在这里了解如何应用此类补丁。
反馈、问题、想法?
要取得联系,请使用常用渠道
-
用户论坛(使用问题、一般反馈)
-
问题跟踪器(错误报告、功能请求)
-
邮件列表(与开发相关讨论)
-
Bean Validation开发邮件列表(关于Bean Validation规范讨论)