Do not use Apache as default provider in deployment descriptor

This rule flags any org.apache.bval.jsr* (bval 1.1) and org.apache.bval.jsr303* (bval 1.0) package references in validation.xml deployment descriptors. Bean Validation 2.0 uses the Hibernate Validator implementation instead of the Apache BVal implementation which was used for Bean Validation 1.0 and 1.1. The source scanner provides a quick fix that overwrites the configuration to use the Hibernate Validator classes.

For example, given the following elements in the validation.xml file:

<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>

The quick fix overwrites the values using Hibernate Validator values:

<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>

The default parameter-name-provider is an internal package class of org.hibernate.validator.internal.engine.DefaultParameterNameProvider. The quick fix deletes the setting so that the default is used.

For more information on configuring validation in WebSphere Liberty, see the Bean Validation 2.0 documentation.