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

davsclaus pushed a commit to branch CAMEL-15224
in repository https://gitbox.apache.org/repos/asf/camel.git

commit dba08e2d4c97b90d26847adba78bc8b4cd58bf9f
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 22 13:06:41 2020 +0200

    CAMEL-15224: camel-api-component - Avoid reflection when configured nested 
configuration classes.
---
 components/camel-google-sheets/pom.xml             |  46 ++------
 .../GoogleSheetsConfigurationConfigurer.java       |  75 +++++++++++++
 .../SheetsSpreadsheetsEndpointConfiguration.java   |  61 +++++++++++
 ...preadsheetsEndpointConfigurationConfigurer.java |  95 ++++++++++++++++
 ...etsSpreadsheetsValuesEndpointConfiguration.java | 116 ++++++++++++++++++++
 ...heetsValuesEndpointConfigurationConfigurer.java | 120 +++++++++++++++++++++
 .../sheets/internal/GoogleSheetsApiCollection.java |  68 ++++++++++++
 .../sheets/internal/GoogleSheetsApiName.java       |  40 +++++++
 .../internal/SheetsSpreadsheetsApiMethod.java      |  79 ++++++++++++++
 .../SheetsSpreadsheetsValuesApiMethod.java         | 107 ++++++++++++++++++
 .../camel/configurer/GoogleSheetsConfiguration     |   2 +
 .../SheetsSpreadsheetsEndpointConfiguration        |   2 +
 .../SheetsSpreadsheetsValuesEndpointConfiguration  |   2 +
 .../google/sheets/GoogleSheetsConfiguration.java   |   2 +
 14 files changed, 775 insertions(+), 40 deletions(-)

diff --git a/components/camel-google-sheets/pom.xml 
b/components/camel-google-sheets/pom.xml
index 961d7cb..6d3a41a 100644
--- a/components/camel-google-sheets/pom.xml
+++ b/components/camel-google-sheets/pom.xml
@@ -263,38 +263,20 @@
                     </execution>
                 </executions>
             </plugin>
-
-            <!-- add generated source and test source to build -->
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>1.8</version>
+                <!-- we need to generate additional configurer classes -->
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>add-generated-sources</id>
+                        <id>generate-configurer</id>
+                        <phase>process-classes</phase>
                         <goals>
-                            <goal>add-source</goal>
+                            <goal>generate-configurer</goal>
                         </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-sources/camel-component</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>add-generated-test-sources</id>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${project.build.directory}/generated-test-sources/camel-component</source>
-                            </sources>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
-
         </plugins>
 
         <pluginManagement>
