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 c98a4a20e06 CAMEL-20810: camel-jbang - Add camel get platform-http 
command
c98a4a20e06 is described below

commit c98a4a20e069cf3d171175734f7bab37e2f1db94
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 29 15:42:15 2024 +0200

    CAMEL-20810: camel-jbang - Add camel get platform-http command
---
 .../platform/http/PlatformHttpConsole.java         |   6 ++
 .../camel/cli/connector/LocalCliConnector.java     |   7 ++
 .../dsl/jbang/core/commands/CamelJBangMain.java    |   1 +
 .../{ListService.java => ListPlatformHttp.java}    | 113 +++++++--------------
 .../jbang/core/commands/process/ListService.java   |   1 -
 5 files changed, 52 insertions(+), 76 deletions(-)

diff --git 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
index 3263348f505..5e8186c3981 100644
--- 
a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
+++ 
b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpConsole.java
@@ -92,6 +92,12 @@ public class PlatformHttpConsole extends AbstractDevConsole {
             if (model.getVerbs() != null) {
                 jo.put("verbs", model.getVerbs());
             }
+            if (model.getConsumes() != null) {
+                jo.put("consumes", model.getConsumes());
+            }
+            if (model.getProduces() != null) {
+                jo.put("produces", model.getProduces());
+            }
             list.add(jo);
         }
         return list;
diff --git 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 1fdfb264407..390c66d04d3 100644
--- 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -976,6 +976,13 @@ public class LocalCliConnector extends ServiceSupport 
implements CliConnector, C
                         root.put("services", json);
                     }
                 }
+                DevConsole dc18 = dcr.resolveById("platform-http");
+                if (dc18 != null) {
+                    JsonObject json = (JsonObject) 
dc18.call(DevConsole.MediaType.JSON);
+                    if (json != null && !json.isEmpty()) {
+                        root.put("platform-http", json);
+                    }
+                }
             }
             // various details
             JsonObject mem = collectMemory();
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 60844e1e3af..b2a1978b1ef 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
@@ -98,6 +98,7 @@ public class CamelJBangMain implements Callable<Integer> {
                         .addSubcommand("circuit-breaker", new CommandLine(new 
ListCircuitBreaker(main)))
                         .addSubcommand("metric", new CommandLine(new 
ListMetric(main)))
                         .addSubcommand("service", new CommandLine(new 
ListService(main)))
+                        .addSubcommand("platform-http", new CommandLine(new 
ListPlatformHttp(main)))
                         .addSubcommand("source", new CommandLine(new 
CamelSourceAction(main)))
                         .addSubcommand("route-dump", new CommandLine(new 
CamelRouteDumpAction(main)))
                         .addSubcommand("startup-recorder", new CommandLine(new 
CamelStartupRecorderAction(main)))
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
similarity index 60%
copy from 
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
copy to 
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
index b49f224cf98..b4d59e2b818 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
@@ -34,9 +34,9 @@ import org.apache.camel.util.json.JsonObject;
 import picocli.CommandLine;
 import picocli.CommandLine.Command;
 
-@Command(name = "service",
-         description = "Get services of Camel integrations", sortOptions = 
false)
-public class ListService extends ProcessWatchCommand {
+@Command(name = "platform-http",
+         description = "Get embedded HTTP services of Camel integrations", 
sortOptions = false)
+public class ListPlatformHttp extends ProcessWatchCommand {
 
     @CommandLine.Parameters(description = "Name or pid of running Camel 
integration", arity = "0..1")
     String name = "*";
@@ -45,19 +45,7 @@ public class ListService extends ProcessWatchCommand {
                         description = "Sort by pid, name or age", defaultValue 
= "pid")
     String sort;
 
-    @CommandLine.Option(names = { "--metadata" },
-                        description = "Show service metadata (only available 
for some services)")
-    boolean metadata;
-
-    @CommandLine.Option(names = { "--short-uri" },
-                        description = "List endpoint URI without query 
parameters (short)")
-    boolean shortUri;
-
-    @CommandLine.Option(names = { "--wide-uri" },
-                        description = "List endpoint URI in full details")
-    boolean wideUri;
-
-    public ListService(CamelJBangMain main) {
+    public ListPlatformHttp(CamelJBangMain main) {
         super(main);
     }
 
@@ -85,22 +73,20 @@ public class ListService extends ProcessWatchCommand {
                         row.uptime = extractSince(ph);
                         row.age = TimeUtils.printSince(row.uptime);
 
-                        // platform-http is special
-                        JsonObject jo = (JsonObject) root.get("services");
+                        JsonObject jo = (JsonObject) root.get("platform-http");
                         if (jo != null) {
-                            JsonArray arr = (JsonArray) jo.get("services");
+                            String server = jo.getString("server");
+                            JsonArray arr = (JsonArray) jo.get("endpoints");
                             if (arr != null) {
                                 for (int i = 0; i < arr.size(); i++) {
                                     row = row.copy();
                                     jo = (JsonObject) arr.get(i);
-                                    row.component = jo.getString("component");
-                                    row.direction = jo.getString("direction");
-                                    row.hosted = 
jo.getBooleanOrDefault("hosted", false);
-                                    row.protocol = jo.getString("protocol");
-                                    row.address = jo.getString("address");
-                                    row.endpoint = jo.getString("endpointUri");
-                                    row.hits = 
jo.getLongOrDefault("totalMessages", 0);
-                                    row.metadata = jo.getMap("metadata");
+                                    row.server = server;
+                                    row.url = jo.getString("url");
+                                    row.path = jo.getString("path");
+                                    row.verbs = jo.getString("verbs");
+                                    row.consumes = jo.getString("consumes");
+                                    row.produces = jo.getString("produces");
                                     rows.add(row);
                                 }
                             }
@@ -116,23 +102,30 @@ public class ListService extends ProcessWatchCommand {
                     new 
Column().header("PID").headerAlign(HorizontalAlign.CENTER).with(r -> r.pid),
                     new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, 
OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.name),
-                    new 
Column().header("COMPONENT").dataAlign(HorizontalAlign.LEFT).with(r -> 
r.component),
-                    new 
Column().header("DIR").dataAlign(HorizontalAlign.LEFT).with(r -> r.direction),
-                    new 
Column().header("PROTOCOL").dataAlign(HorizontalAlign.LEFT).with(this::getProtocol),
-                    new 
Column().header("SERVICE").dataAlign(HorizontalAlign.LEFT).with(this::getService),
-                    new 
Column().header("METADATA").visible(metadata).dataAlign(HorizontalAlign.LEFT).with(this::getMetadata),
-                    new 
Column().header("TOTAL").dataAlign(HorizontalAlign.RIGHT).with(r -> "" + 
r.hits),
-                    new 
Column().header("ENDPOINT").visible(!wideUri).dataAlign(HorizontalAlign.LEFT)
-                            .maxWidth(90, OverflowBehaviour.ELLIPSIS_RIGHT)
-                            .with(this::getUri),
-                    new 
Column().header("ENDPOINT").visible(wideUri).dataAlign(HorizontalAlign.LEFT)
-                            .maxWidth(140, OverflowBehaviour.NEWLINE)
-                            .with(this::getUri))));
+                    new 
Column().header("URL").dataAlign(HorizontalAlign.LEFT).with(r -> r.url),
+                    new 
Column().header("VERB").dataAlign(HorizontalAlign.LEFT).with(r -> r.verbs),
+                    new 
Column().header("CONTENT").dataAlign(HorizontalAlign.LEFT).with(this::getContent))));
         }
 
         return 0;
     }
 
