Apache nicht als Standardprovider im Implementierungsdeskriptor verwenden

Diese Regel markiert alle Referenzen auf die Pakete org.apache.bval.jsr* (bval 1.1) und org.apache.bval.jsr303* (bval 1.0) in Implementierungsdeskriptoren in validation.xml. Bean Validation 2.0 verwendet die Hibernate Validator-Implementierung anstelle der Apache BVal-Implementierung, die für Bean Validation 1.0 und 1.1 verwendet wurde. Der Quellenscanner stellt eine Schnellkorrektur bereit, die die Konfiguration zur Verwendung der Hibernate Validator-Klassen überschreibt.

Angenommen, die Datei validation.xml enthält die folgenden Elemente:

<default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
<message-interpolator>org.apache.bval.jsr.DefaultMessageInterpolator</message-interpolator>
<traversable-resolver>org.apache.bval.jsr.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.apache.bval.jsr.DefaultConstraintValidatorFactory</constraint-validator-factory>
<parameter-name-provider>org.apache.bval.jsr.parameter.DefaultParameterNameProvider</parameter-name-provider>

Die Schnellkorrektur überschreibt die Werte durch die Hibernate Validator-Werte:

<default-provider>org.hibernate.validator.HibernateValidator</default-provider>
<message-interpolator>org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator</message-interpolator>
<traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>

Die Standardklasse parameter-name-provider ist eine interne Paketklasse von org.hibernate.validator.internal.engine.DefaultParameterNameProvider. Die Schnellkorrektur löscht die Einstellung, sodass der Standardwert verwendet wird.

Weitere Informationen zur Konfiguration der Validierung in WebSphere Liberty finden Sie in der Dokumentation zu Bean Validation 2.0.