Hi,<div><br></div><div>I am not sure is this already discussed or not but currently I believe that validation spec is very strict about coupling.</div><div><br></div><div>For example at interface level validator is declared by Interface.</div>

<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>@Constraint(validatedBy = <b>EmailValidator.class</b>)</div></div><div><div>@Retention(RUNTIME)</div></div><div><div>public @interface <b>Email </b></div>

</div></blockquote><div><br></div><div>And for the part EmailValidation part, we are referring again our Email Interface</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>public class <b>EmailValidator </b>implements ConstraintValidator&lt;<b>Email</b>, String&gt; </div>

<div><br></div></blockquote>What I think is this contract is little tight. And because of the strict contract, splitting validation by its interface is not possible.<div><br></div><div>And let me to clarify my use case too. </div>

<div><br></div><div>I have splitted my domain, validation and web projects (Web1, Web2, Web3) and using spring extensively. </div><div><ul><li>Domain (Has no dependency)</li><li>Validation (Has dependency to validation spec and optionally Spring Framework. For example, It can validate an uniqueEmail field by checking database. )</li>

<li>Web&#39;s (Has dependency to validation and domain)</li></ul><div>My domain needs dependency to validation for validating it but it means also depending spring and all other stuffs regarding Database validations. What I want to split Validation contract to interfaces and implementations. Interfaces could be declared at domain and implementations reside at validation module. Validation module has a dependency to domain perfectly. </div>

</div><div><br></div><div>I have checked builtin constraints implementations but it seems there is not any extensible points for it.</div><div><br></div><div>What are your suggestions for this situation? </div><div><br></div>

<div>Thanks</div><div><br></div>