You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/11/13 13:52:16 UTC

[camel] 02/06: CAMEL-15836: Add autowired metadata to camel-bean-validator validatorFactory option

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9414ce25b58002b14ffc718a8c0b25a7a5a72e0c
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Nov 13 10:30:10 2020 +0000

    CAMEL-15836: Add autowired metadata to camel-bean-validator validatorFactory option
---
 .../camel/catalog/components/bean-validator.json   |  2 +-
 .../catalog/docs/bean-validator-component.adoc     |  2 +-
 .../BeanValidatorComponentConfigurer.java          |  5 +++
 .../component/bean/validator/bean-validator.json   |  2 +-
 .../src/main/docs/bean-validator-component.adoc    |  2 +-
 .../bean/validator/BeanValidatorComponent.java     |  2 +-
 ...Test.java => ValidatorFactoryAutowireTest.java} | 23 ++------------
 ...Test.java => ValidatorFactoryRegistryTest.java} | 30 ++++++------------
 .../bean/validator/ValidatorFactoryTest.java       | 36 ----------------------
 .../ROOT/pages/bean-validator-component.adoc       |  2 +-
 10 files changed, 23 insertions(+), 83 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/bean-validator.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/bean-validator.json
index 73a57b5..b5433b0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/bean-validator.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/bean-validator.json
@@ -29,7 +29,7 @@
     "messageInterpolator": { "kind": "property", "displayName": "Message Interpolator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.MessageInterpolator", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessageInterpolator" },
     "traversableResolver": { "kind": "property", "displayName": "Traversable Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.TraversableResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom TraversableResolver" },
     "validationProviderResolver": { "kind": "property", "displayName": "Validation Provider Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidationProviderResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a a custom ValidationProviderResolver" },
-    "validatorFactory": { "kind": "property", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ValidatorFactory" }
+    "validatorFactory": { "kind": "property", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": true, "secret": false, "description": "To use a custom ValidatorFactory" }
   },
   "properties": {
     "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Where label is an arbitrary text value describing the endpoint" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/bean-validator-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/bean-validator-component.adoc
index 0a9f803..fb708d5 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/bean-validator-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/bean-validator-component.adoc
@@ -68,7 +68,7 @@ The Bean Validator component supports 8 options, which are listed below.
 | *messageInterpolator* (advanced) | To use a custom MessageInterpolator |  | MessageInterpolator
 | *traversableResolver* (advanced) | To use a custom TraversableResolver |  | TraversableResolver
 | *validationProviderResolver* (advanced) | To use a a custom ValidationProviderResolver |  | ValidationProviderResolver
-| *validatorFactory* (advanced) | To use a custom ValidatorFactory |  | ValidatorFactory
+| *validatorFactory* (advanced) | *Autowired* To use a custom ValidatorFactory |  | ValidatorFactory
 |===
 // component options: END
 
diff --git a/components/camel-bean-validator/src/generated/java/org/apache/camel/component/bean/validator/BeanValidatorComponentConfigurer.java b/components/camel-bean-validator/src/generated/java/org/apache/camel/component/bean/validator/BeanValidatorComponentConfigurer.java
index 835d161..b794d83 100644
--- a/components/camel-bean-validator/src/generated/java/org/apache/camel/component/bean/validator/BeanValidatorComponentConfigurer.java
+++ b/components/camel-bean-validator/src/generated/java/org/apache/camel/component/bean/validator/BeanValidatorComponentConfigurer.java
@@ -42,6 +42,11 @@ public class BeanValidatorComponentConfigurer extends PropertyConfigurerSupport
     }
 
     @Override
+    public String[] getAutowiredNames() {
+        return new String[]{"validatorFactory"};
+    }
+
+    @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "autowiredenabled":
diff --git a/components/camel-bean-validator/src/generated/resources/org/apache/camel/component/bean/validator/bean-validator.json b/components/camel-bean-validator/src/generated/resources/org/apache/camel/component/bean/validator/bean-validator.json
index 73a57b5..b5433b0 100644
--- a/components/camel-bean-validator/src/generated/resources/org/apache/camel/component/bean/validator/bean-validator.json
+++ b/components/camel-bean-validator/src/generated/resources/org/apache/camel/component/bean/validator/bean-validator.json
@@ -29,7 +29,7 @@
     "messageInterpolator": { "kind": "property", "displayName": "Message Interpolator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.MessageInterpolator", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessageInterpolator" },
     "traversableResolver": { "kind": "property", "displayName": "Traversable Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.TraversableResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom TraversableResolver" },
     "validationProviderResolver": { "kind": "property", "displayName": "Validation Provider Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidationProviderResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a a custom ValidationProviderResolver" },
-    "validatorFactory": { "kind": "property", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ValidatorFactory" }
+    "validatorFactory": { "kind": "property", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": true, "secret": false, "description": "To use a custom ValidatorFactory" }
   },
   "properties": {
     "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Where label is an arbitrary text value describing the endpoint" },
diff --git a/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc b/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
index 0a9f803..fb708d5 100644
--- a/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
+++ b/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
@@ -68,7 +68,7 @@ The Bean Validator component supports 8 options, which are listed below.
 | *messageInterpolator* (advanced) | To use a custom MessageInterpolator |  | MessageInterpolator
 | *traversableResolver* (advanced) | To use a custom TraversableResolver |  | TraversableResolver
 | *validationProviderResolver* (advanced) | To use a a custom ValidationProviderResolver |  | ValidationProviderResolver
-| *validatorFactory* (advanced) | To use a custom ValidatorFactory |  | ValidatorFactory
+| *validatorFactory* (advanced) | *Autowired* To use a custom ValidatorFactory |  | ValidatorFactory
 |===
 // component options: END
 
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 3e18c73..5e37cbf 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
@@ -46,7 +46,7 @@ public class BeanValidatorComponent extends DefaultComponent {
     private TraversableResolver traversableResolver;
     @Metadata(label = "advanced")
     private ConstraintValidatorFactory constraintValidatorFactory;
-    @Metadata(label = "advanced")
+    @Metadata(label = "advanced", autowired = true)
     private ValidatorFactory validatorFactory;
 
     public BeanValidatorComponent() {
diff --git a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryAutowireTest.java
similarity index 67%
copy from components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
copy to components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryAutowireTest.java
index c041c49..de09a08 100644
--- a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
+++ b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryAutowireTest.java
@@ -26,13 +26,10 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.condition.OS.AIX;
 
-public class ValidatorFactoryTest extends CamelTestSupport {
+public class ValidatorFactoryAutowireTest extends CamelTestSupport {
 
     @BindToRegistry("myValidatorFactory")
     private ValidatorFactory validatorFactory;
@@ -50,26 +47,12 @@ public class ValidatorFactoryTest extends CamelTestSupport {
 
     @DisabledOnOs(AIX)
     @Test
-    void configureValidatorFactoryFromRegistry() throws Exception {
-
+    void configureValidatorFactoryAutowired() throws Exception {
         BeanValidatorEndpoint endpoint
-                = context.getEndpoint("bean-validator:dummy?validatorFactory=#myValidatorFactory", BeanValidatorEndpoint.class);
+                = context.getEndpoint("bean-validator:dummy", BeanValidatorEndpoint.class);
         BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
 
         assertSame(this.validatorFactory, endpoint.getValidatorFactory());
         assertSame(this.validatorFactory, producer.getValidatorFactory());
     }
-
-    @DisabledOnOs(AIX)
-    @Test
-    void configureValidatorFactory() throws Exception {
-
-        BeanValidatorEndpoint endpoint = context.getEndpoint("bean-validator:dummy", BeanValidatorEndpoint.class);
-        BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
-
-        assertNull(endpoint.getValidatorFactory());
-        assertNotSame(this.validatorFactory, endpoint.getValidatorFactory());
-        assertNotNull(producer.getValidatorFactory());
-        assertNotSame(this.validatorFactory, producer.getValidatorFactory());
-    }
 }
diff --git a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryRegistryTest.java
similarity index 66%
copy from components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
copy to components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryRegistryTest.java
index c041c49..965de43 100644
--- a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
+++ b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryRegistryTest.java
@@ -26,17 +26,17 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.condition.OS.AIX;
 
-public class ValidatorFactoryTest extends CamelTestSupport {
+public class ValidatorFactoryRegistryTest extends CamelTestSupport {
 
     @BindToRegistry("myValidatorFactory")
     private ValidatorFactory validatorFactory;
 
+    @BindToRegistry("otherValidatorFactory")
+    private ValidatorFactory otherValidatorFactory;
+
     @Override
     @BeforeEach
     public void setUp() throws Exception {
@@ -44,6 +44,7 @@ public class ValidatorFactoryTest extends CamelTestSupport {
         bootstrap.providerResolver(new HibernateValidationProviderResolver());
 
         this.validatorFactory = bootstrap.configure().buildValidatorFactory();
+        this.otherValidatorFactory = bootstrap.configure().buildValidatorFactory();
 
         super.setUp();
     }
@@ -51,25 +52,12 @@ public class ValidatorFactoryTest extends CamelTestSupport {
     @DisabledOnOs(AIX)
     @Test
     void configureValidatorFactoryFromRegistry() throws Exception {
-
         BeanValidatorEndpoint endpoint
-                = context.getEndpoint("bean-validator:dummy?validatorFactory=#myValidatorFactory", BeanValidatorEndpoint.class);
-        BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
-
-        assertSame(this.validatorFactory, endpoint.getValidatorFactory());
-        assertSame(this.validatorFactory, producer.getValidatorFactory());
-    }
-
-    @DisabledOnOs(AIX)
-    @Test
-    void configureValidatorFactory() throws Exception {
-
-        BeanValidatorEndpoint endpoint = context.getEndpoint("bean-validator:dummy", BeanValidatorEndpoint.class);
+                = context.getEndpoint("bean-validator:dummy?validatorFactory=#otherValidatorFactory",
+                        BeanValidatorEndpoint.class);
         BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
 
-        assertNull(endpoint.getValidatorFactory());
-        assertNotSame(this.validatorFactory, endpoint.getValidatorFactory());
-        assertNotNull(producer.getValidatorFactory());
-        assertNotSame(this.validatorFactory, producer.getValidatorFactory());
+        assertSame(this.otherValidatorFactory, endpoint.getValidatorFactory());
+        assertSame(this.otherValidatorFactory, producer.getValidatorFactory());
     }
 }
diff --git a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
index c041c49..4477de3 100644
--- a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
+++ b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/ValidatorFactoryTest.java
@@ -16,50 +16,16 @@
  */
 package org.apache.camel.component.bean.validator;
 
-import javax.validation.Validation;
-import javax.validation.ValidatorFactory;
-import javax.validation.bootstrap.GenericBootstrap;
-
-import org.apache.camel.BindToRegistry;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
 import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.condition.OS.AIX;
 
 public class ValidatorFactoryTest extends CamelTestSupport {
 
-    @BindToRegistry("myValidatorFactory")
-    private ValidatorFactory validatorFactory;
-
-    @Override
-    @BeforeEach
-    public void setUp() throws Exception {
-        GenericBootstrap bootstrap = Validation.byDefaultProvider();
-        bootstrap.providerResolver(new HibernateValidationProviderResolver());
-
-        this.validatorFactory = bootstrap.configure().buildValidatorFactory();
-
-        super.setUp();
-    }
-
-    @DisabledOnOs(AIX)
-    @Test
-    void configureValidatorFactoryFromRegistry() throws Exception {
-
-        BeanValidatorEndpoint endpoint
-                = context.getEndpoint("bean-validator:dummy?validatorFactory=#myValidatorFactory", BeanValidatorEndpoint.class);
-        BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
-
-        assertSame(this.validatorFactory, endpoint.getValidatorFactory());
-        assertSame(this.validatorFactory, producer.getValidatorFactory());
-    }
-
     @DisabledOnOs(AIX)
     @Test
     void configureValidatorFactory() throws Exception {
@@ -68,8 +34,6 @@ public class ValidatorFactoryTest extends CamelTestSupport {
         BeanValidatorProducer producer = (BeanValidatorProducer) endpoint.createProducer();
 
         assertNull(endpoint.getValidatorFactory());
-        assertNotSame(this.validatorFactory, endpoint.getValidatorFactory());
         assertNotNull(producer.getValidatorFactory());
-        assertNotSame(this.validatorFactory, producer.getValidatorFactory());
     }
 }
diff --git a/docs/components/modules/ROOT/pages/bean-validator-component.adoc b/docs/components/modules/ROOT/pages/bean-validator-component.adoc
index 09acc6b..f731aac 100644
--- a/docs/components/modules/ROOT/pages/bean-validator-component.adoc
+++ b/docs/components/modules/ROOT/pages/bean-validator-component.adoc
@@ -70,7 +70,7 @@ The Bean Validator component supports 8 options, which are listed below.
 | *messageInterpolator* (advanced) | To use a custom MessageInterpolator |  | MessageInterpolator
 | *traversableResolver* (advanced) | To use a custom TraversableResolver |  | TraversableResolver
 | *validationProviderResolver* (advanced) | To use a a custom ValidationProviderResolver |  | ValidationProviderResolver
-| *validatorFactory* (advanced) | To use a custom ValidatorFactory |  | ValidatorFactory
+| *validatorFactory* (advanced) | *Autowired* To use a custom ValidatorFactory |  | ValidatorFactory
 |===
 // component options: END