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 e7d29df0869d78aa749c4ee21ce584a0c05b47d3
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Jun 22 13:10:14 2020 +0200

    CAMEL-15224: camel-api-component - Avoid reflection when configured nested 
configuration classes.
---
 .../camel-olingo2/camel-olingo2-component/pom.xml  |  58 +--------
 .../olingo2/Olingo2AppEndpointConfiguration.java   |  94 ++++++++++++++
 .../Olingo2AppEndpointConfigurationConfigurer.java | 140 +++++++++++++++++++++
 .../olingo2/Olingo2ConfigurationConfigurer.java    | 105 ++++++++++++++++
 .../olingo2/internal/Olingo2ApiCollection.java     |  59 +++++++++
 .../component/olingo2/internal/Olingo2ApiName.java |  38 ++++++
 .../olingo2/internal/Olingo2AppApiMethod.java      | 114 +++++++++++++++++
 .../configurer/Olingo2AppEndpointConfiguration     |   2 +
 .../apache/camel/configurer/Olingo2Configuration   |   2 +
 .../component/olingo2/Olingo2Configuration.java    |   2 +
 10 files changed, 562 insertions(+), 52 deletions(-)

diff --git a/components/camel-olingo2/camel-olingo2-component/pom.xml 
b/components/camel-olingo2/camel-olingo2-component/pom.xml
index 3bbb483..359a740 100644
--- a/components/camel-olingo2/camel-olingo2-component/pom.xml
+++ b/components/camel-olingo2/camel-olingo2-component/pom.xml
@@ -179,50 +179,20 @@
                     </execution>
                 </executions>
             </plugin>
-
-            <!-- add generated source and test source to build -->
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
+                <!-- 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>
-                        <goals>
-                            <goal>add-source</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>
-                    <!-- add the olingo odata2 sample service source. See 
profile get-olingo2-sample below -->
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>generate-test-sources</phase>
+                        <id>generate-configurer</id>
+                        <phase>process-classes</phase>
                         <goals>
-                            <goal>add-test-source</goal>
+                            <goal>generate-configurer</goal>
                         </goals>
-                        <configuration>
-                            <sources>
-                                
<source>${basedir}/target/olingo2-my-car-service/src/main/java</source>
-                            </sources>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>
-
         </plugins>
 
         <pluginManagement>