@@ -315,22 +297,6 @@
 
     </build>
 
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-api-component-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <configuration>
-                    <scheme>${schemeName}</scheme>
-                    <componentName>${componentName}</componentName>
-                    <componentPackage>${componentPackage}</componentPackage>
-                    <outPackage>${outPackage}</outPackage>
-                </configuration>
-            </plugin>
-        </plugins>
-    </reporting>
-
     <profiles>
         <profile>
             <id>google-sheets-test</id>
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/GoogleSheetsConfigurationConfigurer.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/GoogleSheetsConfigurationConfigurer.java
new file mode 100644
index 0000000..e9d32b4
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/GoogleSheetsConfigurationConfigurer.java
@@ -0,0 +1,75 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.sheets;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.component.google.sheets.GoogleSheetsConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class GoogleSheetsConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        org.apache.camel.component.google.sheets.GoogleSheetsConfiguration 
target = (org.apache.camel.component.google.sheets.GoogleSheetsConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class, 
value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.google.sheets.GoogleSheetsConfiguration 
target = (org.apache.camel.component.google.sheets.GoogleSheetsConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfiguration.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfiguration.java
new file mode 100644
index 0000000..7b32a8a
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfiguration.java
@@ -0,0 +1,61 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.sheets.v4.Sheets$Spreadsheets
+ */
+@UriParams
+@Configurer
+public final class SheetsSpreadsheetsEndpointConfiguration extends 
GoogleSheetsConfiguration {
+
+    @UriParam
+    private 
com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest 
batchUpdateSpreadsheetRequest;
+
+    @UriParam
+    private com.google.api.services.sheets.v4.model.Spreadsheet content;
+
+    @UriParam
+    private 
com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest 
getSpreadsheetByDataFilterRequest;
+
+    @UriParam
+    private String spreadsheetId;
+
+    public 
com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest 
getBatchUpdateSpreadsheetRequest() {
+        return batchUpdateSpreadsheetRequest;
+    }
+
+    public void 
setBatchUpdateSpreadsheetRequest(com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest
 batchUpdateSpreadsheetRequest) {
+        this.batchUpdateSpreadsheetRequest = batchUpdateSpreadsheetRequest;
+    }
+
+    public com.google.api.services.sheets.v4.model.Spreadsheet getContent() {
+        return content;
+    }
+
+    public void setContent(com.google.api.services.sheets.v4.model.Spreadsheet 
content) {
+        this.content = content;
+    }
+
+    public 
com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest 
getGetSpreadsheetByDataFilterRequest() {
+        return getSpreadsheetByDataFilterRequest;
+    }
+
+    public void 
setGetSpreadsheetByDataFilterRequest(com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest
 getSpreadsheetByDataFilterRequest) {
+        this.getSpreadsheetByDataFilterRequest = 
getSpreadsheetByDataFilterRequest;
+    }
+
+    public String getSpreadsheetId() {
+        return spreadsheetId;
+    }
+
+    public void setSpreadsheetId(String spreadsheetId) {
+        this.spreadsheetId = spreadsheetId;
+    }
+}
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfigurationConfigurer.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..452f379
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsEndpointConfigurationConfigurer.java
@@ -0,0 +1,95 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.sheets;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class SheetsSpreadsheetsEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration
 target = 
(org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class, 
value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "batchupdatespreadsheetrequest":
+        case "BatchUpdateSpreadsheetRequest": 
target.setBatchUpdateSpreadsheetRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest.class, 
value)); return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.sheets.v4.model.Spreadsheet.class, value)); return true;
+        case "getspreadsheetbydatafilterrequest":
+        case "GetSpreadsheetByDataFilterRequest": 
target.setGetSpreadsheetByDataFilterRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest.class,
 value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "spreadsheetid":
