Remove Introspected from MyValidatorBean example #336
Merged
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.
The docs are updated to no longer show the use of the
@Introspected
annotation on theMyValidatorBean
example, as it cannot successfully be used on a validator that is a managed bean with dependencies.DefaultInternalConstraintValidatorFactory
is updated to include the exception cause in the stack trace when a validator cannot be initialized.The
CustomMessageConstraint2Validator
test class forCustomConstraintsSpec
is updated to include a dependency that must successfully be injected in order to verify that this works as long as the validator is not also Introspected.Resolves #258
Note For Reviewers:
An alternative approach that I considered is to change this lookup algorithm in
DefaultInternalConstraintValidatorFactory
to instead look for a bean first before looking for the introspection. Something such as:This allows the existing example with both
@Singleton
and@Introspected
to still work when an injected dependency is required in the constructor...but I am of the opinion that it is incorrect in the first place to have@Introspected
on a managed bean. The upside to doing that would be that users' 3.x apps that followed the example won't break when upgrading to 4.x, but this seems acceptable as a breaking change in the major version.