This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch gen-trans in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9ee79fd12b4828a0492b2fc79a8d74310b9f79f7 Author: Claus Ibsen <[email protected]> AuthorDate: Thu Feb 15 10:59:00 2024 +0100 CAMEL-20419: Generate json metadata for @DataTypeTransformer --- .../dsl/jbang/core/commands/CamelJBangMain.java | 2 + .../core/commands/catalog/CatalogBaseCommand.java | 6 ++- .../core/commands/catalog/CatalogTransformer.java | 57 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java index 79c6b90dfe8..5d7b3620824 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelJBangMain.java @@ -28,6 +28,7 @@ import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogKamelet; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogLanguage; import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogOther; +import org.apache.camel.dsl.jbang.core.commands.catalog.CatalogTransformer; import org.apache.camel.dsl.jbang.core.commands.config.ConfigCommand; import org.apache.camel.dsl.jbang.core.commands.config.ConfigGet; import org.apache.camel.dsl.jbang.core.commands.config.ConfigList; @@ -117,6 +118,7 @@ public class CamelJBangMain implements Callable<Integer> { .addSubcommand("component", new CommandLine(new CatalogComponent(main))) .addSubcommand("dataformat", new CommandLine(new CatalogDataFormat(main))) .addSubcommand("language", new CommandLine(new CatalogLanguage(main))) + .addSubcommand("transformer", new CommandLine(new CatalogTransformer(main))) .addSubcommand("other", new CommandLine(new CatalogOther(main))) .addSubcommand("kamelet", new CommandLine(new CatalogKamelet(main)))) .addSubcommand("doc", new CommandLine(new CatalogDoc(main))) 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 b92a5944ef8..0d4c79cfd76 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 @@ -143,7 +143,7 @@ public abstract class CatalogBaseCommand extends CamelCommand { "native", row.nativeSupported)).collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( - new Column().header("NAME").visible(!gav).dataAlign(HorizontalAlign.LEFT).maxWidth(30) + new Column().header("NAME").visible(!gav).dataAlign(HorizontalAlign.LEFT).maxWidth(nameWidth()) .with(r -> r.name), new Column().header("ARTIFACT-ID").visible(gav).dataAlign(HorizontalAlign.LEFT).with(this::shortGav), new Column().header("LEVEL").dataAlign(HorizontalAlign.LEFT).with(r -> r.level), @@ -157,6 +157,10 @@ public abstract class CatalogBaseCommand extends CamelCommand { return 0; } + int nameWidth() { + return 30; + } + int sortRow(Row o1, Row o2) { String s = sort; int negate = 1; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogTransformer.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogTransformer.java new file mode 100644 index 00000000000..f527c113a27 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogTransformer.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.dsl.jbang.core.commands.catalog; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; +import org.apache.camel.tooling.model.TransformerModel; +import picocli.CommandLine; + [email protected](name = "transformer", + description = "List data type transformers from the Camel Catalog", sortOptions = false) +public class CatalogTransformer extends CatalogBaseCommand { + + public CatalogTransformer(CamelJBangMain main) { + super(main); + } + + @Override + int nameWidth() { + return 60; + } + + @Override + List<Row> collectRows() { + List<Row> rows = new ArrayList<>(); + for (String name : catalog.findTransformerNames()) { + TransformerModel model = catalog.transformerModel(name); + if (model != null) { + Row row = new Row(); + row.name = model.getName(); + row.title = model.getTitle(); + row.description = model.getDescription(); + row.deprecated = model.isDeprecated(); + row.gav = getGAV(model); + rows.add(row); + } + } + return rows; + } + +}
