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 3cf5088f63c CAMEL-18515: camel-jbang - Command to list more from the 
catalog.
3cf5088f63c is described below

commit 3cf5088f63cd722ceefb3fd72a9e0b3ffa9905ad
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Sep 17 10:52:54 2022 +0200

    CAMEL-18515: camel-jbang - Command to list more from the catalog.
---
 .../core/commands/catalog/CatalogBaseCommand.java  | 42 +++++++++++++++++++---
 .../core/commands/catalog/CatalogComponent.java    |  5 ++-
 .../core/commands/catalog/CatalogDataFormat.java   |  3 ++
 .../core/commands/catalog/CatalogLanguage.java     |  3 ++
 .../jbang/core/commands/catalog/CatalogOther.java  |  3 ++
 5 files changed, 51 insertions(+), 5 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
index 0969aaa7bcc..9ca62028e39 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
@@ -28,6 +28,8 @@ 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.ArtifactModel;
 import picocli.CommandLine;
 
 public abstract class CatalogBaseCommand extends CamelCommand {
@@ -36,6 +38,10 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
                         description = "Sort by name, support-level, or 
description", defaultValue = "name")
     String sort;
 
+    @CommandLine.Option(names = { "--gav" },
+                        description = "Include column with Maven GAV", 
defaultValue = "false")
+    boolean gav;
+
     @CommandLine.Option(names = { "--filter" },
                         description = "Filter by name or description")
     String filterName;
@@ -48,6 +54,10 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
 
     abstract List<Row> collectRows();
 
+    String getGAV(ArtifactModel<?> model) {
+        return model.getGroupId() + ":" + model.getArtifactId() + ":" + 
model.getVersion();
+    }
+
     @Override
     public Integer call() throws Exception {
         List<Row> rows = collectRows();
@@ -64,10 +74,18 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
         rows.sort(this::sortRow);
 
         if (!rows.isEmpty()) {
-            System.out.println(AsciiTable.getTable(AsciiTable.NO_BORDERS, 
rows, Arrays.asList(
-                    new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).with(r -> r.name),
-                    new 
Column().header("LEVEL").dataAlign(HorizontalAlign.LEFT).with(r -> r.level),
-                    new 
Column().header("DESCRIPTION").dataAlign(HorizontalAlign.LEFT).with(r -> 
r.description))));
+            if (gav) {
+                System.out.println(AsciiTable.getTable(AsciiTable.NO_BORDERS, 
rows, Arrays.asList(
+                        new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).with(r -> r.name),
+                        new 
Column().header("ARTIFACT-ID").dataAlign(HorizontalAlign.LEFT).with(this::shortGav),
+                        new 
Column().header("LEVEL").dataAlign(HorizontalAlign.LEFT).with(r -> r.level),
+                        new 
Column().header("DESCRIPTION").dataAlign(HorizontalAlign.LEFT).with(this::shortDescription))));
+            } else {
+                System.out.println(AsciiTable.getTable(AsciiTable.NO_BORDERS, 
rows, Arrays.asList(
+                        new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).with(r -> r.name),
+                        new 
Column().header("LEVEL").dataAlign(HorizontalAlign.LEFT).with(r -> r.level),
+                        new 
Column().header("DESCRIPTION").dataAlign(HorizontalAlign.LEFT).with(this::shortDescription))));
+            }
         }
 
         return 0;
@@ -93,11 +111,27 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
         }
     }
 
+    String shortGav(Row r) {
+        // only output artifact id
+        return MavenGav.parseGav(r.gav).getArtifactId();
+    }
+
+    String shortDescription(Row r) {
+        if (r.deprecated) {
+            return "DEPRECATED: " + r.description;
+        } else {
+            return r.description;
+        }
+    }
+
     static class Row {
         String name;
+        String title;
         String level;
         String description;
         String label;
+        String gav;
+        boolean deprecated;
     }
 
 }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogComponent.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogComponent.java
index 9974d19d739..606e62c2a09 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogComponent.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogComponent.java
@@ -37,10 +37,13 @@ public class CatalogComponent extends CatalogBaseCommand {
         for (String name : catalog.findComponentNames()) {
             ComponentModel model = catalog.componentModel(name);
             Row row = new Row();
-            row.name = model.getName();
+            row.name = model.getScheme();
+            row.title = model.getTitle();
             row.level = model.getSupportLevel().name();
             row.description = model.getDescription();
             row.label = model.getLabel() != null ? model.getLabel() : "";
+            row.deprecated = model.isDeprecated();
+            row.gav = getGAV(model);
             rows.add(row);
         }
         return rows;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDataFormat.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDataFormat.java
index 43534150bac..55e984c896d 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDataFormat.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDataFormat.java
@@ -38,9 +38,12 @@ public class CatalogDataFormat extends CatalogBaseCommand {
             DataFormatModel model = catalog.dataFormatModel(name);
             Row row = new Row();
             row.name = model.getName();
+            row.title = model.getTitle();
             row.level = model.getSupportLevel().name();
             row.description = model.getDescription();
             row.label = model.getLabel() != null ? model.getLabel() : "";
+            row.deprecated = model.isDeprecated();
+            row.gav = getGAV(model);
             rows.add(row);
         }
         return rows;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogLanguage.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogLanguage.java
index a84045201ea..caa1130dc4d 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogLanguage.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogLanguage.java
@@ -38,9 +38,12 @@ public class CatalogLanguage extends CatalogBaseCommand {
             LanguageModel model = catalog.languageModel(name);
             Row row = new Row();
             row.name = model.getName();
+            row.title = model.getTitle();
             row.level = model.getSupportLevel().name();
             row.description = model.getDescription();
             row.label = model.getLabel() != null ? model.getLabel() : "";
+            row.deprecated = model.isDeprecated();
+            row.gav = getGAV(model);
             rows.add(row);
         }
         return rows;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogOther.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogOther.java
index c643739eeef..b55186ad6ea 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogOther.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogOther.java
@@ -38,9 +38,12 @@ public class CatalogOther extends CatalogBaseCommand {
             OtherModel model = catalog.otherModel(name);
             Row row = new Row();
             row.name = model.getName();
+            row.title = model.getTitle();
             row.level = model.getSupportLevel().name();
             row.description = model.getDescription();
             row.label = model.getLabel() != null ? model.getLabel() : "";
+            row.deprecated = model.isDeprecated();
+            row.gav = getGAV(model);
             rows.add(row);
         }
         return rows;

Reply via email to