This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch CAMEL-22247 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4d7f4289ffd51a9e11e961a54d3803714da3a703 Author: Andrea Cosentino <[email protected]> AuthorDate: Thu Jul 17 09:58:36 2025 +0200 CAMEL-22247 - Camel Google Components: Make the scopes parameter a string in all the components - Google Mail Signed-off-by: Andrea Cosentino <[email protected]> --- .../camel/catalog/components/google-mail.json | 4 +- ...UsersDraftsEndpointConfigurationConfigurer.java | 14 +---- .../GmailUsersEndpointConfigurationConfigurer.java | 14 +---- ...sersHistoryEndpointConfigurationConfigurer.java | 14 +---- ...UsersLabelsEndpointConfigurationConfigurer.java | 14 +---- ...AttachmentsEndpointConfigurationConfigurer.java | 14 +---- ...ersMessagesEndpointConfigurationConfigurer.java | 14 +---- ...sersThreadsEndpointConfigurationConfigurer.java | 14 +---- .../google/mail/GoogleMailComponentConfigurer.java | 14 +---- .../mail/GoogleMailConfigurationConfigurer.java | 14 +---- .../google/mail/GoogleMailEndpointConfigurer.java | 7 +-- .../camel/component/google/mail/google-mail.json | 4 +- .../component/google/mail/GoogleMailComponent.java | 4 +- .../google/mail/GoogleMailConfiguration.java | 19 ++++-- .../dsl/GoogleMailComponentBuilderFactory.java | 12 ++-- .../dsl/GoogleMailEndpointBuilderFactory.java | 69 +++++----------------- 16 files changed, 73 insertions(+), 172 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-mail.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-mail.json index 46f93ac36c2..82f150d992b 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-mail.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-mail.json @@ -29,7 +29,7 @@ "clientId": { "index": 1, "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" }, "configuration": { "index": 2, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" }, "delegate": { "index": 3, "kind": "property", "displayName": "Delegate", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Delegate for wide-domain service account" }, - "scopes": { "index": 4, "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.Collection<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "GMail scopes" }, + "scopes": { "index": 4, "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/developer [...] "bridgeErrorHandler": { "index": 5, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] "lazyStartProducer": { "index": 6, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] "autowiredEnabled": { "index": 7, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] @@ -46,7 +46,7 @@ "clientId": { "index": 3, "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" }, "delegate": { "index": 4, "kind": "parameter", "displayName": "Delegate", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Delegate for wide-domain service account" }, "inBody": { "index": 5, "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" }, - "scopes": { "index": 6, "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.Collection<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "GMail scopes" }, + "scopes": { "index": 6, "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/develope [...] "sendEmptyMessageWhenIdle": { "index": 7, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, "bridgeErrorHandler": { "index": 8, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] "exceptionHandler": { "index": 9, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...] diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java index f0950288546..f474c384a50 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersDraftsEndpointConfigurationConfigurer.java @@ -38,7 +38,7 @@ public class GmailUsersDraftsEndpointConfigurationConfigurer extends org.apache. map.put("PageToken", java.lang.String.class); map.put("Q", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -75,7 +75,7 @@ public class GmailUsersDraftsEndpointConfigurationConfigurer extends org.apache. case "q": target.setQ(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -119,7 +119,7 @@ public class GmailUsersDraftsEndpointConfigurationConfigurer extends org.apache. case "q": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -167,13 +167,5 @@ public class GmailUsersDraftsEndpointConfigurationConfigurer extends org.apache. default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java index 0ddb75110ec..9efacd4e72d 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersEndpointConfigurationConfigurer.java @@ -31,7 +31,7 @@ public class GmailUsersEndpointConfigurationConfigurer extends org.apache.camel. map.put("Delegate", java.lang.String.class); map.put("MethodName", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -57,7 +57,7 @@ public class GmailUsersEndpointConfigurationConfigurer extends org.apache.camel. case "methodName": target.setMethodName(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -90,7 +90,7 @@ public class GmailUsersEndpointConfigurationConfigurer extends org.apache.camel. case "methodName": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -127,13 +127,5 @@ public class GmailUsersEndpointConfigurationConfigurer extends org.apache.camel. default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java index 1764fa26af6..ac7d7a6ff62 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersHistoryEndpointConfigurationConfigurer.java @@ -34,7 +34,7 @@ public class GmailUsersHistoryEndpointConfigurationConfigurer extends org.apache map.put("MethodName", java.lang.String.class); map.put("PageToken", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("StartHistoryId", java.math.BigInteger.class); map.put("UserId", java.lang.String.class); @@ -68,7 +68,7 @@ public class GmailUsersHistoryEndpointConfigurationConfigurer extends org.apache case "pageToken": target.setPageToken(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "starthistoryid": @@ -110,7 +110,7 @@ public class GmailUsersHistoryEndpointConfigurationConfigurer extends org.apache case "pageToken": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "starthistoryid": @@ -158,13 +158,5 @@ public class GmailUsersHistoryEndpointConfigurationConfigurer extends org.apache default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java index b89f4a986d8..e4e5bc61152 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersLabelsEndpointConfigurationConfigurer.java @@ -32,7 +32,7 @@ public class GmailUsersLabelsEndpointConfigurationConfigurer extends org.apache. map.put("Id", java.lang.String.class); map.put("MethodName", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -59,7 +59,7 @@ public class GmailUsersLabelsEndpointConfigurationConfigurer extends org.apache. case "methodName": target.setMethodName(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -93,7 +93,7 @@ public class GmailUsersLabelsEndpointConfigurationConfigurer extends org.apache. case "methodName": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -131,13 +131,5 @@ public class GmailUsersLabelsEndpointConfigurationConfigurer extends org.apache. default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java index 9d9f46b5e1a..5eac69a1d80 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer.java @@ -32,7 +32,7 @@ public class GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer extend map.put("MessageId", java.lang.String.class); map.put("MethodName", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -60,7 +60,7 @@ public class GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer extend case "methodName": target.setMethodName(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -95,7 +95,7 @@ public class GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer extend case "methodName": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -134,13 +134,5 @@ public class GmailUsersMessagesAttachmentsEndpointConfigurationConfigurer extend default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java index 0099eca53da..12725ed1bef 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersMessagesEndpointConfigurationConfigurer.java @@ -47,7 +47,7 @@ public class GmailUsersMessagesEndpointConfigurationConfigurer extends org.apach map.put("ProcessForCalendar", java.lang.Boolean.class); map.put("Q", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -101,7 +101,7 @@ public class GmailUsersMessagesEndpointConfigurationConfigurer extends org.apach case "q": target.setQ(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -162,7 +162,7 @@ public class GmailUsersMessagesEndpointConfigurationConfigurer extends org.apach case "q": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -227,13 +227,5 @@ public class GmailUsersMessagesEndpointConfigurationConfigurer extends org.apach default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java index fcbc8847765..d402794fc23 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GmailUsersThreadsEndpointConfigurationConfigurer.java @@ -39,7 +39,7 @@ public class GmailUsersThreadsEndpointConfigurationConfigurer extends org.apache map.put("PageToken", java.lang.String.class); map.put("Q", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); map.put("UserId", java.lang.String.class); ALL_OPTIONS = map; @@ -78,7 +78,7 @@ public class GmailUsersThreadsEndpointConfigurationConfigurer extends org.apache case "q": target.setQ(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; case "userid": @@ -124,7 +124,7 @@ public class GmailUsersThreadsEndpointConfigurationConfigurer extends org.apache case "q": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; case "userid": @@ -174,13 +174,5 @@ public class GmailUsersThreadsEndpointConfigurationConfigurer extends org.apache default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java index 06621f4c8ad..737dff3c444 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java @@ -26,7 +26,7 @@ public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport imp map.put("ClientId", java.lang.String.class); map.put("Configuration", org.apache.camel.component.google.mail.GoogleMailConfiguration.class); map.put("Delegate", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("BridgeErrorHandler", boolean.class); map.put("LazyStartProducer", boolean.class); map.put("AutowiredEnabled", boolean.class); @@ -69,7 +69,7 @@ public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport imp case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; case "refreshtoken": case "refreshToken": getOrCreateConfiguration(target).setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": getOrCreateConfiguration(target).setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": getOrCreateConfiguration(target).setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": getOrCreateConfiguration(target).setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; default: return false; @@ -104,7 +104,7 @@ public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport imp case "lazyStartProducer": return boolean.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; default: return null; @@ -141,13 +141,5 @@ public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport imp default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java index 82f1545c6c9..92e65ec2b72 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailConfigurationConfigurer.java @@ -30,7 +30,7 @@ public class GoogleMailConfigurationConfigurer extends org.apache.camel.support. map.put("Delegate", java.lang.String.class); map.put("MethodName", java.lang.String.class); map.put("RefreshToken", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("ServiceAccountKey", java.lang.String.class); ALL_OPTIONS = map; } @@ -54,7 +54,7 @@ public class GoogleMailConfigurationConfigurer extends org.apache.camel.support. case "methodName": target.setMethodName(property(camelContext, java.lang.String.class, value)); return true; case "refreshtoken": case "refreshToken": target.setRefreshToken(property(camelContext, java.lang.String.class, value)); return true; - case "scopes": target.setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.setScopes(property(camelContext, java.lang.String.class, value)); return true; case "serviceaccountkey": case "serviceAccountKey": target.setServiceAccountKey(property(camelContext, java.lang.String.class, value)); return true; default: return false; @@ -84,7 +84,7 @@ public class GoogleMailConfigurationConfigurer extends org.apache.camel.support. case "methodName": return java.lang.String.class; case "refreshtoken": case "refreshToken": return java.lang.String.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "serviceaccountkey": case "serviceAccountKey": return java.lang.String.class; default: return null; @@ -116,13 +116,5 @@ public class GoogleMailConfigurationConfigurer extends org.apache.camel.support. default: return null; } } - - @Override - public Object getCollectionValueType(Object target, String name, boolean ignoreCase) { - switch (ignoreCase ? name.toLowerCase() : name) { - case "scopes": return java.lang.String.class; - default: return null; - } - } } diff --git a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java index 9811b3ffee8..70741fe8352 100644 --- a/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java +++ b/components/camel-google/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java @@ -28,7 +28,7 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl map.put("ClientId", java.lang.String.class); map.put("Delegate", java.lang.String.class); map.put("InBody", java.lang.String.class); - map.put("Scopes", java.util.Collection.class); + map.put("Scopes", java.lang.String.class); map.put("SendEmptyMessageWhenIdle", boolean.class); map.put("BridgeErrorHandler", boolean.class); map.put("ExceptionHandler", org.apache.camel.spi.ExceptionHandler.class); @@ -102,7 +102,7 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl case "scheduler": target.setScheduler(property(camelContext, java.lang.Object.class, value)); return true; case "schedulerproperties": case "schedulerProperties": target.setSchedulerProperties(property(camelContext, java.util.Map.class, value)); return true; - case "scopes": target.getConfiguration().setScopes(property(camelContext, java.util.Collection.class, value)); return true; + case "scopes": target.getConfiguration().setScopes(property(camelContext, java.lang.String.class, value)); return true; case "sendemptymessagewhenidle": case "sendEmptyMessageWhenIdle": target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, value)); return true; case "serviceaccountkey": @@ -167,7 +167,7 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl case "scheduler": return java.lang.Object.class; case "schedulerproperties": case "schedulerProperties": return java.util.Map.class; - case "scopes": return java.util.Collection.class; + case "scopes": return java.lang.String.class; case "sendemptymessagewhenidle": case "sendEmptyMessageWhenIdle": return boolean.class; case "serviceaccountkey": @@ -248,7 +248,6 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl switch (ignoreCase ? name.toLowerCase() : name) { case "schedulerproperties": case "schedulerProperties": return java.lang.Object.class; - case "scopes": return java.lang.String.class; default: return null; } } diff --git a/components/camel-google/camel-google-mail/src/generated/resources/META-INF/org/apache/camel/component/google/mail/google-mail.json b/components/camel-google/camel-google-mail/src/generated/resources/META-INF/org/apache/camel/component/google/mail/google-mail.json index 46f93ac36c2..82f150d992b 100644 --- a/components/camel-google/camel-google-mail/src/generated/resources/META-INF/org/apache/camel/component/google/mail/google-mail.json +++ b/components/camel-google/camel-google-mail/src/generated/resources/META-INF/org/apache/camel/component/google/mail/google-mail.json @@ -29,7 +29,7 @@ "clientId": { "index": 1, "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" }, "configuration": { "index": 2, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" }, "delegate": { "index": 3, "kind": "property", "displayName": "Delegate", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Delegate for wide-domain service account" }, - "scopes": { "index": 4, "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.Collection<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "GMail scopes" }, + "scopes": { "index": 4, "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/developer [...] "bridgeErrorHandler": { "index": 5, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...] "lazyStartProducer": { "index": 6, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail [...] "autowiredEnabled": { "index": 7, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...] @@ -46,7 +46,7 @@ "clientId": { "index": 3, "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" }, "delegate": { "index": 4, "kind": "parameter", "displayName": "Delegate", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Delegate for wide-domain service account" }, "inBody": { "index": 5, "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" }, - "scopes": { "index": 6, "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.Collection<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "GMail scopes" }, + "scopes": { "index": 6, "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/develope [...] "sendEmptyMessageWhenIdle": { "index": 7, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." }, "bridgeErrorHandler": { "index": 8, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...] "exceptionHandler": { "index": 9, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By def [...] diff --git a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java index efb13d7101c..10771cc95b0 100644 --- a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java +++ b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java @@ -54,11 +54,11 @@ public class GoogleMailComponent if (config.getClientId() != null && !config.getClientId().isBlank() && config.getClientSecret() != null && !config.getClientSecret().isBlank()) { client = getClientFactory().makeClient(config.getClientId(), - config.getClientSecret(), config.getScopes(), + config.getClientSecret(), config.getScopesAsList(), config.getApplicationName(), config.getRefreshToken(), config.getAccessToken()); } else if (config.getServiceAccountKey() != null && !config.getServiceAccountKey().isBlank()) { client = getClientFactory().makeClient(getCamelContext(), config.getServiceAccountKey(), - config.getScopes(), config.getApplicationName(), config.getDelegate()); + config.getScopesAsList(), config.getApplicationName(), config.getDelegate()); } else { throw new IllegalArgumentException( "(clientId and clientSecret) or serviceAccountKey are required to create Gmail client"); diff --git a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java index 5c5497b710e..a6c5b092dae 100644 --- a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java +++ b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailConfiguration.java @@ -17,6 +17,7 @@ package org.apache.camel.component.google.mail; import java.util.Collection; +import java.util.List; import org.apache.camel.component.google.mail.internal.GoogleMailApiName; import org.apache.camel.spi.Configurer; @@ -53,7 +54,7 @@ public class GoogleMailConfiguration { @UriParam private String delegate; @UriParam - private Collection<String> scopes; + private String scopes; public GoogleMailApiName getApiName() { return apiName; @@ -158,16 +159,26 @@ public class GoogleMailConfiguration { this.delegate = delegate; } - public Collection<String> getScopes() { + public String getScopes() { return scopes; } + public Collection<String> getScopesAsList() { + if (scopes != null) { + return List.of(scopes.split(",")); + } else { + return null; + } + } + /** - * GMail scopes + * Specifies the level of permissions you want a calendar application to have to a user account. See + * https://developers.google.com/identity/protocols/googlescopes for more info. Multiple scopes can be separated by + * comma. * * @see com.google.api.services.gmail.GmailScopes */ - public void setScopes(Collection<String> scopes) { + public void setScopes(String scopes) { this.scopes = scopes; } } diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleMailComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleMailComponentBuilderFactory.java index 35a1cb8ec8a..dfded590cb0 100644 --- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleMailComponentBuilderFactory.java +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleMailComponentBuilderFactory.java @@ -112,17 +112,19 @@ public interface GoogleMailComponentBuilderFactory { } /** - * GMail scopes. + * Specifies the level of permissions you want a calendar application to + * have to a user account. See + * https://developers.google.com/identity/protocols/googlescopes for + * more info. Multiple scopes can be separated by comma. * - * The option is a: - * <code>java.util.Collection&lt;java.lang.String&gt;</code> type. + * The option is a: <code>java.lang.String</code> type. * * Group: common * * @param scopes the value to set * @return the dsl builder */ - default GoogleMailComponentBuilder scopes(java.util.Collection<java.lang.String> scopes) { + default GoogleMailComponentBuilder scopes(java.lang.String scopes) { doSetProperty("scopes", scopes); return this; } @@ -307,7 +309,7 @@ public interface GoogleMailComponentBuilderFactory { case "clientId": getOrCreateConfiguration((GoogleMailComponent) component).setClientId((java.lang.String) value); return true; case "configuration": ((GoogleMailComponent) component).setConfiguration((org.apache.camel.component.google.mail.GoogleMailConfiguration) value); return true; case "delegate": getOrCreateConfiguration((GoogleMailComponent) component).setDelegate((java.lang.String) value); return true; - case "scopes": getOrCreateConfiguration((GoogleMailComponent) component).setScopes((java.util.Collection) value); return true; + case "scopes": getOrCreateConfiguration((GoogleMailComponent) component).setScopes((java.lang.String) value); return true; case "bridgeErrorHandler": ((GoogleMailComponent) component).setBridgeErrorHandler((boolean) value); return true; case "lazyStartProducer": ((GoogleMailComponent) component).setLazyStartProducer((boolean) value); return true; case "autowiredEnabled": ((GoogleMailComponent) component).setAutowiredEnabled((boolean) value); return true; diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleMailEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleMailEndpointBuilderFactory.java index 32c5923f475..6c8626a47d5 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleMailEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleMailEndpointBuilderFactory.java @@ -100,25 +100,12 @@ public interface GoogleMailEndpointBuilderFactory { return this; } /** - * GMail scopes. + * Specifies the level of permissions you want a calendar application to + * have to a user account. See + * https://developers.google.com/identity/protocols/googlescopes for + * more info. Multiple scopes can be separated by comma. * - * The option is a: - * <code>java.util.Collection<java.lang.String></code> type. - * - * Group: common - * - * @param scopes the value to set - * @return the dsl builder - */ - default GoogleMailEndpointConsumerBuilder scopes(Collection<java.lang.String> scopes) { - doSetProperty("scopes", scopes); - return this; - } - /** - * GMail scopes. - * - * The option will be converted to a - * <code>java.util.Collection<java.lang.String></code> type. + * The option is a: <code>java.lang.String</code> type. * * Group: common * @@ -911,25 +898,12 @@ public interface GoogleMailEndpointBuilderFactory { return this; } /** - * GMail scopes. - * - * The option is a: - * <code>java.util.Collection<java.lang.String></code> type. - * - * Group: common - * - * @param scopes the value to set - * @return the dsl builder - */ - default GoogleMailEndpointProducerBuilder scopes(Collection<java.lang.String> scopes) { - doSetProperty("scopes", scopes); - return this; - } - /** - * GMail scopes. + * Specifies the level of permissions you want a calendar application to + * have to a user account. See + * https://developers.google.com/identity/protocols/googlescopes for + * more info. Multiple scopes can be separated by comma. * - * The option will be converted to a - * <code>java.util.Collection<java.lang.String></code> type. + * The option is a: <code>java.lang.String</code> type. * * Group: common * @@ -1126,25 +1100,12 @@ public interface GoogleMailEndpointBuilderFactory { return this; } /** - * GMail scopes. - * - * The option is a: - * <code>java.util.Collection<java.lang.String></code> type. - * - * Group: common + * Specifies the level of permissions you want a calendar application to + * have to a user account. See + * https://developers.google.com/identity/protocols/googlescopes for + * more info. Multiple scopes can be separated by comma. * - * @param scopes the value to set - * @return the dsl builder - */ - default GoogleMailEndpointBuilder scopes(Collection<java.lang.String> scopes) { - doSetProperty("scopes", scopes); - return this; - } - /** - * GMail scopes. - * - * The option will be converted to a - * <code>java.util.Collection<java.lang.String></code> type. + * The option is a: <code>java.lang.String</code> type. * * Group: common *
