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 <[email protected]>
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
 

Reply via email to