[
https://issues.redhat.com/browse/WFLY-13734?page=com.atlassian.jira.plugi...
]
Scott Marlow commented on WFLY-13734:
-------------------------------------
{quote}
If the user excludes the bean-validation Galleon layer from jpa / jpa-distributed Galleon
layers, and configures JPA with ValidationMode.CALLBACK, the deployment will fail because
the persistent provider will thrown an exception.
{quote}
Correct, they will then either include bean-validation Galleon layer from jpa /
jpa-distributed Galleon layers or stop using BeanValidation by switching to
ValidationMode.NONE.
{quote}
Scott Marlow just wanted to confirm the following, I assume the JPA persistent provider is
able to distinguish which ValidationMode has been configured, is this assumption correct?
{quote}
Yes, the JPA persistence provider is passed the same
(javax.persistence.spi.PersistenceUnitInfo) "pu" variable which means the
persistence provider can also call pu.getValidationMode() (it is also passed a
"javax.persistence.validation.factory" property only if non-null).
{quote}
There is no distinction between the value the validatorFactory gets, it will be always
null, when we don't have the "org.wildfly.bean-validation" capability and we
are using either ValidationMode.CALLBACK or ValidationMode.AUTO. So the persistent
provider should know that the configuration is ValidationMode.CALLBACK to throwing an
exception.
{quote}
Correct, the persistence provider is responsible for throwing the exception for
ValidationMode.CALLBACK and null validatorFactory.
JPA subsystem should fail deployment if ValidationMode.CALLBACK is
configured but the BV capability is not present
------------------------------------------------------------------------------------------------------------------
Key: WFLY-13734
URL:
https://issues.redhat.com/browse/WFLY-13734
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Reporter: Brian Stansberry
Assignee: Scott Marlow
Priority: Major
Fix For: No Release
This is a follow-on to
https://github.com/wildfly/wildfly/pull/13444 / WFLY-13726. That
fix is about applying logic consistently in both places where
PersistenceUnitServiceHandler integrates with BV. But I suspect the existing handling
isn't correct in the case where ValidationMode.CALLBACK is configured. The javadoc for
that enum value says "The persistence provider must perform the lifecycle event
validation. It is an error if there is no Bean Validation provider present in the
environment." But I think our handling is ignoring that if the BV capability is not
present.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)