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 c550a0097e9 CAMEL-20878: camel-jbang - get rest
c550a0097e9 is described below

commit c550a0097e974e514ac98747d525f36b2c3384a2
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Jun 15 16:22:10 2024 +0200

    CAMEL-20878: camel-jbang - get rest
---
 .../apache/camel/catalog/dev-consoles.properties   |  1 +
 .../apache/camel/catalog/dev-consoles/rest.json    | 15 ++++++++
 .../rest/openapi/RestOpenApiProcessor.java         |  2 +-
 .../camel/component/rest/DefaultRestRegistry.java  | 18 ++++++----
 .../apache/camel/component/rest/RestEndpoint.java  |  2 +-
 .../camel/component/webhook/MultiRestConsumer.java |  2 +-
 .../java/org/apache/camel/spi/RestRegistry.java    | 35 +++++++++++--------
 .../apache/camel/impl/console/RestDevConsole.java  |  1 +
 .../api/management/mbean/CamelOpenMBeanTypes.java  |  6 ++--
 .../management/mbean/ManagedRestRegistry.java      |  5 +--
 .../ROOT/pages/camel-4x-upgrade-guide-4_7.adoc     |  4 ++-
 .../camel/cli/connector/LocalCliConnector.java     |  7 ++++
 .../dsl/jbang/core/commands/CamelJBangMain.java    |  1 +
 .../core/commands/process/ListPlatformHttp.java    |  4 +--
 .../{ListPlatformHttp.java => ListRest.java}       | 40 ++++++++++++++--------
 15 files changed, 96 insertions(+), 47 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
index ef2cac92511..68e2314bd3f 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles.properties
@@ -25,6 +25,7 @@ protocol
 quartz
 reload
 resilience4j
+rest
 route
 route-controller
 route-dump
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/rest.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/rest.json
new file mode 100644
index 00000000000..552cda4ab75
--- /dev/null
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dev-consoles/rest.json
@@ -0,0 +1,15 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "name": "rest",
+    "title": "Rest",
+    "description": "Rest DSL Registry information",
+    "deprecated": false,
+    "javaType": "org.apache.camel.impl.console.RestDevConsole",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-console",
+    "version": "4.7.0-SNAPSHOT"
+  }
+}
+
diff --git 
a/components/camel-rest-openapi/src/main/java/org/apache/camel/component/rest/openapi/RestOpenApiProcessor.java
 
b/components/camel-rest-openapi/src/main/java/org/apache/camel/component/rest/openapi/RestOpenApiProcessor.java
index 6d0735ed33f..eee89ee80d5 100644
--- 
a/components/camel-rest-openapi/src/main/java/org/apache/camel/component/rest/openapi/RestOpenApiProcessor.java
+++ 
b/components/camel-rest-openapi/src/main/java/org/apache/camel/component/rest/openapi/RestOpenApiProcessor.java
@@ -186,7 +186,7 @@ public class RestOpenApiProcessor extends 
DelegateAsyncProcessor implements Came
                 if (consumer instanceof RouteAware ra) {
                     routeId = ra.getRoute().getRouteId();
                 }
-                camelContext.getRestRegistry().addRestService(consumer, url, 
path, basePath, null, v, bc.getConsumes(),
+                camelContext.getRestRegistry().addRestService(consumer, true, 
url, path, basePath, null, v, bc.getConsumes(),
                         bc.getProduces(), bc.getType(), bc.getOutType(), 
routeId, desc);
 
                 RestBindingAdvice binding = 
RestBindingAdviceFactory.build(camelContext, bc);
diff --git 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
index 1109d180500..a8a1ab4fe02 100644
--- 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
+++ 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java
@@ -48,10 +48,10 @@ public class DefaultRestRegistry extends ServiceSupport 
implements StaticService
 
     @Override
     public void addRestService(
-            Consumer consumer, String url, String baseUrl, String basePath, 
String uriTemplate, String method,
+            Consumer consumer, boolean contractFirst, String url, String 
baseUrl, String basePath, String uriTemplate, String method,
             String consumes, String produces, String inType, String outType, 
String routeId, String description) {
         RestServiceEntry entry = new RestServiceEntry(
-                consumer, url, baseUrl, basePath, uriTemplate, method, 
consumes, produces, inType, outType, description);
+                consumer, contractFirst, url, baseUrl, basePath, uriTemplate, 
method, consumes, produces, inType, outType, description);
         List<RestService> list = registry.computeIfAbsent(consumer, c -> new 
ArrayList<>());
         list.add(entry);
     }
