his fact allows
            the <code>isValid()</code> method to inspect the properties
            and perform effective class-level validtion.</p>

            <p>Next, the <code>Constraint</code>.</p>

<pre><code>
@Constraint(validatedBy=PasswordValidator.class)
@Target(TYPE)
@Retention(RUNTIME)
@interface Password {

    String message() default "Password fields must match";
    Class[] groups() default {};
    Class[] payload() default {};
}
</code></pre>

            <p>Now the backing bean constraine