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 50208355abf4399f2a5f25378b4d200e664c46f7 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Dec 29 11:56:05 2021 +0100 CAMEL-17384: Developer Console SPI --- .../main/java/org/apache/camel/console/DevConsole.java | 10 ++++++++++ .../apache/camel/impl/console/AbstractDevConsole.java | 16 +++++++++++++++- .../org/apache/camel/impl/console/ContextDevConsole.java | 4 +++- .../java/org/apache/camel/impl/console/EventConsole.java | 7 +++---- .../main/java/org/apache/camel/main/VertxHttpServer.java | 3 +++ 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java b/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java index f5dd0e9..518fbb2 100644 --- a/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java +++ b/core/camel-api/src/main/java/org/apache/camel/console/DevConsole.java @@ -43,6 +43,16 @@ public interface DevConsole { String getId(); /** + * Display name of this console. + */ + String getDisplayName(); + + /** + * Short description of this console. + */ + String getDescription(); + + /** * Whether this console supports the given media type. * * @param mediaType the media type diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/AbstractDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/AbstractDevConsole.java index c1d5c06..5ead0ac 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/AbstractDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/AbstractDevConsole.java @@ -32,11 +32,15 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo private final Object lock; private final String group; private final String id; + private final String displayName; + private final String description; - public AbstractDevConsole(String group, String id) { + public AbstractDevConsole(String group, String id, String displayName, String description) { this.lock = new Object(); this.group = group; this.id = id; + this.displayName = displayName; + this.description = description; } @Override @@ -65,6 +69,16 @@ public abstract class AbstractDevConsole extends ServiceSupport implements DevCo } @Override + public String getDisplayName() { + return displayName; + } + + @Override + public String getDescription() { + return description; + } + + @Override public boolean equals(Object o) { if (this == o) { return true; diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java index b8ec2a6..059d36c 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java @@ -26,7 +26,7 @@ import org.apache.camel.spi.annotations.DevConsole; public class ContextDevConsole extends AbstractDevConsole { public ContextDevConsole() { - super("camel", "context"); + super("camel", "context", "CamelContext", "Overall information about the CamelContext"); } @Override @@ -37,6 +37,8 @@ public class ContextDevConsole extends AbstractDevConsole { sb.append(String.format("Apache Camel %s (%s) uptime %s", getCamelContext().getVersion(), getCamelContext().getName(), getCamelContext().getUptime())); sb.append("\n"); + + // TODO: number of messages should maybe be in another console ManagedCamelContext mcc = getCamelContext().getExtension(ManagedCamelContext.class); if (mcc != null) { ManagedCamelContextMBean mb = mcc.getManagedCamelContext(); diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java index 68ab032..ed09bcc 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java @@ -22,6 +22,7 @@ import java.util.Queue; import org.apache.camel.spi.CamelEvent; import org.apache.camel.spi.Configurer; +import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.DevConsole; import org.apache.camel.support.EventNotifierSupport; @@ -29,6 +30,7 @@ import org.apache.camel.support.EventNotifierSupport; @Configurer(bootstrap = true) public class EventConsole extends AbstractDevConsole { + @Metadata(defaultValue = "25", description = "Maximum capacity of last number of events to capture") private int capacity = 25; private Queue<CamelEvent> events; @@ -36,16 +38,13 @@ public class EventConsole extends AbstractDevConsole { private final ConsoleEventNotifier listener = new ConsoleEventNotifier(); public EventConsole() { - super("camel", "event"); + super("camel", "event", "Camel Events", "The most recent Camel events"); } public int getCapacity() { return capacity; } - /** - * Shows last number of events. - */ public void setCapacity(int capacity) { this.capacity = capacity; } diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java index e2c9257..e53cda0 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/VertxHttpServer.java @@ -137,6 +137,7 @@ public final class VertxHttpServer { Route dev = router.route("/dev"); dev.method(HttpMethod.GET); dev.handler(router.bodyHandler()); + dev.produces("text/plain"); dev.handler(new Handler<RoutingContext>() { @Override public void handle(RoutingContext ctx) { @@ -147,6 +148,8 @@ public final class VertxHttpServer { if (c.supportMediaType(DevConsole.MediaType.TEXT)) { String text = (String) c.call(DevConsole.MediaType.TEXT); if (text != null) { + sb.append(c.getDisplayName()).append(":"); + sb.append("\n\n"); sb.append(text); sb.append("\n\n"); }