@@ -167,6 +167,7 @@ public class DefaultRestRegistry extends ServiceSupport 
implements StaticService
     private static final class RestServiceEntry implements RestService {
 
         private final Consumer consumer;
+        private final boolean contractFirst;
         private final String url;
         private final String baseUrl;
         private final String basePath;
@@ -178,11 +179,11 @@ public class DefaultRestRegistry extends ServiceSupport 
implements StaticService
         private final String outType;
         private final String description;
 
-        private RestServiceEntry(Consumer consumer, String url, String 
baseUrl, String basePath, String uriTemplate,
-                                 String method,
-                                 String consumes, String produces, String 
inType, String outType,
-                                 String description) {
+        private RestServiceEntry(Consumer consumer, boolean contractFirst, 
String url, String baseUrl, String basePath,
+                                 String uriTemplate, String method, String 
consumes, String produces,
+                                 String inType, String outType, String 
description) {
             this.consumer = consumer;
+            this.contractFirst = contractFirst;
             this.url = url;
             this.baseUrl = baseUrl;
             this.basePath = basePath;
@@ -200,6 +201,11 @@ public class DefaultRestRegistry extends ServiceSupport 
implements StaticService
             return consumer;
         }
 
+        @Override
+        public boolean isContractFirst() {
+            return contractFirst;
+        }
+
         @Override
         public String getUrl() {
             return url;
diff --git 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index 0ebc90bb388..7c8bf143ff4 100644
--- 
a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ 
b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -594,7 +594,7 @@ public class RestEndpoint extends DefaultEndpoint {
             // add to rest registry, so we can keep track of them, we will 
remove from the registry when the consumer is removed
             // the rest registry will automatically keep track when the 
consumer is removed,
             // and un-register the REST service from the registry
-            getCamelContext().getRestRegistry().addRestService(consumer, url, 
baseUrl, getPath(), getUriTemplate(), getMethod(),
+            getCamelContext().getRestRegistry().addRestService(consumer, 
false, url, baseUrl, getPath(), getUriTemplate(), getMethod(),
                     getConsumes(), getProduces(), getInType(), getOutType(), 
getRouteId(), getDescription());
             return consumer;
         } else {
diff --git 
a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
 
b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
index 038bbae702b..17d2e3c1c19 100644
--- 
a/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
+++ 
b/components/camel-webhook/src/main/java/org/apache/camel/component/webhook/MultiRestConsumer.java
@@ -50,7 +50,7 @@ public class MultiRestConsumer extends DefaultConsumer {
                     null, null, null, config, Collections.emptyMap());
             configurer.configure(consumer);
 
-            context.getRestRegistry().addRestService(consumer, url, url, path, 
null, method,
+            context.getRestRegistry().addRestService(consumer, false, url, 
url, path, null, method,
                     null, null, null, null, null, null);
 
             this.delegateConsumers.add(consumer);
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
index 0091871a223..902665e95fc 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RestRegistry.java
@@ -37,6 +37,11 @@ public interface RestRegistry extends StaticService {
          */
         Consumer getConsumer();
 
+        /**
+         * Is the rest service based on code-first or contract-first
+         */
+        boolean isContractFirst();
+
         /**
          * Gets the state of the REST service (started, stopped, etc)
          */
@@ -101,23 +106,23 @@ public interface RestRegistry extends StaticService {
     /**
      * Adds a new REST service to the registry.
      *
-     * @param consumer    the consumer
-     * @param url         the absolute url of the REST service
-     * @param baseUrl     the base url of the REST service
-     * @param basePath    the base path
-     * @param uriTemplate the uri template
-     * @param method      the HTTP method
-     * @param consumes    optional details about what media-types the REST 
service accepts
-     * @param produces    optional details about what media-types the REST 
service returns
-     * @param inType      optional detail input binding to a FQN class name
-     * @param outType     optional detail output binding to a FQN class name
-     * @param routeId     the id of the route this rest service will be using
-     * @param description optional description about the service
+     * @param consumer      the consumer
+     * @param contractFirst is the rest service based on code-first or 
contract-first
+     * @param url           the absolute url of the REST service
+     * @param baseUrl       the base url of the REST service
+     * @param basePath      the base path
+     * @param uriTemplate   the uri template
+     * @param method        the HTTP method
+     * @param consumes      optional details about what media-types the REST 
service accepts
+     * @param produces      optional details about what media-types the REST 
service returns
+     * @param inType        optional detail input binding to a FQN class name
+     * @param outType       optional detail output binding to a FQN class name
+     * @param routeId       the id of the route this rest service will be using
+     * @param description   optional description about the service
      */
     void addRestService(
-            Consumer consumer, String url, String baseUrl, String basePath, 
String uriTemplate, String method, String consumes,
-            String produces,
-            String inType, String outType, String routeId, String description);
+            Consumer consumer, boolean contractFirst, String url, String 
baseUrl, String basePath, String uriTemplate, String method,
+            String consumes, String produces, String inType, String outType, 
String routeId, String description);
 
     /**
      * Removes the REST service from the registry
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RestDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RestDevConsole.java
index eb9ef663600..ec9c4636586 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RestDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RestDevConsole.java
@@ -77,6 +77,7 @@ public class RestDevConsole extends AbstractDevConsole {
             JsonObject jo = new JsonObject();
             jo.put("url", rs.getUrl());
             jo.put("method", rs.getMethod());
+            jo.put("contractFirst", rs.isContractFirst());
             jo.put("state", rs.getState());
             if (rs.getConsumes() != null) {
                 jo.put("consumes", rs.getConsumes());
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
index abe3a9de8f6..6a9fde81336 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java
@@ -60,13 +60,13 @@ public final class CamelOpenMBeanTypes {
                 "rests", "Rest Services",
                 new String[] {
                         "url", "baseUrl", "basePath", "uriTemplate", "method", 
"consumes", "produces", "inType", "outType",
-                        "state", "description" },
+                        "kind", "state", "description" },
                 new String[] {
                         "Url", "Base Url", "Base Path", "Uri Template", 
"Method", "Consumes", "Produces", "Input Type",
-                        "Output Type", "State", "Description" },
+                        "Output Type", "Kind", "State", "Description" },
                 new OpenType[] {
                         SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING, SimpleType.STRING,
-                        SimpleType.STRING,
+                        SimpleType.STRING, SimpleType.STRING,
                         SimpleType.STRING, SimpleType.STRING, 
SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
     }
 
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
index 8654a304a0d..0b843ecba14 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
@@ -67,6 +67,7 @@ public class ManagedRestRegistry extends ManagedService 
implements ManagedRestRe
                 String method = entry.getMethod();
                 String consumes = entry.getConsumes();
                 String produces = entry.getProduces();
+                String kind = entry.isContractFirst() ? "contract-first" : 
"code-first";
                 String state = entry.getState();
                 String inType = entry.getInType();
                 String outType = entry.getOutType();
@@ -76,9 +77,9 @@ public class ManagedRestRegistry extends ManagedService 
implements ManagedRestRe
                         ct,
                         new String[] {
                                 "url", "baseUrl", "basePath", "uriTemplate", 
"method", "consumes", "produces", "inType",
-                                "outType", "state", "description" },
+                                "outType", "kind", "state", "description" },
                         new Object[] {
-                                url, baseUrl, basePath, uriTemplate, method, 
consumes, produces, inType, outType, state,
+                                url, baseUrl, basePath, uriTemplate, method, 
consumes, produces, inType, outType, kind, state,
                                 description });
                 answer.put(data);
             }
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc
index d0adc9c660a..2d611503ef7 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_7.adoc
@@ -11,13 +11,15 @@ from both 4.0 to 4.1 and 4.1 to 4.2.
 The class `org.apache.camel.impl.engine.ValidatorKey` moved to 
`org.apache.camel.spi.ValidatorKey`.
 The class `org.apache.camel.impl.engine.TransformerKey` moved to 
`org.apache.camel.spi.TransformerKey`.
 
+The `org.apache.camel.spi.RestRegistry` method `addRestService` has added 
`boolean contractFirst` parameter to define
+if the Rest service is _contract-first_ or _code-first_.
 
 === camel-core
 
 Add default values to `ThrottlingExceptionRoutePolicy` route policy.
 
 The `EndpointRegistry` interface has been slightly changed to now directly 
extends `Map<NormalizedEndpointUri, Endpoint>` 
-instead of being a parameterized type.  This may cause some compilation 
failures if the code is declaring a variable for the registry.
+instead of being a parameterized type. This may cause some compilation 
failures if the code is declaring a variable for the registry.
 
 === camel-health
 
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 390c66d04d3..f288cc1f174 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
@@ -983,6 +983,13 @@ public class LocalCliConnector extends ServiceSupport 
implements CliConnector, C
                         root.put("platform-http", json);
                     }
                 }
+                DevConsole dc19 = dcr.resolveById("rest");
+                if (dc19 != null) {
+                    JsonObject json = (JsonObject) 
dc19.call(DevConsole.MediaType.JSON);
+                    if (json != null && !json.isEmpty()) {
+                        root.put("rests", 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 b2a1978b1ef..a6d5d5beafe 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("rest", new CommandLine(new 
ListRest(main)))
                         .addSubcommand("platform-http", new CommandLine(new 
ListPlatformHttp(main)))
                         .addSubcommand("source", new CommandLine(new 
CamelSourceAction(main)))
                         .addSubcommand("route-dump", new CommandLine(new 
CamelRouteDumpAction(main)))
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
index b4d59e2b818..4f17b8102f2 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
@@ -103,8 +103,8 @@ public class ListPlatformHttp extends ProcessWatchCommand {
                     new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, 
OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.name),
                     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))));
+                    new 
Column().header("METHOD").dataAlign(HorizontalAlign.LEFT).with(r -> r.verbs),
+                    new 
Column().header("CONTENT-TYPE").dataAlign(HorizontalAlign.LEFT).with(this::getContent))));
         }
 
         return 0;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListRest.java
similarity index 80%
copy from 
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
copy to 
dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListRest.java
index b4d59e2b818..eca9ea3d2ea 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListPlatformHttp.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListRest.java
@@ -19,6 +19,7 @@ package org.apache.camel.dsl.jbang.core.commands.process;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 import java.util.StringJoiner;
 
 import com.github.freva.asciitable.AsciiTable;
@@ -34,9 +35,9 @@ import org.apache.camel.util.json.JsonObject;
 import picocli.CommandLine;
 import picocli.CommandLine.Command;
 
-@Command(name = "platform-http",
-         description = "Get embedded HTTP services of Camel integrations", 
sortOptions = false)
-public class ListPlatformHttp extends ProcessWatchCommand {
+@Command(name = "rest",
+         description = "Get REST services of Camel integrations", sortOptions 
= false)
+public class ListRest extends ProcessWatchCommand {
 
     @CommandLine.Parameters(description = "Name or pid of running Camel 
integration", arity = "0..1")
     String name = "*";
@@ -45,7 +46,11 @@ public class ListPlatformHttp extends ProcessWatchCommand {
                         description = "Sort by pid, name or age", defaultValue 
= "pid")
     String sort;
 
-    public ListPlatformHttp(CamelJBangMain main) {
+    @CommandLine.Option(names = { "--verbose" },
+                        description = "Show more details")
+    boolean verbose;
+
+    public ListRest(CamelJBangMain main) {
         super(main);
     }
 
@@ -73,20 +78,19 @@ public class ListPlatformHttp extends ProcessWatchCommand {
                         row.uptime = extractSince(ph);
                         row.age = TimeUtils.printSince(row.uptime);
 
-                        JsonObject jo = (JsonObject) root.get("platform-http");
+                        JsonObject jo = (JsonObject) root.get("rests");
                         if (jo != null) {
-                            String server = jo.getString("server");
-                            JsonArray arr = (JsonArray) jo.get("endpoints");
+                            JsonArray arr = (JsonArray) jo.get("rests");
                             if (arr != null) {
                                 for (int i = 0; i < arr.size(); i++) {
                                     row = row.copy();
                                     jo = (JsonObject) arr.get(i);
-                                    row.server = server;
                                     row.url = jo.getString("url");
-                                    row.path = jo.getString("path");
-                                    row.verbs = jo.getString("verbs");
+                                    row.method = 
jo.getString("method").toUpperCase(Locale.ROOT);
                                     row.consumes = jo.getString("consumes");
                                     row.produces = jo.getString("produces");
+                                    row.description = 
jo.getString("description");
+                                    row.contractFirst = 
jo.getBooleanOrDefault("contractFirst", false);
                                     rows.add(row);
                                 }
                             }
@@ -103,13 +107,19 @@ public class ListPlatformHttp extends ProcessWatchCommand 
{
                     new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, 
OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.name),
                     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))));
+                    new 
Column().header("METHOD").dataAlign(HorizontalAlign.LEFT).with(r -> r.method),
+                    new 
Column().header("FIRST").visible(verbose).dataAlign(HorizontalAlign.LEFT).with(this::getKind),
+                    new 
Column().header("DESCRIPTION").visible(verbose).maxWidth(40, 
OverflowBehaviour.NEWLINE).dataAlign(HorizontalAlign.LEFT).with(r -> 
r.description),
+                    new 
Column().header("CONTENT-TYPE").dataAlign(HorizontalAlign.LEFT).with(this::getContent))));
         }
 
         return 0;
     }
 
+    private String getKind(Row r) {
+        return r.contractFirst ? "Contract" : "Code";
+    }
+
     private String getContent(Row r) {
         StringJoiner sj = new StringJoiner("   ");
         if (r.consumes != null || r.produces != null) {
@@ -150,12 +160,12 @@ public class ListPlatformHttp extends ProcessWatchCommand 
{
         String name;
         String age;
         long uptime;
-        String server;
         String url;
-        String path;
-        String verbs;
+        String method;
         String consumes;
         String produces;
+        String description;
+        boolean contractFirst;
 
         Row copy() {
             try {

Reply via email to