+        case "SpreadsheetId": target.setSpreadsheetId(property(camelContext, 
java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("BatchUpdateSpreadsheetRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.sheets.v4.model.Spreadsheet.class);
+        answer.put("GetSpreadsheetByDataFilterRequest", 
com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("SpreadsheetId", java.lang.String.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration
 target = 
(org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "batchupdatespreadsheetrequest":
+        case "BatchUpdateSpreadsheetRequest": return 
target.getBatchUpdateSpreadsheetRequest();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "getspreadsheetbydatafilterrequest":
+        case "GetSpreadsheetByDataFilterRequest": return 
target.getGetSpreadsheetByDataFilterRequest();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "spreadsheetid":
+        case "SpreadsheetId": return target.getSpreadsheetId();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfiguration.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfiguration.java
new file mode 100644
index 0000000..6572932
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfiguration.java
@@ -0,0 +1,116 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
com.google.api.services.sheets.v4.Sheets$Spreadsheets$Values
+ */
+@UriParams
+@Configurer
+public final class SheetsSpreadsheetsValuesEndpointConfiguration extends 
GoogleSheetsConfiguration {
+
+    @UriParam
+    private com.google.api.services.sheets.v4.model.BatchClearValuesRequest 
batchClearValuesRequest;
+
+    @UriParam
+    private 
com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest 
batchGetValuesByDataFilterRequest;
+
+    @UriParam
+    private 
com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest 
batchUpdateValuesByDataFilterRequest;
+
+    @UriParam
+    private com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest 
batchUpdateValuesRequest;
+
+    @UriParam
+    private com.google.api.services.sheets.v4.model.ClearValuesRequest 
clearValuesRequest;
+
+    @UriParam
+    private 
com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest 
content;
+
+    @UriParam
+    private String range;
+
+    @UriParam
+    private String spreadsheetId;
+
+    @UriParam
+    private com.google.api.services.sheets.v4.model.ValueRange values;
+
+    public com.google.api.services.sheets.v4.model.BatchClearValuesRequest 
getBatchClearValuesRequest() {
+        return batchClearValuesRequest;
+    }
+
+    public void 
setBatchClearValuesRequest(com.google.api.services.sheets.v4.model.BatchClearValuesRequest
 batchClearValuesRequest) {
+        this.batchClearValuesRequest = batchClearValuesRequest;
+    }
+
+    public 
com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest 
getBatchGetValuesByDataFilterRequest() {
+        return batchGetValuesByDataFilterRequest;
+    }
+
+    public void 
setBatchGetValuesByDataFilterRequest(com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest
 batchGetValuesByDataFilterRequest) {
+        this.batchGetValuesByDataFilterRequest = 
batchGetValuesByDataFilterRequest;
+    }
+
+    public 
com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest 
getBatchUpdateValuesByDataFilterRequest() {
+        return batchUpdateValuesByDataFilterRequest;
+    }
+
+    public void 
setBatchUpdateValuesByDataFilterRequest(com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest
 batchUpdateValuesByDataFilterRequest) {
+        this.batchUpdateValuesByDataFilterRequest = 
batchUpdateValuesByDataFilterRequest;
+    }
+
+    public com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest 
getBatchUpdateValuesRequest() {
+        return batchUpdateValuesRequest;
+    }
+
+    public void 
setBatchUpdateValuesRequest(com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest
 batchUpdateValuesRequest) {
+        this.batchUpdateValuesRequest = batchUpdateValuesRequest;
+    }
+
+    public com.google.api.services.sheets.v4.model.ClearValuesRequest 
getClearValuesRequest() {
+        return clearValuesRequest;
+    }
+
+    public void 
setClearValuesRequest(com.google.api.services.sheets.v4.model.ClearValuesRequest
 clearValuesRequest) {
+        this.clearValuesRequest = clearValuesRequest;
+    }
+
+    public 
com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest 
getContent() {
+        return content;
+    }
+
+    public void 
setContent(com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest
 content) {
+        this.content = content;
+    }
+
+    public String getRange() {
+        return range;
+    }
+
+    public void setRange(String range) {
+        this.range = range;
+    }
+
+    public String getSpreadsheetId() {
+        return spreadsheetId;
+    }
+
+    public void setSpreadsheetId(String spreadsheetId) {
+        this.spreadsheetId = spreadsheetId;
+    }
+
+    public com.google.api.services.sheets.v4.model.ValueRange getValues() {
+        return values;
+    }
+
+    public void setValues(com.google.api.services.sheets.v4.model.ValueRange 
values) {
+        this.values = values;
+    }
+}
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfigurationConfigurer.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..65087fb
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/SheetsSpreadsheetsValuesEndpointConfigurationConfigurer.java
@@ -0,0 +1,120 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.google.sheets;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import 
org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class SheetsSpreadsheetsValuesEndpointConfigurationConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
+        
org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration
 target = 
(org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": target.setAccessToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class, 
value)); return true;
+        case "applicationname":
+        case "ApplicationName": 
target.setApplicationName(property(camelContext, java.lang.String.class, 
value)); return true;
+        case "batchclearvaluesrequest":
+        case "BatchClearValuesRequest": 
target.setBatchClearValuesRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchClearValuesRequest.class, value)); 
return true;
+        case "batchgetvaluesbydatafilterrequest":
+        case "BatchGetValuesByDataFilterRequest": 
target.setBatchGetValuesByDataFilterRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest.class,
 value)); return true;
+        case "batchupdatevaluesbydatafilterrequest":
+        case "BatchUpdateValuesByDataFilterRequest": 
target.setBatchUpdateValuesByDataFilterRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest.class,
 value)); return true;
