[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.

Reply via email to