Repository navigation
Conversation
Replace the oVal-based validation engine with an internal engine built on top of Hibernate Validator, the Jakarta Validation 3.1 reference implementation. All of this was done without breaking the public play.data.validation API or observable behaviour: error keys, validation.* message keys, message parameter order, @Valid cascade errors, and the programmatic Validation API all passed the existing sample and unit test suites.
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
Contributor
Author
|
@Mergifyio queue |
Contributor
☑️ Command disallowed due to command restrictions in the Mergify configuration.Details
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the oVal-based validation engine with an internal engine built on top of Hibernate Validator, the Jakarta Validation 3.1 reference implementation.
All of this was done without breaking the public play.data.validation API or observable behaviour: error keys, validation.* message keys, message parameter order,
@Validcascade errors, and the programmatic Validation API all passed the existing sample and unit test suites.@Constraintmeta-annotations; they are evaluated byPlayValidator, which provides the full context (PlayValidationContext/FieldValidationContext/MethodParameterValidationContextreplace oVal contexts) they need, while standard jakarta.validation constraints on beans and action method parameters are delegated to Hibernate Validator@Validcascades recursively with cycle protection and preserves the legacy error behaviour and keys: an object-level "validation.object" error is reported for every failed@Validapplication (parameter, field or collection), plus per-item errors for collection elementsAbstractAnnotationCheckreplacesnet.sf.oval AbstractAnnotationCheck; the message variables cache now preserves the order of the source map (LinkedHashMapinstead ofHashMap) so%2$s/%3$smessage parameters keep their positionsParameterMessageInterpolator, so no Unified EL implementation is required on the classpath (expressly and jakarta.el-api are intentionally not shipped: play resolves its validation messages through its own Messages, not through EL);JPAPluginexposes the factory to Hibernate viajakarta.persistence.validation.factorysoValidationMode.AUTObootstraps without ELnet.sf.oval:ovalremoved,org.hibernate.validator:hibernate-validator:9.1.1.Finaladded; oVal patch files and log4j logger entry cleaned upisSatisfied(validatedObject, value, context)signature#1592