@@ -243,22 +213,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>Windows</id>
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfiguration.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfiguration.java
new file mode 100644
index 0000000..bbff8d4
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfiguration.java
@@ -0,0 +1,94 @@
+
+/*
+ * Camel EndpointConfiguration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.olingo2;
+
+import org.apache.camel.spi.Configurer;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+
+/**
+ * Camel EndpointConfiguration for 
org.apache.camel.component.olingo2.api.Olingo2App
+ */
+@UriParams
+@Configurer
+public final class Olingo2AppEndpointConfiguration extends 
Olingo2Configuration {
+
+    @UriParam
+    private Object data;
+
+    @UriParam
+    private org.apache.olingo.odata2.api.edm.Edm edm;
+
+    @UriParam
+    private java.util.Map<String,String> endpointHttpHeaders;
+
+    @UriParam
+    private String keyPredicate;
+
+    @UriParam
+    private java.util.Map<String,String> queryParams;
+
+    @UriParam
+    private String resourcePath;
+
+    @UriParam
+    private org.apache.camel.component.olingo2.api.Olingo2ResponseHandler 
responseHandler;
+
+    public Object getData() {
+        return data;
+    }
+
+    public void setData(Object data) {
+        this.data = data;
+    }
+
+    public org.apache.olingo.odata2.api.edm.Edm getEdm() {
+        return edm;
+    }
+
+    public void setEdm(org.apache.olingo.odata2.api.edm.Edm edm) {
+        this.edm = edm;
+    }
+
+    public java.util.Map<String,String> getEndpointHttpHeaders() {
+        return endpointHttpHeaders;
+    }
+
+    public void setEndpointHttpHeaders(java.util.Map<String,String> 
endpointHttpHeaders) {
+        this.endpointHttpHeaders = endpointHttpHeaders;
+    }
+
+    public String getKeyPredicate() {
+        return keyPredicate;
+    }
+
+    public void setKeyPredicate(String keyPredicate) {
+        this.keyPredicate = keyPredicate;
+    }
+
+    public java.util.Map<String,String> getQueryParams() {
+        return queryParams;
+    }
+
+    public void setQueryParams(java.util.Map<String,String> queryParams) {
+        this.queryParams = queryParams;
+    }
+
+    public String getResourcePath() {
+        return resourcePath;
+    }
+
+    public void setResourcePath(String resourcePath) {
+        this.resourcePath = resourcePath;
+    }
+
+    public org.apache.camel.component.olingo2.api.Olingo2ResponseHandler 
getResponseHandler() {
+        return responseHandler;
+    }
+
+    public void 
setResponseHandler(org.apache.camel.component.olingo2.api.Olingo2ResponseHandler
 responseHandler) {
+        this.responseHandler = responseHandler;
+    }
+}
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfigurationConfigurer.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfigurationConfigurer.java
new file mode 100644
index 0000000..9b4fb1c
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2AppEndpointConfigurationConfigurer.java
@@ -0,0 +1,140 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.olingo2;
+
+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.olingo2.Olingo2AppEndpointConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class Olingo2AppEndpointConfigurationConfigurer 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.olingo2.Olingo2AppEndpointConfiguration 
target = (org.apache.camel.component.olingo2.Olingo2AppEndpointConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.olingo2.internal.Olingo2ApiName.class, value)); 
return true;
+        case "connecttimeout":
+        case "ConnectTimeout": target.setConnectTimeout(property(camelContext, 
int.class, value)); return true;
+        case "contenttype":
+        case "ContentType": target.setContentType(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "data":
+        case "Data": target.setData(property(camelContext, 
java.lang.Object.class, value)); return true;
+        case "edm":
+        case "Edm": target.setEdm(property(camelContext, 
org.apache.olingo.odata2.api.edm.Edm.class, value)); return true;
+        case "endpointhttpheaders":
+        case "EndpointHttpHeaders": 
target.setEndpointHttpHeaders(property(camelContext, java.util.Map.class, 
value)); return true;
+        case "filteralreadyseen":
+        case "FilterAlreadySeen": 
target.setFilterAlreadySeen(property(camelContext, boolean.class, value)); 
return true;
+        case "httpasyncclientbuilder":
+        case "HttpAsyncClientBuilder": 
target.setHttpAsyncClientBuilder(property(camelContext, 
org.apache.http.impl.nio.client.HttpAsyncClientBuilder.class, value)); return 
true;
+        case "httpclientbuilder":
+        case "HttpClientBuilder": 
target.setHttpClientBuilder(property(camelContext, 
org.apache.http.impl.client.HttpClientBuilder.class, value)); return true;
+        case "httpheaders":
+        case "HttpHeaders": target.setHttpHeaders(property(camelContext, 
java.util.Map.class, value)); return true;
+        case "keypredicate":
+        case "KeyPredicate": target.setKeyPredicate(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 "proxy":
+        case "Proxy": target.setProxy(property(camelContext, 
org.apache.http.HttpHost.class, value)); return true;
+        case "queryparams":
+        case "QueryParams": target.setQueryParams(property(camelContext, 
java.util.Map.class, value)); return true;
+        case "resourcepath":
+        case "ResourcePath": target.setResourcePath(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "responsehandler":
+        case "ResponseHandler": 
target.setResponseHandler(property(camelContext, 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class, value)); 
return true;
+        case "serviceuri":
+        case "ServiceUri": target.setServiceUri(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "sockettimeout":
+        case "SocketTimeout": target.setSocketTimeout(property(camelContext, 
int.class, value)); return true;
+        case "splitresult":
+        case "SplitResult": target.setSplitResult(property(camelContext, 
boolean.class, value)); return true;
+        case "sslcontextparameters":
+        case "SslContextParameters": 
target.setSslContextParameters(property(camelContext, 
org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("ApiName", 
org.apache.camel.component.olingo2.internal.Olingo2ApiName.class);
+        answer.put("ConnectTimeout", int.class);
+        answer.put("ContentType", java.lang.String.class);
+        answer.put("Data", java.lang.Object.class);
+        answer.put("Edm", org.apache.olingo.odata2.api.edm.Edm.class);
+        answer.put("EndpointHttpHeaders", java.util.Map.class);
+        answer.put("FilterAlreadySeen", boolean.class);
+        answer.put("HttpAsyncClientBuilder", 
org.apache.http.impl.nio.client.HttpAsyncClientBuilder.class);
+        answer.put("HttpClientBuilder", 
org.apache.http.impl.client.HttpClientBuilder.class);
+        answer.put("HttpHeaders", java.util.Map.class);
+        answer.put("KeyPredicate", java.lang.String.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("Proxy", org.apache.http.HttpHost.class);
+        answer.put("QueryParams", java.util.Map.class);
+        answer.put("ResourcePath", java.lang.String.class);
+        answer.put("ResponseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class);
+        answer.put("ServiceUri", java.lang.String.class);
+        answer.put("SocketTimeout", int.class);
+        answer.put("SplitResult", boolean.class);
+        answer.put("SslContextParameters", 
org.apache.camel.support.jsse.SSLContextParameters.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.olingo2.Olingo2AppEndpointConfiguration 
target = (org.apache.camel.component.olingo2.Olingo2AppEndpointConfiguration) 
obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "connecttimeout":
+        case "ConnectTimeout": return target.getConnectTimeout();
+        case "contenttype":
+        case "ContentType": return target.getContentType();
+        case "data":
+        case "Data": return target.getData();
+        case "edm":
+        case "Edm": return target.getEdm();
+        case "endpointhttpheaders":
+        case "EndpointHttpHeaders": return target.getEndpointHttpHeaders();
+        case "filteralreadyseen":
+        case "FilterAlreadySeen": return target.isFilterAlreadySeen();
+        case "httpasyncclientbuilder":
+        case "HttpAsyncClientBuilder": return 
target.getHttpAsyncClientBuilder();
+        case "httpclientbuilder":
+        case "HttpClientBuilder": return target.getHttpClientBuilder();
+        case "httpheaders":
+        case "HttpHeaders": return target.getHttpHeaders();
+        case "keypredicate":
+        case "KeyPredicate": return target.getKeyPredicate();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "proxy":
+        case "Proxy": return target.getProxy();
+        case "queryparams":
+        case "QueryParams": return target.getQueryParams();
+        case "resourcepath":
+        case "ResourcePath": return target.getResourcePath();
+        case "responsehandler":
+        case "ResponseHandler": return target.getResponseHandler();
+        case "serviceuri":
+        case "ServiceUri": return target.getServiceUri();
+        case "sockettimeout":
+        case "SocketTimeout": return target.getSocketTimeout();
+        case "splitresult":
+        case "SplitResult": return target.isSplitResult();
+        case "sslcontextparameters":
+        case "SslContextParameters": return target.getSslContextParameters();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2ConfigurationConfigurer.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2ConfigurationConfigurer.java
new file mode 100644
index 0000000..7723701
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/Olingo2ConfigurationConfigurer.java
@@ -0,0 +1,105 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.olingo2;
+
+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.olingo2.Olingo2Configuration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class Olingo2ConfigurationConfigurer 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.olingo2.Olingo2Configuration target = 
(org.apache.camel.component.olingo2.Olingo2Configuration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiname":
+        case "ApiName": target.setApiName(property(camelContext, 
org.apache.camel.component.olingo2.internal.Olingo2ApiName.class, value)); 
return true;
+        case "connecttimeout":
+        case "ConnectTimeout": target.setConnectTimeout(property(camelContext, 
int.class, value)); return true;
+        case "contenttype":
+        case "ContentType": target.setContentType(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "filteralreadyseen":
+        case "FilterAlreadySeen": 
target.setFilterAlreadySeen(property(camelContext, boolean.class, value)); 
return true;
+        case "httpasyncclientbuilder":
+        case "HttpAsyncClientBuilder": 
target.setHttpAsyncClientBuilder(property(camelContext, 
org.apache.http.impl.nio.client.HttpAsyncClientBuilder.class, value)); return 
true;
+        case "httpclientbuilder":
+        case "HttpClientBuilder": 
target.setHttpClientBuilder(property(camelContext, 
org.apache.http.impl.client.HttpClientBuilder.class, value)); return true;
+        case "httpheaders":
+        case "HttpHeaders": target.setHttpHeaders(property(camelContext, 
java.util.Map.class, value)); return true;
+        case "methodname":
+        case "MethodName": target.setMethodName(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "proxy":
+        case "Proxy": target.setProxy(property(camelContext, 
org.apache.http.HttpHost.class, value)); return true;
+        case "serviceuri":
+        case "ServiceUri": target.setServiceUri(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "sockettimeout":
+        case "SocketTimeout": target.setSocketTimeout(property(camelContext, 
int.class, value)); return true;
+        case "splitresult":
+        case "SplitResult": target.setSplitResult(property(camelContext, 
boolean.class, value)); return true;
+        case "sslcontextparameters":
+        case "SslContextParameters": 
target.setSslContextParameters(property(camelContext, 
org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("ApiName", 
org.apache.camel.component.olingo2.internal.Olingo2ApiName.class);
+        answer.put("ConnectTimeout", int.class);
+        answer.put("ContentType", java.lang.String.class);
+        answer.put("FilterAlreadySeen", boolean.class);
+        answer.put("HttpAsyncClientBuilder", 
org.apache.http.impl.nio.client.HttpAsyncClientBuilder.class);
+        answer.put("HttpClientBuilder", 
org.apache.http.impl.client.HttpClientBuilder.class);
+        answer.put("HttpHeaders", java.util.Map.class);
+        answer.put("MethodName", java.lang.String.class);
+        answer.put("Proxy", org.apache.http.HttpHost.class);
+        answer.put("ServiceUri", java.lang.String.class);
+        answer.put("SocketTimeout", int.class);
+        answer.put("SplitResult", boolean.class);
+        answer.put("SslContextParameters", 
org.apache.camel.support.jsse.SSLContextParameters.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.component.olingo2.Olingo2Configuration target = 
(org.apache.camel.component.olingo2.Olingo2Configuration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiname":
+        case "ApiName": return target.getApiName();
+        case "connecttimeout":
+        case "ConnectTimeout": return target.getConnectTimeout();
+        case "contenttype":
+        case "ContentType": return target.getContentType();
+        case "filteralreadyseen":
+        case "FilterAlreadySeen": return target.isFilterAlreadySeen();
+        case "httpasyncclientbuilder":
+        case "HttpAsyncClientBuilder": return 
target.getHttpAsyncClientBuilder();
+        case "httpclientbuilder":
+        case "HttpClientBuilder": return target.getHttpClientBuilder();
+        case "httpheaders":
+        case "HttpHeaders": return target.getHttpHeaders();
+        case "methodname":
+        case "MethodName": return target.getMethodName();
+        case "proxy":
+        case "Proxy": return target.getProxy();
+        case "serviceuri":
+        case "ServiceUri": return target.getServiceUri();
+        case "sockettimeout":
+        case "SocketTimeout": return target.getSocketTimeout();
+        case "splitresult":
+        case "SplitResult": return target.isSplitResult();
+        case "sslcontextparameters":
+        case "SslContextParameters": return target.getSslContextParameters();
+        default: return null;
+        }
+    }
+}
+
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiCollection.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiCollection.java
new file mode 100644
index 0000000..4e1f23b
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiCollection.java
@@ -0,0 +1,59 @@
+
+/*
+ * Camel ApiCollection generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.olingo2.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.olingo2.Olingo2Configuration;
+import org.apache.camel.component.olingo2.Olingo2AppEndpointConfiguration;
+
+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 Olingo2
+ */
+public final class Olingo2ApiCollection extends ApiCollection<Olingo2ApiName, 
Olingo2Configuration> {
+
+    private static Olingo2ApiCollection collection;
+
+    private Olingo2ApiCollection() {
+        final Map<String, String> aliases = new HashMap<String, String>();
+        final Map<Olingo2ApiName, ApiMethodHelper<? extends ApiMethod>> 
apiHelpers = new HashMap<>();
+        final Map<Class<? extends ApiMethod>, Olingo2ApiName> apiMethods = new 
HashMap<>();
+
+        List<String> nullableArgs;
+
+        aliases.clear();
+        nullableArgs = Arrays.asList("queryParams", "endpointHttpHeaders", 
"edm", "responseHandler");
+        apiHelpers.put(Olingo2ApiName.DEFAULT, new 
ApiMethodHelper<Olingo2AppApiMethod>(Olingo2AppApiMethod.class, aliases, 
nullableArgs));
+        apiMethods.put(Olingo2AppApiMethod.class, Olingo2ApiName.DEFAULT);
+
+        setApiHelpers(apiHelpers);
+        setApiMethods(apiMethods);
+    }
+
+    public Olingo2Configuration getEndpointConfiguration(Olingo2ApiName 
apiName) {
+        Olingo2Configuration result = null;
+        switch (apiName) {
+            case DEFAULT:
+                result = new Olingo2AppEndpointConfiguration();
+                break;
+        }
+        return result;
+    }
+
+    public static synchronized Olingo2ApiCollection getCollection() {
+        if (collection == null) {
+            collection = new Olingo2ApiCollection();
+        }
+        return collection;
+    }
+}
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiName.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiName.java
new file mode 100644
index 0000000..05e45de
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2ApiName.java
@@ -0,0 +1,38 @@
+
+/*
+ * Camel ApiName Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.olingo2.internal;
+
+import org.apache.camel.support.component.ApiName;
+
+/**
+ * Camel {@link ApiName} Enumeration for Component Olingo2
+ */
+public enum Olingo2ApiName implements ApiName {
+
+    DEFAULT("");
+
+
+    private static final Olingo2ApiName[] VALUES = values();
+    
+    private final String name;
+
+    private Olingo2ApiName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    public static Olingo2ApiName 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-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2AppApiMethod.java
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2AppApiMethod.java
new file mode 100644
index 0000000..852f3b8
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/java/org/apache/camel/component/olingo2/internal/Olingo2AppApiMethod.java
@@ -0,0 +1,114 @@
+
+/*
+ * Camel ApiMethod Enumeration generated by camel-api-component-maven-plugin
+ */
+package org.apache.camel.component.olingo2.internal;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.apache.camel.component.olingo2.api.Olingo2App;
+
+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 
org.apache.camel.component.olingo2.api.Olingo2App
+ */
+public enum Olingo2AppApiMethod implements ApiMethod {
+
+    BATCH(
+        void.class,
+        "batch",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("data", Object.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    CREATE(
+        void.class,
+        "create",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("data", Object.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    DELETE(
+        void.class,
+        "delete",
+        arg("resourcePath", String.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    MERGE(
+        void.class,
+        "merge",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("data", Object.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    PATCH(
+        void.class,
+        "patch",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("data", Object.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    READ(
+        void.class,
+        "read",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("queryParams", java.util.Map.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    UPDATE(
+        void.class,
+        "update",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("data", Object.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class)),
+
+    UREAD(
+        void.class,
+        "uread",
+        arg("edm", org.apache.olingo.odata2.api.edm.Edm.class),
+        arg("resourcePath", String.class),
+        arg("queryParams", java.util.Map.class),
+        arg("endpointHttpHeaders", java.util.Map.class),
+        arg("responseHandler", 
org.apache.camel.component.olingo2.api.Olingo2ResponseHandler.class));
+
+    
+
+    private final ApiMethod apiMethod;
+
+    private Olingo2AppApiMethod(Class<?> resultType, String name, 
ApiMethodArg... args) {
+        this.apiMethod = new ApiMethodImpl(Olingo2App.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-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2AppEndpointConfiguration
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2AppEndpointConfiguration
new file mode 100644
index 0000000..bebda6a
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2AppEndpointConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.olingo2.Olingo2AppEndpointConfigurationConfigurer
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2Configuration
 
b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2Configuration
new file mode 100644
index 0000000..6e2486b
--- /dev/null
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/Olingo2Configuration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.olingo2.Olingo2ConfigurationConfigurer
diff --git 
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
 
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
index 15940a3..cdfca77 100644
--- 
a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
+++ 
b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Configuration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.olingo2;
 import java.util.Map;
 
 import org.apache.camel.component.olingo2.internal.Olingo2ApiName;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -34,6 +35,7 @@ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
  * Component configuration for Olingo2 component.
  */
 @UriParams
+@Configurer
 public class Olingo2Configuration {
 
     private static final String DEFAULT_CONTENT_TYPE = 
ContentType.APPLICATION_JSON.toString();

Reply via email to