This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new f6dbcaa8d1a CAMEL-19772: camel-core - Dump routes to include custom beans f6dbcaa8d1a is described below commit f6dbcaa8d1a2126b810730e3702df706751360a8 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Aug 28 07:52:49 2023 +0200 CAMEL-19772: camel-core - Dump routes to include custom beans --- .../java/org/apache/camel/main/KameletMain.java | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java index b93f55abde2..2071bd54077 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -83,6 +84,7 @@ import org.apache.camel.spi.RoutesLoader; import org.apache.camel.spi.UriFactoryResolver; import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder; import org.apache.camel.support.DefaultContextReloadStrategy; +import org.apache.camel.support.ObjectHelper; import org.apache.camel.support.PluginHelper; import org.apache.camel.support.RouteOnDemandReloadStrategy; import org.apache.camel.support.service.ServiceHelper; @@ -845,11 +847,34 @@ public class KameletMain extends MainCommandLineSupport { String key = v.getName(); PropertyValue src = v.getOriginalPropertyValue(); Object val = src.getValue(); - // ref was string value if (val instanceof TypedStringValue tsv) { properties.put(key, tsv.getValue()); } else if (val instanceof BeanReference br) { properties.put(key, "#bean:" + br.getBeanName()); + } else if (val instanceof List) { + int i = 0; + Iterator<?> it = ObjectHelper.createIterator(val); + while (it.hasNext()) { + String k = key + "[" + i + "]"; + val = it.next(); + if (val instanceof TypedStringValue tsv) { + properties.put(k, tsv.getValue()); + } else if (val instanceof BeanReference br) { + properties.put(k, "#bean:" + br.getBeanName()); + } + i++; + } + } else if (val instanceof Map) { + Map<TypedStringValue, Object> map = (Map) val; + for (Map.Entry<TypedStringValue, Object> entry : map.entrySet()) { + String k = key + "[" + entry.getKey().getValue() + "]"; + val = entry.getValue(); + if (val instanceof TypedStringValue tsv) { + properties.put(k, tsv.getValue()); + } else if (val instanceof BeanReference br) { + properties.put(k, "#bean:" + br.getBeanName()); + } + } } } }