You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/02/14 09:19:26 UTC

[camel] branch master updated (761683f -> 8d0eb6e)

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

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


    from 761683f  Upgrade Box Java SDK to version 2.44.1
     new e53b036  [CAMEL-14563] The camel api generator maven plugin does not support packages correctly
     new 8d0eb6e  [CAMEL-14444] Build speed: Make sure the debezium plugin does not overwrite files with the same content

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/maven/GenerateConnectorConfigMojo.java   |  4 +-
 .../maven/config/ConnectorConfigGenerator.java     |  8 ----
 ...goDbConnectorEmbeddedDebeziumConfiguration.java |  2 +-
 ...ySqlConnectorEmbeddedDebeziumConfiguration.java |  2 +-
 ...gresConnectorEmbeddedDebeziumConfiguration.java |  2 +-
 ...rverConnectorEmbeddedDebeziumConfiguration.java |  2 +-
 components/camel-twilio/pom.xml                    | 54 ++++++++++++++++------
 .../maven/AbstractApiMethodGeneratorMojo.java      | 12 +++--
 .../camel/maven/ApiComponentGeneratorMojo.java     | 13 ++++--
 .../main/java/org/apache/camel/maven/ApiProxy.java | 10 ++++
 .../src/main/resources/api-collection.vm           |  7 ++-
 11 files changed, 77 insertions(+), 39 deletions(-)


[camel] 02/02: [CAMEL-14444] Build speed: Make sure the debezium plugin does not overwrite files with the same content

Posted by gn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8d0eb6edc090a06f5d4a9bb356227f895ed4aa30
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Feb 14 10:15:38 2020 +0100

    [CAMEL-14444] Build speed: Make sure the debezium plugin does not overwrite files with the same content
---
 .../java/org/apache/camel/maven/GenerateConnectorConfigMojo.java  | 4 ++--
 .../org/apache/camel/maven/config/ConnectorConfigGenerator.java   | 8 --------
 .../MongoDbConnectorEmbeddedDebeziumConfiguration.java            | 2 +-
 .../MySqlConnectorEmbeddedDebeziumConfiguration.java              | 2 +-
 .../PostgresConnectorEmbeddedDebeziumConfiguration.java           | 2 +-
 .../SqlServerConnectorEmbeddedDebeziumConfiguration.java          | 2 +-
 6 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/GenerateConnectorConfigMojo.java b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/GenerateConnectorConfigMojo.java
index b1abf2a..2b8adad 100644
--- a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/GenerateConnectorConfigMojo.java
+++ b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/GenerateConnectorConfigMojo.java
@@ -17,7 +17,6 @@
 package org.apache.camel.maven;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -25,6 +24,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.camel.maven.config.ConnectorConfigGenerator;
+import org.apache.camel.tooling.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.kafka.connect.source.SourceConnector;
 import org.apache.maven.plugin.AbstractMojo;
@@ -89,7 +89,7 @@ public class GenerateConnectorConfigMojo extends AbstractMojo {
                 connectorConfigClassFile.getParentFile().mkdirs();
                 connectorConfigClassFile.createNewFile();
             }
-            connectorConfigGenerator.printGeneratedClass(new FileOutputStream(connectorConfigClassFile));
+            FileUtil.updateFile(connectorConfigClassFile.toPath(), connectorConfigGenerator.printClassAsString());
         } catch (Exception e) {
             throw new MojoFailureException(e.getMessage(), e);
         }
diff --git a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigGenerator.java b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigGenerator.java
index 6590ff9..18d889e 100644
--- a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigGenerator.java
+++ b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigGenerator.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.maven.config;
 
-import java.io.OutputStream;
-import java.io.PrintStream;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
@@ -103,12 +101,6 @@ public final class ConnectorConfigGenerator {
         return PACKAGE_NAME;
     }
 
