[camel-bean-validator] Refactoring.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f763045e Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f763045e Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f763045e Branch: refs/heads/master Commit: f763045e69f0ab69f40c0a067838df4f265fbcea Parents: 7f3d6ab Author: Henryk Konsek <[email protected]> Authored: Sun Feb 16 21:41:07 2014 +0100 Committer: Henryk Konsek <[email protected]> Committed: Sun Feb 16 21:41:07 2014 +0100 ---------------------------------------------------------------------- .../bean/validator/BeanValidatorComponent.java | 26 +++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f763045e/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java index e7ebbbe..0de0f7f 100644 --- a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java +++ b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java @@ -48,7 +48,7 @@ public class BeanValidatorComponent extends DefaultComponent { protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { BeanValidator beanValidator = new BeanValidator(); - ValidationProviderResolver validationProviderResolver = resolveAndRemoveReferenceParameter(parameters, "validationProviderResolver", ValidationProviderResolver.class); + ValidationProviderResolver validationProviderResolver = resolveValidationProviderResolver(parameters); MessageInterpolator messageInterpolator = resolveAndRemoveReferenceParameter(parameters, "messageInterpolator", MessageInterpolator.class); TraversableResolver traversableResolver = resolveAndRemoveReferenceParameter(parameters, "traversableResolver", TraversableResolver.class); ConstraintValidatorFactory constraintValidatorFactory = resolveAndRemoveReferenceParameter(parameters, "constraintValidatorFactory", ConstraintValidatorFactory.class); @@ -57,8 +57,6 @@ public class BeanValidatorComponent extends DefaultComponent { GenericBootstrap bootstrap = Validation.byDefaultProvider(); if (validationProviderResolver != null) { bootstrap.providerResolver(validationProviderResolver); - } else if (isOsgiContext()) { - bootstrap.providerResolver(new HibernateValidationProviderResolver()); } Configuration<?> configuration = bootstrap.configure(); @@ -85,6 +83,28 @@ public class BeanValidatorComponent extends DefaultComponent { } /** + * Resolves optional custom {@code javax.validation.ValidationProviderResolver} to be used by the component. By + * default component tries to use resolver instance bound to the Camel registry under name + * {@code validationProviderResolver} . If there is no such resolver instance in the registry and component is + * running in the OSGi environment, {@link HibernateValidationProviderResolver} will be used. In all the other + * cases this method will return null. + * + * @param parameters endpoint parameters + * @return {@code javax.validation.ValidationProviderResolver} instance or null if no custom resolver should + * be used by the component + */ + protected ValidationProviderResolver resolveValidationProviderResolver(Map<String, Object> parameters) { + ValidationProviderResolver validationProviderResolver = resolveAndRemoveReferenceParameter(parameters, "validationProviderResolver", ValidationProviderResolver.class); + if (validationProviderResolver != null) { + return validationProviderResolver; + } + if (isOsgiContext()) { + return new HibernateValidationProviderResolver(); + } + return null; + } + + /** * Recognizes if component is executed in the OSGi environment. This implementation assumes that component is * deployed into OSGi environment if it uses implementation of {@code org.apache.camel.CamelContext} with class * name starting with the "Osgi" prefix.
