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 <gno...@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 }