-    public void printGeneratedClass(final OutputStream outputStream) {
-        final PrintStream printStreams = new PrintStream(outputStream, true);
-        printStreams.println(printClassAsString());
-        printStreams.close();
-    }
-
     public String printClassAsString() {
         return javaClass.printClass(true);
     }
diff --git a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
index e4061a7..9d45fb8 100644
--- a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
@@ -473,4 +473,4 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
     public String getConnectorDatabaseType() {
         return "mongodb";
     }
-}
+}
\ No newline at end of file
diff --git a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
index 05de707..e6edeb1 100644
--- a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
@@ -1039,4 +1039,4 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
     public String getConnectorDatabaseType() {
         return "mysql";
     }
-}
+}
\ No newline at end of file
diff --git a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
index dda8fbf..aab3659 100644
--- a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
@@ -868,4 +868,4 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
     public String getConnectorDatabaseType() {
         return "postgres";
     }
-}
+}
\ No newline at end of file
diff --git a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
index 45ed7a6..9c4799d 100644
--- a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
@@ -563,4 +563,4 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
     public String getConnectorDatabaseType() {
         return "sqlserver";
     }
-}
+}
\ No newline at end of file


[camel] 01/02: [CAMEL-14563] The camel api generator maven plugin does not support packages correctly

Posted by gn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e53b0368c189cac4e1a68545440e43f325fd642e
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Feb 14 09:53:35 2020 +0100

    [CAMEL-14563] The camel api generator maven plugin does not support packages correctly
---
 components/camel-twilio/pom.xml                    | 54 ++++++++++++++++------
 .../maven/AbstractApiMethodGeneratorMojo.java      | 12 +++--
 .../camel/maven/ApiComponentGeneratorMojo.java     | 13 ++++--
 .../main/java/org/apache/camel/maven/ApiProxy.java | 10 ++++
 .../src/main/resources/api-collection.vm           |  7 ++-
 5 files changed, 71 insertions(+), 25 deletions(-)

diff --git a/components/camel-twilio/pom.xml b/components/camel-twilio/pom.xml
index 6da1df0..8f5dce5 100644
--- a/components/camel-twilio/pom.xml
+++ b/components/camel-twilio/pom.xml
@@ -278,6 +278,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.address -->
                                 <api>
                                     <apiName>address-dependent-phone-number</apiName>
+                                    <classPrefix>Address</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.address.DependentPhoneNumber
                                     </proxyClass>
                                     <fromJavadoc>
@@ -288,6 +289,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.availablephonenumbercountry -->
                                 <api>
                                     <apiName>available-phone-number-country-local</apiName>
+                                    <classPrefix>AvailablePhoneNumberCountry</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.Local
                                     </proxyClass>
                                     <fromJavadoc>
@@ -297,6 +299,7 @@
                                 </api>
                                 <api>
                                     <apiName>available-phone-number-country-mobile</apiName>
+                                    <classPrefix>AvailablePhoneNumberCountry</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.Mobile
                                     </proxyClass>
                                     <fromJavadoc>
@@ -306,6 +309,7 @@
                                 </api>
                                 <api>
                                     <apiName>available-phone-number-country-toll-free</apiName>
+                                    <classPrefix>AvailablePhoneNumberCountry</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.availablephonenumbercountry.TollFree
                                     </proxyClass>
                                     <fromJavadoc>
@@ -316,6 +320,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.call -->
                                 <api>
                                     <apiName>call-feedback</apiName>
+                                    <classPrefix>Call</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.call.Feedback</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -324,6 +329,7 @@
                                 </api>
                                 <api>
                                     <apiName>call-feedback-summary</apiName>
+                                    <classPrefix>Call</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.call.FeedbackSummary</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -332,6 +338,7 @@
                                 </api>
                                 <api>
                                     <apiName>call-notification</apiName>
+                                    <classPrefix>Call</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.call.Notification</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -340,6 +347,7 @@
                                 </api>
                                 <api>
                                     <apiName>call-recording</apiName>
