...
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block |
---|
|
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-bean-validator</artifactId>
<version>x.xy.x<z</version>
<!-- use the same version as your Camel core version -->
</dependency>
|
URI format
Code Block |
---|
bean-validator:somethinglabel[?options]
|
or
Code Block |
---|
bean-validator://somethinglabel[?options]
|
Where something must be present to provide a valid url label is an arbitrary text value describing the endpoint.
You can append query options to the URI in the following format, ?option=value&option=value&...
...
Assumed we have a java bean with the following annotations
Code Block |
---|
|
public class Car {
@NotNull
private String manufacturer;
@NotNull
@Size(min = 5, max = 14, groups = OptionalChecks.class)
private String licensePlate;
// getter and setter
}
|
...
Code Block |
---|
|
public interface OptionalChecks {
}
|
with the following Camel route, only the @NotNull constraints on the attributes manufacturer and licensePlate will be validated (Camel uses the default group javax.validation.groups.Default
).
Code Block |
---|
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
|
If you want to check the constraints from the group OptionalChecks
, you have to define the route like this
Code Block |
---|
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
|
...
Code Block |
---|
|
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
|
and then your route definition should looks like this
Code Block |
---|
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
|
And if you have to provide your own message interpolator, traversable resolver and constraint validator factory, you have to write a route like this
Code Block |
---|
<bean id="myMessageInterpolator" class="my.ConstraintValidatorFactory" />
<bean id="myTraversableResolver" class="my.TraversableResolver" />
<bean id="myConstraintValidatorFactory" class="my.ConstraintValidatorFactory" />
from("direct:start")
.to("bean-validator://x?group=AllChecks&messageInterpolator=#myMessageInterpolator
&traversableResolver=#myTraversableResolver&constraintValidatorFactory=#myConstraintValidatorFactory")
.to("mock:end")
|
...
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration">
<default-provider>org.hibernate.validator.HibernateValidator</default-provider>
<message-interpolator>org.hibernate.validator.engine.ResourceBundleMessageInterpolator</message-interpolator>
<traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>
<constraint-mapping>/constraints-car.xml</constraint-mapping>
</validation-config>
|
...
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<constraint-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd"
xmlns="http://jboss.org/xml/ns/javax/validation/mapping">
<default-package>org.apache.camel.component.bean.validator</default-package>
<bean class="CarWithoutAnnotations" ignore-annotations="true">
<field name="manufacturer">
<constraint annotation="javax.validation.constraints.NotNull" />
</field>
<field name="licensePlate">
<constraint annotation="javax.validation.constraints.NotNull" />
<constraint annotation="javax.validation.constraints.Size">
<groups>
<value>org.apache.camel.component.bean.validator.OptionalChecks</value>
</groups>
<element name="min">5</element>
<element name="max">14</element>
</constraint>
</field>
</bean>
</constraint-mappings>
|
Include Page |
---|
| Endpoint See Also |
---|
| Endpoint See Also |
---|
|