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>