+                                    <classPrefix>Call</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.call.Recording</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -349,6 +357,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.conference -->
                                 <api>
                                     <apiName>conference-participant</apiName>
+                                    <classPrefix>Conference</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.conference.Participant</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -358,6 +367,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.incomingphonenumber -->
                                 <api>
                                     <apiName>incoming-phone-number-local</apiName>
+                                    <classPrefix>IncomingPhoneNumber</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.Local</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -366,8 +376,8 @@
                                 </api>
                                 <api>
                                     <apiName>incoming-phone-number-mobile</apiName>
-                                    <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.Mobile
-                                    </proxyClass>
+                                    <classPrefix>IncomingPhoneNumber</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.Mobile</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -375,8 +385,8 @@
                                 </api>
                                 <api>
                                     <apiName>incoming-phone-number-toll-free</apiName>
-                                    <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.TollFree
-                                    </proxyClass>
+                                    <classPrefix>IncomingPhoneNumber</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.incomingphonenumber.TollFree</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -385,6 +395,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.message -->
                                 <api>
                                     <apiName>message-feedback</apiName>
+                                    <classPrefix>Message</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.message.Feedback</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -393,6 +404,7 @@
                                 </api>
                                 <api>
                                     <apiName>message-media</apiName>
+                                    <classPrefix>Message</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.message.Media</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -402,6 +414,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.queue -->
                                 <api>
                                     <apiName>queue-member</apiName>
+                                    <classPrefix>Queue</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.queue.Member</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -411,6 +424,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.recording -->
                                 <api>
                                     <apiName>recording-add-on-result</apiName>
+                                    <classPrefix>Recording</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.recording.AddOnResult</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -419,6 +433,7 @@
                                 </api>
                                 <api>
                                     <apiName>recording-transcription</apiName>
+                                    <classPrefix>Recording</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.recording.Transcription</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -428,8 +443,8 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.recording.addonresult -->
                                 <api>
                                     <apiName>recording-add-on-result-payload</apiName>
-                                    <proxyClass>com.twilio.rest.api.v2010.account.recording.addonresult.Payload
-                                    </proxyClass>
+                                    <classPrefix>RecordingAddOnResult</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.recording.addonresult.Payload</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -438,6 +453,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.sip -->
                                 <api>
                                     <apiName>sip-credential-list</apiName>
+                                    <classPrefix>Sip</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.sip.CredentialList</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -446,6 +462,7 @@
                                 </api>
                                 <api>
                                     <apiName>sip-domain</apiName>
+                                    <classPrefix>Sip</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.sip.Domain</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -454,6 +471,7 @@
                                 </api>
                                 <api>
                                     <apiName>sip-ip-access-control-list</apiName>
+                                    <classPrefix>Sip</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.sip.IpAccessControlList</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -463,8 +481,8 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.sip.credentiallist -->
                                 <api>
                                     <apiName>sip-credential-list-credential</apiName>
-                                    <proxyClass>com.twilio.rest.api.v2010.account.sip.credentiallist.Credential
-                                    </proxyClass>
+                                    <classPrefix>Sip</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.sip.credentiallist.Credential</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -473,8 +491,8 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.sip.domain -->
                                 <api>
                                     <apiName>sip-domain-credential-list-mapping</apiName>
-                                    <proxyClass>com.twilio.rest.api.v2010.account.sip.domain.CredentialListMapping
-                                    </proxyClass>
+                                    <classPrefix>SipDomain</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.sip.domain.CredentialListMapping</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -482,9 +500,8 @@
                                 </api>
                                 <api>
                                     <apiName>sip-domain-ip-access-control-list-mapping</apiName>
-                                    <proxyClass>
-                                        com.twilio.rest.api.v2010.account.sip.domain.IpAccessControlListMapping
-                                    </proxyClass>
+                                    <classPrefix>SipDomain</classPrefix>
+                                    <proxyClass>com.twilio.rest.api.v2010.account.sip.domain.IpAccessControlListMapping</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
                                         <includeStaticMethods>true</includeStaticMethods>
