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; }