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

acosentino pushed a commit to branch CAMEL-17339-weather
in repository https://gitbox.apache.org/repos/asf/camel.git

commit eb9982f9554c13ba31f0389b674a5a782d356bfa
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Wed Jul 23 11:52:45 2025 +0200

    CAMEL-17339 - Avoid List<String> as configuration parameter types in 
Endpoint configurations - Camel Weather
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 .../component/weather/WeatherConfiguration.java    | 28 +++++++++-------------
 .../camel/component/weather/WeatherQuery.java      |  4 ++--
 .../ROOT/pages/camel-4x-upgrade-guide-4_14.adoc    |  4 ++++
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git 
a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
 
b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
index 39b59a3dc9a..5a7ddf7734a 100644
--- 
a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
+++ 
b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.component.weather;
 
-import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Scanner;
 
@@ -27,7 +25,6 @@ import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
-import org.apache.camel.support.ObjectHelper;
 import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
 import org.apache.hc.client5.http.impl.classic.HttpClients;
 
@@ -71,7 +68,7 @@ public class WeatherConfiguration {
     @UriParam(label = "filter")
     private String zip;
     @UriParam(label = "filter", javaType = "java.lang.String")
-    private List<String> ids;
+    private String ids;
     @UriParam(label = "filter")
     private Integer cnt;
     @UriParam(label = "security")
@@ -257,25 +254,22 @@ public class WeatherConfiguration {
         this.zip = zip;
     }
 
-    public List<String> getIds() {
+    public String getIds() {
         return ids;
     }
 
-    /**
-     * List of id's of city/stations. You can separate multiple ids by comma.
-     */
-    public void setIds(String id) {
-        if (ids == null) {
-            ids = new ArrayList<>();
-        }
-        Iterator<?> it = ObjectHelper.createIterator(id);
-        while (it.hasNext()) {
-            String myId = (String) it.next();
-            ids.add(myId);
+    public List<String> getIdsAsList() {
+        if (ids != null) {
+            return List.of(ids.split(","));
+        } else {
+            return null;
         }
     }
 
-    public void setIds(List<String> ids) {
+    /**
+     * List of id's of city/stations. You can separate multiple ids by comma.
+     */
+    public void setIds(String ids) {
         this.ids = ids;
     }
 
diff --git 
a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherQuery.java
 
b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherQuery.java
index db581e646ef..4550af8c677 100644
--- 
a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherQuery.java
+++ 
b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherQuery.java
@@ -50,7 +50,7 @@ public class WeatherQuery {
         } else if (!isEmpty(weatherConfiguration.getZip())) {
             location = "zip=" + weatherConfiguration.getZip();
         } else if (weatherConfiguration.getIds() != null && 
!weatherConfiguration.getIds().isEmpty()) {
-            location = "id=" + String.join(",", weatherConfiguration.getIds());
+            location = "id=" + weatherConfiguration.getIds();
         } else if (isEmpty(location) || "current".equals(location)) {
             GeoLocation geoLocation = getCurrentGeoLocation();
             weatherConfiguration.setLat(geoLocation.getLatitude());
@@ -104,7 +104,7 @@ public class WeatherQuery {
                 answer = "find?";
             }
         } else if (weatherConfiguration.getIds() != null && 
!weatherConfiguration.getIds().isEmpty()) {
-            if (weatherConfiguration.getIds().size() == 1) {
+            if (weatherConfiguration.getIdsAsList().size() == 1) {
                 if (!isEmpty(weatherConfiguration.getPeriod())) {
                     if (weatherConfiguration.getWeatherApi() == 
WeatherApi.Hourly) {
                         answer = "forecast?";
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
index c015d5e96dc..b060534da84 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
@@ -42,3 +42,7 @@ The configKeys parameter for camel-dapr has been defined as 
String instead of Li
 
 The availableZones parameter for camel-huawei-dms has been defined as String 
instead of List<String>. For the migration users will need to, eventually, 
define availableZones as a comma separated list of available zones instead of a 
List instance. For more information the related issue is CAMEL-17339.
 
+=== camel-weather
+
+The ids parameter for camel-weather has been defined as String instead of 
List<String>. For the migration users will need to, eventually, define ids as a 
comma separated list of id instead of a List instance. For more information the 
related issue is CAMEL-17339.
+

Reply via email to