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());
+                                }
+                            }
                         }
                     }
                 }

Reply via email to