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;