+        case "batchupdatevaluesrequest":
+        case "BatchUpdateValuesRequest": 
target.setBatchUpdateValuesRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest.class, 
value)); return true;
+        case "clearvaluesrequest":
+        case "ClearValuesRequest": 
target.setClearValuesRequest(property(camelContext, 
com.google.api.services.sheets.v4.model.ClearValuesRequest.class, value)); 
return true;
+        case "clientid":
+        case "ClientId": target.setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "ClientSecret": target.setClientSecret(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "content":
+        case "Content": target.setContent(property(camelContext, 
com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest.class,
 value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "range":
+        case "Range": target.setRange(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "RefreshToken": target.setRefreshToken(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "spreadsheetid":
+        case "SpreadsheetId": target.setSpreadsheetId(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "values":
+        case "Values": target.setValues(property(camelContext, 
com.google.api.services.sheets.v4.model.ValueRange.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("AccessToken", java.lang.String.class);
+        answer.put("ApiName", 
org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName.class);
+        answer.put("ApplicationName", java.lang.String.class);
+        answer.put("BatchClearValuesRequest", 
com.google.api.services.sheets.v4.model.BatchClearValuesRequest.class);
+        answer.put("BatchGetValuesByDataFilterRequest", 
com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest.class);
+        answer.put("BatchUpdateValuesByDataFilterRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest.class);
+        answer.put("BatchUpdateValuesRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest.class);
+        answer.put("ClearValuesRequest", 
com.google.api.services.sheets.v4.model.ClearValuesRequest.class);
+        answer.put("ClientId", java.lang.String.class);
+        answer.put("ClientSecret", java.lang.String.class);
+        answer.put("Content", 
com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("Range", java.lang.String.class);
+        answer.put("RefreshToken", java.lang.String.class);
+        answer.put("SpreadsheetId", java.lang.String.class);
+        answer.put("Values", 
com.google.api.services.sheets.v4.model.ValueRange.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        
org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration
 target = 
(org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration)
 obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "AccessToken": return target.getAccessToken();
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "applicationname":
+        case "ApplicationName": return target.getApplicationName();
+        case "batchclearvaluesrequest":
+        case "BatchClearValuesRequest": return 
target.getBatchClearValuesRequest();
+        case "batchgetvaluesbydatafilterrequest":
+        case "BatchGetValuesByDataFilterRequest": return 
target.getBatchGetValuesByDataFilterRequest();
+        case "batchupdatevaluesbydatafilterrequest":
+        case "BatchUpdateValuesByDataFilterRequest": return 
target.getBatchUpdateValuesByDataFilterRequest();
+        case "batchupdatevaluesrequest":
+        case "BatchUpdateValuesRequest": return 
target.getBatchUpdateValuesRequest();
+        case "clearvaluesrequest":
+        case "ClearValuesRequest": return target.getClearValuesRequest();
+        case "clientid":
+        case "ClientId": return target.getClientId();
+        case "clientsecret":
+        case "ClientSecret": return target.getClientSecret();
+        case "content":
+        case "Content": return target.getContent();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "range":
+        case "Range": return target.getRange();
+        case "refreshtoken":
+        case "RefreshToken": return target.getRefreshToken();
+        case "spreadsheetid":
+        case "SpreadsheetId": return target.getSpreadsheetId();
+        case "values":
+        case "Values": return target.getValues();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiCollection.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiCollection.java
new file mode 100644
index 0000000..abbab71
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiCollection.java
@@ -0,0 +1,68 @@
+
+/*
+ * Camel ApiCollection generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets.internal;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.apache.camel.component.google.sheets.GoogleSheetsConfiguration;
+import 
org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfiguration;
+import 
org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfiguration;
+
+import org.apache.camel.support.component.ApiCollection;
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodHelper;
+
+/**
+ * Camel {@link ApiCollection} for GoogleSheets
+ */
+public final class GoogleSheetsApiCollection extends 
ApiCollection<GoogleSheetsApiName, GoogleSheetsConfiguration> {
+
+    private static GoogleSheetsApiCollection collection;
+
+    private GoogleSheetsApiCollection() {
+        final Map<String, String> aliases = new HashMap<String, String>();
+        final Map<GoogleSheetsApiName, ApiMethodHelper<? extends ApiMethod>> 
apiHelpers = new HashMap<>();
+        final Map<Class<? extends ApiMethod>, GoogleSheetsApiName> apiMethods 
= new HashMap<>();
+
+        List<String> nullableArgs;
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleSheetsApiName.SPREADSHEETS, new 
ApiMethodHelper<SheetsSpreadsheetsApiMethod>(SheetsSpreadsheetsApiMethod.class, 
aliases, nullableArgs));
+        apiMethods.put(SheetsSpreadsheetsApiMethod.class, 
GoogleSheetsApiName.SPREADSHEETS);
+
+        aliases.clear();
+        nullableArgs = Arrays.asList();
+        apiHelpers.put(GoogleSheetsApiName.DATA, new 
ApiMethodHelper<SheetsSpreadsheetsValuesApiMethod>(SheetsSpreadsheetsValuesApiMethod.class,
 aliases, nullableArgs));
+        apiMethods.put(SheetsSpreadsheetsValuesApiMethod.class, 
GoogleSheetsApiName.DATA);
+
+        setApiHelpers(apiHelpers);
+        setApiMethods(apiMethods);
+    }
+
+    public GoogleSheetsConfiguration 
getEndpointConfiguration(GoogleSheetsApiName apiName) {
+        GoogleSheetsConfiguration result = null;
+        switch (apiName) {
+            case SPREADSHEETS:
+                result = new SheetsSpreadsheetsEndpointConfiguration();
+                break;
+            case DATA:
+                result = new SheetsSpreadsheetsValuesEndpointConfiguration();
+                break;
+        }
+        return result;
+    }
+
+    public static synchronized GoogleSheetsApiCollection getCollection() {
+        if (collection == null) {
+            collection = new GoogleSheetsApiCollection();
+        }
+        return collection;
+    }
+}
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiName.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiName.java
new file mode 100644
index 0000000..a9895f5
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/GoogleSheetsApiName.java
@@ -0,0 +1,40 @@
+
+/*
+ * Camel ApiName Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets.internal;
+
+import org.apache.camel.support.component.ApiName;
+
+/**
+ * Camel {@link ApiName} Enumeration for Component GoogleSheets
+ */
+public enum GoogleSheetsApiName implements ApiName {
+
+    SPREADSHEETS("spreadsheets"),
+
+    DATA("data");
+
+
+    private static final GoogleSheetsApiName[] VALUES = values();
+    
+    private final String name;
+
+    private GoogleSheetsApiName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    public static GoogleSheetsApiName fromValue(String value) throws 
IllegalArgumentException {
+        for (int i = 0; i < VALUES.length; i++) {
+            if (VALUES[i].name.equals(value)) {
+                return VALUES[i];
+            }
+        }
+        throw new IllegalArgumentException("Invalid value " + value);
+    }
+}
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsApiMethod.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsApiMethod.java
new file mode 100644
index 0000000..790eb26
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsApiMethod.java
@@ -0,0 +1,79 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.sheets.v4.Sheets.Spreadsheets;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.sheets.v4.Sheets$Spreadsheets
+ */
+public enum SheetsSpreadsheetsApiMethod implements ApiMethod {
+
+    BATCHUPDATE(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.BatchUpdate.class,
+        "batchUpdate",
+        arg("spreadsheetId", String.class),
+        arg("batchUpdateSpreadsheetRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest.class)),
+
+    CREATE(
+        com.google.api.services.sheets.v4.Sheets.Spreadsheets.Create.class,
+        "create",
+        arg("content", 
com.google.api.services.sheets.v4.model.Spreadsheet.class)),
+
+    DEVELOPERMETADATA(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.DeveloperMetadata.class,
+        "developerMetadata"),
+
+    GET(
+        com.google.api.services.sheets.v4.Sheets.Spreadsheets.Get.class,
+        "get",
+        arg("spreadsheetId", String.class)),
+
+    GETBYDATAFILTER(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.GetByDataFilter.class,
+        "getByDataFilter",
+        arg("spreadsheetId", String.class),
+        arg("getSpreadsheetByDataFilterRequest", 
com.google.api.services.sheets.v4.model.GetSpreadsheetByDataFilterRequest.class)),
+
+    SHEETS(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.SheetsOperations.class,
+        "sheets"),
+
+    VALUES(
+        com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.class,
+        "values");
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private SheetsSpreadsheetsApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Spreadsheets.class, resultType, 
name, args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsValuesApiMethod.java
 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsValuesApiMethod.java
new file mode 100644
index 0000000..96b4372
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/java/org/apache/camel/component/google/sheets/internal/SheetsSpreadsheetsValuesApiMethod.java
@@ -0,0 +1,107 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.google.sheets.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values;
+
+import org.apache.camel.support.component.ApiMethod;
+import org.apache.camel.support.component.ApiMethodArg;
+import org.apache.camel.support.component.ApiMethodImpl;
+
+import static org.apache.camel.support.component.ApiMethodArg.arg;
+
+/**
+ * Camel {@link ApiMethod} Enumeration for 
com.google.api.services.sheets.v4.Sheets$Spreadsheets$Values
+ */
+public enum SheetsSpreadsheetsValuesApiMethod implements ApiMethod {
+
+    APPEND(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.Append.class,
+        "append",
+        arg("spreadsheetId", String.class),
+        arg("range", String.class),
+        arg("values", 
com.google.api.services.sheets.v4.model.ValueRange.class)),
+
+    BATCHCLEAR(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchClear.class,
+        "batchClear",
+        arg("spreadsheetId", String.class),
+        arg("batchClearValuesRequest", 
com.google.api.services.sheets.v4.model.BatchClearValuesRequest.class)),
+
+    BATCHCLEARBYDATAFILTER(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchClearByDataFilter.class,
+        "batchClearByDataFilter",
+        arg("spreadsheetId", String.class),
+        arg("content", 
com.google.api.services.sheets.v4.model.BatchClearValuesByDataFilterRequest.class)),
+
+    BATCHGET(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchGet.class,
+        "batchGet",
+        arg("spreadsheetId", String.class)),
+
+    BATCHGETBYDATAFILTER(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchGetByDataFilter.class,
+        "batchGetByDataFilter",
+        arg("spreadsheetId", String.class),
+        arg("batchGetValuesByDataFilterRequest", 
com.google.api.services.sheets.v4.model.BatchGetValuesByDataFilterRequest.class)),
+
+    BATCHUPDATE(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchUpdate.class,
+        "batchUpdate",
+        arg("spreadsheetId", String.class),
+        arg("batchUpdateValuesRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest.class)),
+
+    BATCHUPDATEBYDATAFILTER(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.BatchUpdateByDataFilter.class,
+        "batchUpdateByDataFilter",
+        arg("spreadsheetId", String.class),
+        arg("batchUpdateValuesByDataFilterRequest", 
com.google.api.services.sheets.v4.model.BatchUpdateValuesByDataFilterRequest.class)),
+
+    CLEAR(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.Clear.class,
+        "clear",
+        arg("spreadsheetId", String.class),
+        arg("range", String.class),
+        arg("clearValuesRequest", 
com.google.api.services.sheets.v4.model.ClearValuesRequest.class)),
+
+    GET(
+        com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.Get.class,
+        "get",
+        arg("spreadsheetId", String.class),
+        arg("range", String.class)),
+
+    UPDATE(
+        
com.google.api.services.sheets.v4.Sheets.Spreadsheets.Values.Update.class,
+        "update",
+        arg("spreadsheetId", String.class),
+        arg("range", String.class),
+        arg("values", 
com.google.api.services.sheets.v4.model.ValueRange.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private SheetsSpreadsheetsValuesApiMethod(Class<?> resultType, String 
name, ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Values.class, resultType, name, 
args);
+    }
+
+    @Override
+    public String getName() { return apiMethod.getName(); }
+
+    @Override
+    public Class<?> getResultType() { return apiMethod.getResultType(); }
+
+    @Override
+    public List<String> getArgNames() { return apiMethod.getArgNames(); }
+
+    @Override
+    public List<Class<?>> getArgTypes() { return apiMethod.getArgTypes(); }
+
+    @Override
+    public Method getMethod() { return apiMethod.getMethod(); }
+}
diff --git 
a/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleSheetsConfiguration
 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleSheetsConfiguration
new file mode 100644
index 0000000..77b3e2b
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/GoogleSheetsConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.sheets.GoogleSheetsConfigurationConfigurer
diff --git 
a/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsEndpointConfiguration
 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsEndpointConfiguration
new file mode 100644
index 0000000..f175546
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.sheets.SheetsSpreadsheetsEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsValuesEndpointConfiguration
 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsValuesEndpointConfiguration
new file mode 100644
index 0000000..c30a2d4
--- /dev/null
+++ 
b/components/camel-google-sheets/src/generated/resources/META-INF/services/org/apache/camel/configurer/SheetsSpreadsheetsValuesEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.google.sheets.SheetsSpreadsheetsValuesEndpointConfigurationConfigurer
diff --git 
a/components/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/GoogleSheetsConfiguration.java
 
b/components/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/GoogleSheetsConfiguration.java
index 2f56d96..c0bd935 100644
--- 
a/components/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/GoogleSheetsConfiguration.java
+++ 
b/components/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/GoogleSheetsConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.google.sheets;
 
 import org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -26,6 +27,7 @@ import org.apache.camel.spi.UriPath;
  * Component configuration for GoogleSheets component.
  */
 @UriParams
+@Configurer
 public class GoogleSheetsConfiguration {
 
     @UriPath

Reply via email to