You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/12/30 12:04:44 UTC
[camel] 28/30: CAMEL-17384: Developer Console SPI
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch console
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 78e097b84c126dc1c13f5f156965452eb40fb1e7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Dec 30 10:05:24 2021 +0100
CAMEL-17384: Developer Console SPI
---
.../camel/catalog/console/CatalogConsole.java | 57 +++++++---------------
dsl/camel-kamelet-main/pom.xml | 4 ++
2 files changed, 22 insertions(+), 39 deletions(-)
diff --git a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
index c7f94ff..183d083 100644
--- a/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
+++ b/catalog/camel-catalog-console/src/main/java/org/apache/camel/catalog/console/CatalogConsole.java
@@ -22,9 +22,7 @@ import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.impl.console.AbstractDevConsole;
import org.apache.camel.spi.annotations.DevConsole;
-import org.apache.camel.tooling.model.ComponentModel;
-import org.apache.camel.tooling.model.DataFormatModel;
-import org.apache.camel.tooling.model.LanguageModel;
+import org.apache.camel.tooling.model.ArtifactModel;
@DevConsole("catalog")
public class CatalogConsole extends AbstractDevConsole {
@@ -40,43 +38,24 @@ public class CatalogConsole extends AbstractDevConsole {
// only text is supported
StringBuilder sb = new StringBuilder();
- // components
- for (String name : getCamelContext().getComponentNames()) {
- ComponentModel model = catalog.componentModel(name);
- if (model != null) {
- sb.append(String.format("\n %s (%s)", name, model.getSupportLevel()));
- if (model.isDeprecated()) {
- sb.append(" (deprecated)");
- }
- } else {
- sb.append("\n ").append(name);
- }
- }
- // data formats
- for (String name : getCamelContext().getDataFormatNames()) {
- DataFormatModel model = catalog.dataFormatModel(name);
- if (model != null) {
- sb.append(String.format("\n %s (%s)", name, model.getSupportLevel()));
- if (model.isDeprecated()) {
- sb.append(" (deprecated)");
- }
- } else {
- sb.append("\n ").append(name);
- }
- }
- // languages
- for (String name : getCamelContext().getLanguageNames()) {
- LanguageModel model = catalog.languageModel(name);
- if (model != null) {
- sb.append(String.format("\n %s (%s)", name, model.getSupportLevel()));
- if (model.isDeprecated()) {
- sb.append(" (deprecated)");
- }
- } else {
- sb.append("\n ").append(name);
- }
- }
+ sb.append("\nComponents:\n");
+ getCamelContext().getComponentNames().forEach(n -> appendModel(catalog.componentModel(n), sb));
+ sb.append("\n\nLanguages:\n");
+ getCamelContext().getLanguageNames().forEach(n -> appendModel(catalog.languageModel(n), sb));
+ sb.append("\n\nData Formats:\n");
+ getCamelContext().getDataFormatNames().forEach(n -> appendModel(catalog.dataFormatModel(n), sb));
return sb.toString();
}
+
+ private static void appendModel(ArtifactModel<?> model, StringBuilder sb) {
+ if (model != null) {
+ String level = model.getSupportLevel().toString();
+ if (model.isDeprecated()) {
+ level += "-deprecated";
+ }
+ sb.append(String.format("\n %s %s %s %s %s", model.getTitle(), model.getArtifactId(), level,
+ model.getFirstVersionShort(), model.getDescription()));
+ }
+ }
}
diff --git a/dsl/camel-kamelet-main/pom.xml b/dsl/camel-kamelet-main/pom.xml
index da6f5a3..cd69ecf 100644
--- a/dsl/camel-kamelet-main/pom.xml
+++ b/dsl/camel-kamelet-main/pom.xml
@@ -86,6 +86,10 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-catalog</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-catalog-console</artifactId>
+ </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>