@@ -493,6 +510,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.sip.ipaccesscontrollist -->
                                 <api>
                                     <apiName>sip-ip-access-control-list-ip-address</apiName>
+                                    <classPrefix>SipIpAccessControlList</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.sip.ipaccesscontrollist.IpAddress
                                     </proxyClass>
                                     <fromJavadoc>
@@ -503,6 +521,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.usage -->
                                 <api>
                                     <apiName>usage-record</apiName>
+                                    <classPrefix>Usage</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.Record</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -511,6 +530,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-trigger</apiName>
+                                    <classPrefix>Usage</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.Trigger</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -520,6 +540,7 @@
                                 <!-- Package: com.twilio.rest.api.v2010.account.usage.record -->
                                 <api>
                                     <apiName>usage-record-all-time</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.AllTime</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -528,6 +549,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-daily</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Daily</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -536,6 +558,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-last-month</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.LastMonth</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -544,6 +567,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-monthly</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Monthly</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -552,6 +576,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-this-month</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.ThisMonth</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -560,6 +585,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-today</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Today</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -568,6 +594,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-yearly</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Yearly</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
@@ -576,6 +603,7 @@
                                 </api>
                                 <api>
                                     <apiName>usage-record-yesterday</apiName>
+                                    <classPrefix>UsageRecord</classPrefix>
                                     <proxyClass>com.twilio.rest.api.v2010.account.usage.record.Yesterday</proxyClass>
                                     <fromJavadoc>
                                         <includeMethods>creator|deleter|fetcher|reader|updater</includeMethods>
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
index 704b13b..90e509a 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
@@ -42,6 +42,9 @@ public abstract class AbstractApiMethodGeneratorMojo extends AbstractApiMethodBa
     @Parameter(required = true, property = PREFIX + "proxyClass")
     protected String proxyClass;
 
+    @Parameter
+    protected String classPrefix;
+
     // cached fields
     private Class<?> proxyType;
 
@@ -121,7 +124,8 @@ public abstract class AbstractApiMethodGeneratorMojo extends AbstractApiMethodBa
 
     private String getEnumName() throws MojoExecutionException {
         String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);
