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 a94587d1dc5687983a58d3f8524ae37d779aa556
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Jul 16 16:43:41 2025 +0200

    CAMEL-22247 - Camel Google Components: Make the scopes parameter a string 
in all the components - Google Calendar Streams
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../catalog/components/google-calendar-stream.json |  4 ++--
 .../GoogleCalendarStreamComponentConfigurer.java   | 12 ++---------
 .../GoogleCalendarStreamEndpointConfigurer.java    |  5 ++---
 .../calendar/stream/google-calendar-stream.json    |  4 ++--
 .../stream/GoogleCalendarStreamComponent.java      |  5 +++--
 .../stream/GoogleCalendarStreamConfiguration.java  | 23 ++++++++++++++++------
 ...oogleCalendarStreamComponentBuilderFactory.java | 10 +++++-----
 ...GoogleCalendarStreamEndpointBuilderFactory.java | 23 +++-------------------
 8 files changed, 36 insertions(+), 50 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-calendar-stream.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-calendar-stream.json
index bd6351d432e..fab000475de 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-calendar-stream.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-calendar-stream.json
@@ -34,7 +34,7 @@
     "delegate": { "index": 7, "kind": "property", "displayName": "Delegate", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Delegate for 
wide-domain service account" },
     "maxResults": { "index": 8, "kind": "property", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Max results to be 
returned" },
     "query": { "index": 9, "kind": "property", "displayName": "Query", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "The query to execute on 
calendar" },
-    "scopes": { "index": 10, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to  [...]
+    "scopes": { "index": 10, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to a user account. [...]
     "syncFlow": { "index": 11, "kind": "property", "displayName": "Sync Flow", 
"group": "consumer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Sync events, see 
https:\/\/developers.google.com\/calendar\/v3\/sync Note [...]
     "autowiredEnabled": { "index": 12, "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  [...]
     "clientFactory": { "index": 13, "kind": "property", "displayName": "Client 
Factory", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
client Factory" },
@@ -61,7 +61,7 @@
     "delegate": { "index": 6, "kind": "parameter", "displayName": "Delegate", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Delegate for 
wide-domain service account" },
     "maxResults": { "index": 7, "kind": "parameter", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Max results to be 
returned" },
     "query": { "index": 8, "kind": "parameter", "displayName": "Query", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "The query to execute on 
calendar" },
-    "scopes": { "index": 9, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to  [...]
+    "scopes": { "index": 9, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to a user account. [...]
     "sendEmptyMessageWhenIdle": { "index": 10, "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." },
     "syncFlow": { "index": 11, "kind": "parameter", "displayName": "Sync 
Flow", "group": "consumer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Sync events, see 
https:\/\/developers.google.com\/calendar\/v3\/sync Not [...]
     "bridgeErrorHandler": { "index": 12, "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 [...]
diff --git 
a/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
 
b/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
index cfa8807550a..b6dcbf8c405 100644
--- 
a/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
+++ 
b/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
@@ -65,7 +65,7 @@ public class GoogleCalendarStreamComponentConfigurer extends 
PropertyConfigurerS
         case "query": 
getOrCreateConfiguration(target).setQuery(property(camelContext, 
java.lang.String.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.List.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;
         case "syncflow":
@@ -113,7 +113,7 @@ public class GoogleCalendarStreamComponentConfigurer 
extends PropertyConfigurerS
         case "query": return java.lang.String.class;
         case "refreshtoken":
         case "refreshToken": return java.lang.String.class;
-        case "scopes": return java.util.List.class;
+        case "scopes": return java.lang.String.class;
         case "serviceaccountkey":
         case "serviceAccountKey": return java.lang.String.class;
         case "syncflow":
@@ -171,13 +171,5 @@ public class GoogleCalendarStreamComponentConfigurer 
extends PropertyConfigurerS
         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-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamEndpointConfigurer.java
 
b/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamEndpointConfigurer.java
index 965d43b7ffe..be293fb53e6 100644
--- 
a/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamEndpointConfigurer.java
+++ 
b/components/camel-google/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamEndpointConfigurer.java
@@ -74,7 +74,7 @@ public class GoogleCalendarStreamEndpointConfigurer extends 
PropertyConfigurerSu
         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.List.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":
@@ -146,7 +146,7 @@ public class GoogleCalendarStreamEndpointConfigurer extends 
PropertyConfigurerSu
         case "scheduler": return java.lang.Object.class;
         case "schedulerproperties":
         case "schedulerProperties": return java.util.Map.class;
-        case "scopes": return java.util.List.class;
+        case "scopes": return java.lang.String.class;
         case "sendemptymessagewhenidle":
         case "sendEmptyMessageWhenIdle": return boolean.class;
         case "serviceaccountkey":
@@ -242,7 +242,6 @@ public class GoogleCalendarStreamEndpointConfigurer extends 
PropertyConfigurerSu
         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-calendar/src/generated/resources/META-INF/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
 
b/components/camel-google/camel-google-calendar/src/generated/resources/META-INF/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
index bd6351d432e..fab000475de 100644
--- 
a/components/camel-google/camel-google-calendar/src/generated/resources/META-INF/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
+++ 
b/components/camel-google/camel-google-calendar/src/generated/resources/META-INF/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
@@ -34,7 +34,7 @@
     "delegate": { "index": 7, "kind": "property", "displayName": "Delegate", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Delegate for 
wide-domain service account" },
     "maxResults": { "index": 8, "kind": "property", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Max results to be 
returned" },
     "query": { "index": 9, "kind": "property", "displayName": "Query", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "The query to execute on 
calendar" },
-    "scopes": { "index": 10, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to  [...]
+    "scopes": { "index": 10, "kind": "property", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to a user account. [...]
     "syncFlow": { "index": 11, "kind": "property", "displayName": "Sync Flow", 
"group": "consumer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Sync events, see 
https:\/\/developers.google.com\/calendar\/v3\/sync Note [...]
     "autowiredEnabled": { "index": 12, "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  [...]
     "clientFactory": { "index": 13, "kind": "property", "displayName": "Client 
Factory", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": "The 
client Factory" },
@@ -61,7 +61,7 @@
     "delegate": { "index": 6, "kind": "parameter", "displayName": "Delegate", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Delegate for 
wide-domain service account" },
     "maxResults": { "index": 7, "kind": "parameter", "displayName": "Max 
Results", "group": "consumer", "label": "", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Max results to be 
returned" },
     "query": { "index": 8, "kind": "parameter", "displayName": "Query", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "The query to execute on 
calendar" },
-    "scopes": { "index": 9, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "array", 
"javaType": "java.util.List<java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to  [...]
+    "scopes": { "index": 9, "kind": "parameter", "displayName": "Scopes", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Specifies the level of 
permissions you want a calendar application to have to a user account. [...]
     "sendEmptyMessageWhenIdle": { "index": 10, "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." },
     "syncFlow": { "index": 11, "kind": "parameter", "displayName": "Sync 
Flow", "group": "consumer", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
 "configurationField": "configuration", "description": "Sync events, see 
https:\/\/developers.google.com\/calendar\/v3\/sync Not [...]
     "bridgeErrorHandler": { "index": 12, "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 [...]
diff --git 
a/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponent.java
 
b/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponent.java
index 3e434ee9b3f..e02ccb12948 100644
--- 
a/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponent.java
+++ 
b/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponent.java
@@ -50,11 +50,12 @@ public class GoogleCalendarStreamComponent extends 
HealthCheckComponent {
     public Calendar getClient(GoogleCalendarStreamConfiguration config) {
         if (client == null) {
             if (config.getClientId() != null && config.getClientSecret() != 
null) {
-                client = getClientFactory().makeClient(config.getClientId(), 
config.getClientSecret(), config.getScopes(),
+                client = getClientFactory().makeClient(config.getClientId(), 
config.getClientSecret(), config.getScopesAsList(),
                         config.getApplicationName(), config.getRefreshToken(),
                         config.getAccessToken(), config.getEmailAddress(), 
config.getP12FileName(), config.getUser());
             } else if (config.getServiceAccountKey() != null) {
-                client = getClientFactory().makeClient(getCamelContext(), 
config.getServiceAccountKey(), config.getScopes(),
+                client = getClientFactory().makeClient(getCamelContext(), 
config.getServiceAccountKey(),
+                        config.getScopesAsList(),
                         config.getApplicationName(), config.getDelegate());
             } else {
                 throw new IllegalArgumentException(
diff --git 
a/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamConfiguration.java
 
b/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamConfiguration.java
index e28450ec102..b546bd700c7 100644
--- 
a/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamConfiguration.java
+++ 
b/components/camel-google/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamConfiguration.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.google.calendar.stream;
 
-import java.util.Collections;
+import java.util.Collection;
 import java.util.List;
 
 import com.google.api.services.calendar.CalendarScopes;
@@ -31,13 +31,13 @@ import org.apache.camel.spi.UriPath;
  */
 @UriParams
 public class GoogleCalendarStreamConfiguration implements Cloneable {
-    private static final List<String> DEFAULT_SCOPES = 
Collections.singletonList(CalendarScopes.CALENDAR);
+    private static final String DEFAULT_SCOPES = CalendarScopes.CALENDAR;
 
     @UriPath
     @Metadata(required = true)
     private String index;
     @UriParam
-    private List<String> scopes = DEFAULT_SCOPES;
+    private String scopes = DEFAULT_SCOPES;
     @UriParam
     private String clientId;
     @UriParam
@@ -139,18 +139,29 @@ public class GoogleCalendarStreamConfiguration implements 
Cloneable {
         this.applicationName = applicationName;
     }
 
-    public List<String> getScopes() {
+    public String getScopes() {
         return scopes;
     }
 
     /**
      * Specifies the level of permissions you want a calendar application to 
have to a user account. See
-     * https://developers.google.com/calendar/auth for more info.
+     * https://developers.google.com/identity/protocols/googlescopes for more 
info. Multiple scopes can be separated by
+     * comma.
+     *
+     * @see com.google.api.services.calendar.CalendarScopes
      */
-    public void setScopes(List<String> scopes) {
+    public void setScopes(String scopes) {
         this.scopes = scopes;
     }
 
+    public Collection<String> getScopesAsList() {
+        if (scopes != null) {
+            return List.of(scopes.split(","));
+        } else {
+            return null;
+        }
+    }
+
     public String getIndex() {
         return index;
     }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleCalendarStreamComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleCalendarStreamComponentBuilderFactory.java
index 0cd2cd427a0..6868535747e 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleCalendarStreamComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/GoogleCalendarStreamComponentBuilderFactory.java
@@ -227,17 +227,17 @@ public interface 
GoogleCalendarStreamComponentBuilderFactory {
         /**
          * Specifies the level of permissions you want a calendar application 
to
          * have to a user account. See
-         * https://developers.google.com/calendar/auth for more info.
+         * https://developers.google.com/identity/protocols/googlescopes for
+         * more info. Multiple scopes can be separated by comma.
          * 
-         * The option is a:
-         * 
&lt;code&gt;java.util.List&amp;lt;java.lang.String&amp;gt;&lt;/code&gt; type.
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
          * Group: consumer
          * 
          * @param scopes the value to set
          * @return the dsl builder
          */
-        default GoogleCalendarStreamComponentBuilder 
scopes(java.util.List<java.lang.String> scopes) {
+        default GoogleCalendarStreamComponentBuilder scopes(java.lang.String 
scopes) {
             doSetProperty("scopes", scopes);
             return this;
         }
@@ -477,7 +477,7 @@ public interface 
GoogleCalendarStreamComponentBuilderFactory {
             case "delegate": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setDelegate((java.lang.String) value); return true;
             case "maxResults": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setMaxResults((int) value); return true;
             case "query": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setQuery((java.lang.String) value); return true;
-            case "scopes": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setScopes((java.util.List) value); return true;
+            case "scopes": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setScopes((java.lang.String) value); return true;
             case "syncFlow": 
getOrCreateConfiguration((GoogleCalendarStreamComponent) 
component).setSyncFlow((boolean) value); return true;
             case "autowiredEnabled": ((GoogleCalendarStreamComponent) 
component).setAutowiredEnabled((boolean) value); return true;
             case "clientFactory": ((GoogleCalendarStreamComponent) 
component).setClientFactory((org.apache.camel.component.google.calendar.GoogleCalendarClientFactory)
 value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCalendarStreamEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCalendarStreamEndpointBuilderFactory.java
index d9a64fbe0a5..dc7df527ab4 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCalendarStreamEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCalendarStreamEndpointBuilderFactory.java
@@ -211,27 +211,10 @@ public interface 
GoogleCalendarStreamEndpointBuilderFactory {
         /**
          * Specifies the level of permissions you want a calendar application 
to
          * have to a user account. See
-         * https://developers.google.com/calendar/auth for more info.
+         * https://developers.google.com/identity/protocols/googlescopes for
+         * more info. Multiple scopes can be separated by comma.
          * 
-         * The option is a: <code>java.util.List&lt;java.lang.String&gt;</code>
-         * type.
-         * 
-         * Group: consumer
-         * 
-         * @param scopes the value to set
-         * @return the dsl builder
-         */
-        default GoogleCalendarStreamEndpointBuilder 
scopes(List<java.lang.String> scopes) {
-            doSetProperty("scopes", scopes);
-            return this;
-        }
-        /**
-         * Specifies the level of permissions you want a calendar application 
to
-         * have to a user account. See
-         * https://developers.google.com/calendar/auth for more info.
-         * 
-         * The option will be converted to a
-         * <code>java.util.List&lt;java.lang.String&gt;</code> type.
+         * The option is a: <code>java.lang.String</code> type.
          * 
          * Group: consumer
          * 

Reply via email to