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 12181e8e7d0 camel-jbang - doc kamelet
12181e8e7d0 is described below

commit 12181e8e7d07eda140349a00c0d28ad552eb5686
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Sep 19 21:51:30 2022 +0200

    camel-jbang - doc kamelet
---
 .../dsl/jbang/core/commands/catalog/CatalogDoc.java | 21 +++++++++++++++++++++
 .../core/commands/catalog/KameletCatalogHelper.java | 19 +++++++++++++++++++
 .../jbang/core/commands/catalog/KameletModel.java   |  2 ++
 3 files changed, 42 insertions(+)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
index 0371ecc780c..66ee94a541f 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
@@ -30,6 +30,7 @@ import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
 import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.main.download.MavenGav;
 import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.DataFormatModel;
@@ -124,6 +125,26 @@ public class CatalogDoc extends CamelCommand {
         System.out.println("");
         System.out.printf("%s%n", km.description);
         System.out.println("");
+        if (km.dependencies != null && !km.dependencies.isEmpty()) {
+            System.out.println("");
+            for (String dep : km.dependencies) {
+                MavenGav gav = MavenGav.parseGav(dep);
+                if ("camel-core".equals(gav.getArtifactId())) {
+                    // camel-core is implied so skip
+                    continue;
+                }
+                System.out.println("    <dependency>");
+                System.out.println("        <groupId>" + gav.getGroupId() + 
"</groupId>");
+                System.out.println("        <artifactId>" + 
gav.getArtifactId() + "</artifactId>");
+                String v = gav.getVersion();
+                if (v == null) {
+                    v = catalog.getCatalogVersion();
+                }
+                System.out.println("        <version>" + v + "</version>");
+                System.out.println("    </dependency>");
+            }
+            System.out.println("");
+        }
         if (km.properties != null && !km.properties.isEmpty()) {
             var filtered = filterKameletOptions(filter, 
km.properties.values());
             int total1 = km.properties.size();
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
index cce7b7e0ac4..7ce469f9528 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletCatalogHelper.java
@@ -39,6 +39,8 @@ public final class KameletCatalogHelper {
         km.supportLevel = getSupportLevel(kamelet);
         km.description = getDescription(kamelet);
         if (all) {
+            km.dependencies = getDependencies(kamelet);
+
             Map<String, Object> props = getProperties(kamelet);
             if (props != null) {
                 km.properties = new LinkedHashMap<>();
@@ -201,4 +203,21 @@ public final class KameletCatalogHelper {
         m = def.getClass().getMethod("getProperties");
         return (Map<String, Object>) ObjectHelper.invokeMethod(m, def);
     }
+
+    private static List<String> getDependencies(Object kamelet) throws 
Exception {
+        List<String> answer = new ArrayList<>();
+        Method m = kamelet.getClass().getMethod("getSpec");
+        Object spec = ObjectHelper.invokeMethod(m, kamelet);
+        m = spec.getClass().getMethod("getDependencies");
+        List<Object> list = (List<Object>) ObjectHelper.invokeMethod(m, spec);
+        if (list != null && !list.isEmpty()) {
+            for (var en : list) {
+                String t = en.toString();
+                t = StringHelper.removeLeadingAndEndingQuotes(t);
+                answer.add(t);
+            }
+        }
+        return answer.isEmpty() ? null : answer;
+    }
+
 }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletModel.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletModel.java
index cbf7f03a948..62ac3e3c6fe 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletModel.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/KameletModel.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.dsl.jbang.core.commands.catalog;
 
+import java.util.List;
 import java.util.Map;
 
 public class KameletModel {
@@ -25,5 +26,6 @@ public class KameletModel {
     String supportLevel;
     String description;
     Map<String, KameletOptionModel> properties;
+    List<String> dependencies;
 
 }

Reply via email to