Skip to content

Commit

Permalink
HV-725 Updating bootstrapping chapter
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnarmorling committed Apr 26, 2013
1 parent 7d50347 commit 3826741
Show file tree
Hide file tree
Showing 11 changed files with 648 additions and 352 deletions.
Expand Up @@ -401,7 +401,7 @@ Validator validator = factory.getValidator();</programlisting>
</example>

<para>For other ways of obtaining a Validator instance see <xref
linkend="validator-bootstrapping"/>. For now we just want to see how we
linkend="chapter-bootstrapping"/>. For now we just want to see how we
can use the <classname>Validator</classname> instance to validate entity
instances.</para>
</section>
Expand Down Expand Up @@ -1081,9 +1081,9 @@ assertEquals( "may not be null", constraintViolations.iterator().next().getMessa
</row>

<row>
<entry><classname>@URL(protocol=,</classname>
<classname>host=, port=</classname>
<classname>regexp=, flags=)</classname></entry>
<entry><classname>@URL(protocol=,</classname> <classname>host=,
port=</classname> <classname>regexp=,
flags=)</classname></entry>

<entry><classname>CharSequence</classname></entry>

Expand Down
761 changes: 422 additions & 339 deletions documentation/src/main/docbook/en-US/modules/bootstrapping.xml

Large diffs are not rendered by default.

Expand Up @@ -221,8 +221,8 @@ validator = factory.unwrap( HibernateValidatorFactory.class )
</example>
</section>

<section id="programmaticapi">
<title>Programmatic constraint definition</title>
<section id="section-programmatic-api">
<title>Programmatic constraint declaration</title>

<para>Another addition to the Bean Validation specification is the ability
to configure constraints via a fluent API. This API can be used
Expand Down
10 changes: 5 additions & 5 deletions documentation/src/main/docbook/en-US/modules/metadataapi.xml
Expand Up @@ -293,11 +293,11 @@ assertEquals( 1, driverDescriptor.getGroupConversions().size() );</programlistin
<para>Using <methodname>getConstrainedDescriptors()</methodname>, you can
retrieve a set of <classname>ConstraintDescriptor</classname>s providing
more information on the individual constraints of a given property. The
method <methodname>isCascaded()</methodname> returns true, if the property
is marked for cascaded validation (either using the
<classname>@Valid</classname> annotation or via XML), false otherwise. Any
configured group conversions are returned by
<methodname>getGroupConversions()</methodname>. See <xref
method <methodname>isCascaded()</methodname> returns
<literal>true</literal>, if the property is marked for cascaded validation
(either using the <classname>@Valid</classname> annotation or via XML),
<literal>false</literal> otherwise. Any configured group conversions are
returned by <methodname>getGroupConversions()</methodname>. See <xref
linkend="section-group-conversion-descriptor"/> for more details on
<classname>GroupConversionDescriptor</classname>.</para>
</section>
Expand Down
Expand Up @@ -20,7 +20,7 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "../hv.ent">
%BOOK_ENTITIES;
]>
<chapter id="validator-xmlconfiguration">
<chapter id="chapter-xml-configuration">
<title>Configuring via XML</title>

<para>So far we have used the default configuration source for Bean
Expand Down Expand Up @@ -147,7 +147,7 @@
linkend="failfast"/>).</para>
</section>

<section>
<section id="section-mapping-xml-constraints">
<title id="section-mapping-constraints">Mapping constraints via
<property>constraint-mappings</property></title>

Expand Down
@@ -0,0 +1,110 @@
package org.hibernate.validator.referenceguide.chapter08;

import java.io.InputStream;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

import org.hibernate.validator.HibernateValidator;
import org.hibernate.validator.cfg.ConstraintMapping;

public class BootstrappingTest {

public void buildDefaultValidatorFactory() {
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void byProvider() {
ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
.configure()
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void byDefaultProvider() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void providerResolver() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.providerResolver( new OsgiServiceDiscoverer() )
.configure()
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void messageInterpolator() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.messageInterpolator( new MyMessageInterpolator() )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void traversableResolver() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.traversableResolver( new MyTraversableResolver() )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void constraintValidatorFactory() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.constraintValidatorFactory( new MyConstraintValidatorFactory() )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void parameterNameProvider() {
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.parameterNameProvider( new MyParameterNameProvider() )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void addMapping() {
InputStream constraintMapping1 = null;
InputStream constraintMapping2 = null;
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
.configure()
.addMapping( constraintMapping1 )
.addMapping( constraintMapping2 )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void providerSpecificOptions() {
ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
.configure()
.failFast( true )
.addMapping( (ConstraintMapping) null )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void providerSpecificOptionViaAddProperty() {
ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
.configure()
.addProperty( "hibernate.validator.fail_fast", "true" )
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
}

public void usingContext() {
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();

Validator validator = validatorFactory.usingContext()
.messageInterpolator( new MyMessageInterpolator() )
.traversableResolver(
new MyTraversableResolver()
)
.getValidator();
}
}
@@ -0,0 +1,18 @@
package org.hibernate.validator.referenceguide.chapter08;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorFactory;

public class MyConstraintValidatorFactory implements ConstraintValidatorFactory {

@Override
public <T extends ConstraintValidator<?, ?>> T getInstance(Class<T> key) {
//...
return null;
}

@Override
public void releaseInstance(ConstraintValidator<?, ?> instance) {
//...
}
}
@@ -0,0 +1,19 @@
package org.hibernate.validator.referenceguide.chapter08;

import java.util.Locale;
import javax.validation.MessageInterpolator;

public class MyMessageInterpolator implements MessageInterpolator {

@Override
public String interpolate(String messageTemplate, Context context) {
//...
return null;
}

@Override
public String interpolate(String messageTemplate, Context context, Locale locale) {
//...
return null;
}
}
@@ -0,0 +1,21 @@
package org.hibernate.validator.referenceguide.chapter08;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.List;
import javax.validation.ParameterNameProvider;

public class MyParameterNameProvider implements ParameterNameProvider {

@Override
public List<String> getParameterNames(Constructor<?> constructor) {
//...
return null;
}

@Override
public List<String> getParameterNames(Method method) {
//...
return null;
}
}
@@ -0,0 +1,31 @@
package org.hibernate.validator.referenceguide.chapter08;

import java.lang.annotation.ElementType;
import javax.validation.Path;
import javax.validation.Path.Node;
import javax.validation.TraversableResolver;

public class MyTraversableResolver implements TraversableResolver {

@Override
public boolean isReachable(
Object traversableObject,
Node traversableProperty,
Class<?> rootBeanType,
Path pathToTraversableObject,
ElementType elementType) {
//...
return false;
}

@Override
public boolean isCascadable(
Object traversableObject,
Node traversableProperty,
Class<?> rootBeanType,
Path pathToTraversableObject,
ElementType elementType) {
//...
return false;
}
}
@@ -0,0 +1,14 @@
package org.hibernate.validator.referenceguide.chapter08;

import java.util.List;
import javax.validation.ValidationProviderResolver;
import javax.validation.spi.ValidationProvider;

public class OsgiServiceDiscoverer implements ValidationProviderResolver {

@Override
public List<ValidationProvider<?>> getValidationProviders() {
//...
return null;
}
}

0 comments on commit 3826741

Please sign in to comment.