Author: hardy.ferentschik
Date: 2009-09-09 08:36:01 -0400 (Wed, 09 Sep 2009)
New Revision: 17497
Modified:
validator/trunk/hibernate-validator/src/main/docbook/en-US/master.xml
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/usingvalidator.xml
Log:
HV-220
Modified: validator/trunk/hibernate-validator/src/main/docbook/en-US/master.xml
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/en-US/master.xml 2009-09-09
12:02:02 UTC (rev 17496)
+++ validator/trunk/hibernate-validator/src/main/docbook/en-US/master.xml 2009-09-09
12:36:01 UTC (rev 17497)
@@ -111,9 +111,10 @@
<para>Last but not least, a few pointers to further information. A great
source for examples is the Bean Validation TCK which can is available for
- anonymous access in the Hibernate SVN repository - <ulink
-
url="https://svn.jboss.org/repos/hibernate/validator/trunk">...;.
- Alternatively you can view the tests using fisheye and this url: <ulink
-
url="http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk/...
+ anonymous access in the Hibernate <ulink
+
url="http://anonsvn.jboss.org/repos/hibernate/validator/trunk"&...
+ repository</ulink>. Alternatively you can view the tests using <ulink
+
url="http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk/...
+ fisheye</ulink> installation.</para>
</chapter>
</book>
Modified:
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml
===================================================================
---
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml 2009-09-09
12:02:02 UTC (rev 17496)
+++
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/bootstrapping.xml 2009-09-09
12:36:01 UTC (rev 17497)
@@ -27,23 +27,47 @@
<chapter id="validator-bootstrapping">
<title>Bootstrapping</title>
- <para></para>
+ <para>We already discussed in <xref
linkend="section-validator-instance" />
+ how to create a <classname>Validator</classname> instance using the
+ different methods in <classname>javax.validation.Validation</classname>.
In
+ this chapter we will discuss the underlying mechanisms and have a closer
+ look at the different configuration possibilties available via the
+ <classname>Configuration</classname> object.</para>
<section>
<title><classname>MessageInterpolator</classname></title>
- <para></para>
+ <para>The message interpolator is provided to the ValidatorFactory at
+ construction time using Configuration.messageInterpolator(). This message
+ interpolator is shared by all validators gener- ated by this
+ ValidatorFactory. It is recommended that MessageInterpolator
+ implementations delegate final interpolation to the Bean Validation
+ default MessageInterpolator to ensure standard Bean Validation
+ interpolation rules are followed. The default implementation is accessible
+ through Configuration.getDefaultMessageInterpolator(). </para>
</section>
<section>
<title><classname>TraversableResolver</classname></title>
- <para></para>
+ <para>The Bean Validation provider must not access the state of a
+ property, nor validate its constraints if the property is not traversable.
+ A property is traversable if TraversableResolver returns true for this
+ property. </para>
</section>
<section>
<title><classname>ConstraintValidatorFactory</classname></title>
- <para></para>
+ <para>The default ConstraintValidatorFactory provided by the Bean
+ Validation provider implementation uses the pub- lic constraint no-arg
+ constructor. A custom ConstraintValidatorFactory can be provided for
+ example to benefit from dependency injection control in constraint
+ implementations. Any constraint implementation relying on Con-
+ straintValidatorFactory behaviors specific to an implementation
+ (dependency injection, no no-arg constructor and so on) are not considered
+ portable, hence great care should be given before walking that path.
+ ConstraintValidatorFactory should not cache instances as the state of each
+ instance can be altered in the ini- tialize method. </para>
</section>
</chapter>
Modified:
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/usingvalidator.xml
===================================================================
---
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/usingvalidator.xml 2009-09-09
12:02:02 UTC (rev 17496)
+++
validator/trunk/hibernate-validator/src/main/docbook/en-US/modules/usingvalidator.xml 2009-09-09
12:36:01 UTC (rev 17497)
@@ -416,7 +416,7 @@
<classname>Validator</classname> interface.</para>
<section id="section-validator-instance">
- <title>Obtaining a Validator instance</title>
+ <title>Obtaining a <classname>Validator</classname>
instance</title>
<para>The first step towards validating an entity instance is to get
hold of a <classname>Validator</classname> instance. The road to this
@@ -427,7 +427,7 @@
method:<example>
<title>Validation.buildDefaultValidatorFactory()</title>
- <programlisting>ValidatorFactory factory =
Validation.buildDefaultValidatorFactory();
+ <programlisting>ValidatorFactory factory = <emphasis
role="bold">Validation.buildDefaultValidatorFactory()</emphasis>;
Validator validator = factory.getValidator();</programlisting>
</example>You can also use the method
<methodname>Validation.byDefaultProvider()</methodname> which will
allow
@@ -435,7 +435,8 @@
instance:<example>
<title>Validation.byDefaultProvider()</title>
- <programlisting>Configuration<?> config =
Validation.byDefaultProvider().configure();
+ <programlisting>Configuration<?> config = <emphasis
+
role="bold">Validation.byDefaultProvider()</emphasis>.configure();
config.messageInterpolator(new MyMessageInterpolator())
.traversableResolver( new MyTraversableResolver())
.constraintValidatorFactory(new MyConstraintValidatorFactory());
@@ -455,7 +456,8 @@
case of Hibernate Validator the Validator creation looks like:<example>
<title>Validation.byProvider( HibernateValidator.class )</title>
- <programlisting>ValidatorConfiguration config = Validation.byProvider(
HibernateValidator.class ).configure;
+ <programlisting>ValidatorConfiguration config = <emphasis
+ role="bold">Validation.byProvider( HibernateValidator.class
)</emphasis>.configure();
config.messageInterpolator(new MyMessageInterpolator())
.traversableResolver( new MyTraversableResolver())
.constraintValidatorFactory(new MyConstraintValidatorFactory());