-        return proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "ApiMethod";
+        String prefix = classPrefix != null ? classPrefix : "";
+        return prefix + proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "ApiMethod";
     }
 
     private VelocityContext getApiTestContext(List<ApiMethodParser.ApiMethodModel> models) throws MojoExecutionException {
@@ -143,7 +147,8 @@ public abstract class AbstractApiMethodGeneratorMojo extends AbstractApiMethodBa
 
     private String getUnitTestName() throws MojoExecutionException {
         String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);
-        return proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "IntegrationTest";
+        String prefix = classPrefix != null ? classPrefix : "";
+        return prefix + proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "IntegrationTest";
     }
 
     private VelocityContext getEndpointContext(List<ApiMethodParser.ApiMethodModel> models) throws MojoExecutionException {
@@ -205,7 +210,8 @@ public abstract class AbstractApiMethodGeneratorMojo extends AbstractApiMethodBa
 
     private String getConfigName() throws MojoExecutionException {
         String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);
-        return proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "EndpointConfiguration";
+        String prefix = classPrefix != null ? classPrefix : "";
+        return prefix + proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "EndpointConfiguration";
     }
 
     private String getProxyClassWithCanonicalName(String proxyClass) {
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiComponentGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiComponentGeneratorMojo.java
index cf22d3f..1946aeb 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiComponentGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiComponentGeneratorMojo.java
@@ -149,6 +149,7 @@ public class ApiComponentGeneratorMojo extends AbstractApiMethodBaseMojo {
 
         // set AbstractAPIMethodGeneratorMojo properties
         mojo.proxyClass = apiProxy.getProxyClass();
+        mojo.classPrefix = apiProxy.getClassPrefix();
     }
 
     private AbstractApiMethodGeneratorMojo getApiMethodGenerator(ApiProxy api) {
@@ -220,14 +221,16 @@ public class ApiComponentGeneratorMojo extends AbstractApiMethodBaseMojo {
         return fileName;
     }
 
-    public static String getApiMethod(String proxyClass) {
-        String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);        
-        return proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "ApiMethod";
+    public static String getApiMethod(String proxyClass, String classPrefix) {
+        String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);
+        String prefix = classPrefix != null ? classPrefix : "";
+        return prefix + proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "ApiMethod";
     }
 
-    public static String getEndpointConfig(String proxyClass) {
+    public static String getEndpointConfig(String proxyClass, String classPrefix) {
         String proxyClassWithCanonicalName = getProxyClassWithCanonicalName(proxyClass);
-        return proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "EndpointConfiguration";
+        String prefix = classPrefix != null ? classPrefix : "";
+        return prefix + proxyClassWithCanonicalName.substring(proxyClassWithCanonicalName.lastIndexOf('.') + 1) + "EndpointConfiguration";
     }
 
     private static String getProxyClassWithCanonicalName(String proxyClass) {
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiProxy.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiProxy.java
index ce6901c..ad8038d 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiProxy.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/ApiProxy.java
@@ -45,6 +45,8 @@ public class ApiProxy {
 
     private String[] nullableOptions;
 
+    private String classPrefix;
+
     private List<ApiMethodAlias> aliases = Collections.emptyList();
 
     public String getApiName() {
@@ -127,6 +129,14 @@ public class ApiProxy {
         this.aliases = aliases;
     }
 
+    public String getClassPrefix() {
+        return classPrefix;
+    }
+
+    public void setClassPrefix(String classPrefix) {
+        this.classPrefix = classPrefix;
+    }
+
     public void validate() throws MojoExecutionException {
         if (apiName == null || proxyClass == null) {
             throw new MojoExecutionException("Properties apiName and proxyClass are required");
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-collection.vm b/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-collection.vm
index 8efc2f6..eee56c5 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-collection.vm
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/resources/api-collection.vm
@@ -45,7 +45,7 @@ import java.util.HashMap;
 #set( $componentConfig = "${componentName}Configuration" )
 import ${componentPackage}.${componentConfig};
 #foreach ( $api in $apis )
-import ${componentPackage}.${helper.getEndpointConfig($api.ProxyClass)};
+import ${componentPackage}.${helper.getEndpointConfig($api.ProxyClass, $api.ClassPrefix)};
 #end
 
 import org.apache.camel.support.component.ApiCollection;
@@ -71,7 +71,7 @@ public final class $collectionName extends ApiCollection<${apiNameEnum}, ${compo
 #foreach( $alias in $api.Aliases )
         aliases.put("$alias.MethodPattern", "$alias.MethodAlias");
 #end
-#set( $apiMethod = ${helper.getApiMethod($api.ProxyClass)} )
+#set( $apiMethod = ${helper.getApiMethod($api.ProxyClass, $api.ClassPrefix)} )
 #set( $apiName = "${apiNameEnum}.${helper.getEnumConstant($api.ApiName)}" )
         nullableArgs = Arrays.asList(${helper.getNullableOptionValues($api.NullableOptions)});
         apiHelpers.put($apiName, new ApiMethodHelper<$apiMethod>(${apiMethod}.class, aliases, nullableArgs));
@@ -85,9 +85,8 @@ public final class $collectionName extends ApiCollection<${apiNameEnum}, ${compo
     public $componentConfig getEndpointConfiguration(${apiNameEnum} apiName) {
         $componentConfig result = null;
         switch (apiName) {
-#foreach( $api in $apis )
             case ${helper.getEnumConstant($api.ApiName)}:
-                result = new ${helper.getEndpointConfig($api.ProxyClass)}();
+                result = new ${helper.getEndpointConfig($api.ProxyClass, $api.ClassPrefix)}();
                 break;
 #end
         }