+    private String getContent(Row r) {
+        StringJoiner sj = new StringJoiner("   ");
+        if (r.consumes != null || r.produces != null) {
+            if (r.consumes != null) {
+                sj.add("accept: " + r.consumes);
+            }
+            if (r.produces != null) {
+                sj.add("produces: " + r.produces);
+            }
+        }
+        if (sj.length() > 0) {
+            return sj.toString();
+        }
+        return "";
+    }
+
     protected int sortRow(Row o1, Row o2) {
         String s = sort;
         int negate = 1;
@@ -152,47 +145,17 @@ public class ListService extends ProcessWatchCommand {
         }
     }
 
-    private String getUri(Row r) {
-        String u = r.endpoint;
-        if (shortUri) {
-            int pos = u.indexOf('?');
-            if (pos > 0) {
-                u = u.substring(0, pos);
-            }
-        }
-        return u;
-    }
-
-    private String getProtocol(Row r) {
-        return r.protocol;
-    }
-
-    private String getService(Row r) {
-        return r.address;
-    }
-
-    private String getMetadata(Row r) {
-        if (r.metadata != null) {
-            StringJoiner sj = new StringJoiner(" ");
-            r.metadata.forEach((k, v) -> sj.add(k + "=" + v));
-            return sj.toString();
-        }
-        return "";
-    }
-
     private static class Row implements Cloneable {
         String pid;
         String name;
         String age;
         long uptime;
-        String component;
-        String direction;
-        boolean hosted;
-        String protocol;
-        String address;
-        String endpoint;
-        long hits;
-        JsonObject metadata;
+        String server;
+        String url;
+        String path;
+        String verbs;
+        String consumes;
+        String produces;
 
         Row copy() {
             try {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
index b49f224cf98..fa71603c350 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListService.java
@@ -85,7 +85,6 @@ public class ListService extends ProcessWatchCommand {
                         row.uptime = extractSince(ph);
                         row.age = TimeUtils.printSince(row.uptime);
 
-                        // platform-http is special
                         JsonObject jo = (JsonObject) root.get("services");
                         if (jo != null) {
                             JsonArray arr = (JsonArray) jo.get("services");

Reply via email to