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:31 UTC
[camel] 15/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 2b61f07477e3a06901757b25ec097df8b623e4ac
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 28 16:12:27 2021 +0100
CAMEL-17384: Developer Console SPI
---
.../impl/event/CamelContextResumeFailureEvent.java | 2 +-
.../event/CamelContextStartupFailureEvent.java | 2 +-
.../impl/event/CamelContextStopFailureEvent.java | 2 +-
.../camel/impl/event/ExchangeCompletedEvent.java | 2 +-
.../camel/impl/event/ExchangeCreatedEvent.java | 2 +-
.../camel/impl/event/ExchangeFailedEvent.java | 4 +-
.../impl/event/ExchangeFailureHandledEvent.java | 14 ++--
.../impl/event/ExchangeFailureHandlingEvent.java | 6 +-
.../camel/impl/event/ExchangeRedeliveryEvent.java | 5 +-
.../camel/impl/event/ExchangeSendingEvent.java | 2 +-
.../apache/camel/impl/event/ExchangeSentEvent.java | 5 +-
.../apache/camel/impl/event/RouteAddedEvent.java | 2 +-
.../camel/impl/event/RouteReloadedEvent.java | 2 +-
.../apache/camel/impl/event/RouteRemovedEvent.java | 2 +-
.../apache/camel/impl/event/RouteStartedEvent.java | 2 +-
.../camel/impl/event/RouteStartingEvent.java | 2 +-
.../apache/camel/impl/event/RouteStoppedEvent.java | 2 +-
.../camel/impl/event/RouteStoppingEvent.java | 2 +-
.../impl/event/ServiceStartupFailureEvent.java | 2 +-
.../camel/impl/event/ServiceStopFailureEvent.java | 2 +-
.../camel/impl/event/StepCompletedEvent.java | 2 +-
.../apache/camel/impl/event/StepFailedEvent.java | 2 +-
.../apache/camel/impl/event/StepStartedEvent.java | 2 +-
.../services/org/apache/camel/dev-console/event | 2 +
.../camel/impl/console/AbstractDevConsole.java | 3 +-
.../impl/console/DefaultDevConsoleRegistry.java | 18 ++++-
.../apache/camel/impl/console/EventConsole.java | 93 ++++++++++++++++++++++
.../java/org/apache/camel/support/EventHelper.java | 2 +-
28 files changed, 149 insertions(+), 39 deletions(-)
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextResumeFailureEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextResumeFailureEvent.java
index 5adac86..90e27dc 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextResumeFailureEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextResumeFailureEvent.java
@@ -36,6 +36,6 @@ public class CamelContextResumeFailureEvent extends AbstractContextEvent impleme
@Override
public String toString() {
- return "Failed to resume Camel: " + getContext().getName() + " due to " + cause.getMessage();
+ return "Failed to resume CamelContext: " + getContext().getName() + " due to " + cause.getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStartupFailureEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStartupFailureEvent.java
index c13ca37..3de5066 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStartupFailureEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStartupFailureEvent.java
@@ -37,6 +37,6 @@ public class CamelContextStartupFailureEvent extends AbstractContextEvent
@Override
public String toString() {
- return "Failed to start Camel: " + getContext().getName() + " due to " + cause.getMessage();
+ return "CamelContext startup failure: " + getContext().getName() + " due to " + cause.getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStopFailureEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStopFailureEvent.java
index 0e1db96..190982c 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStopFailureEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextStopFailureEvent.java
@@ -36,6 +36,6 @@ public class CamelContextStopFailureEvent extends AbstractContextEvent implement
@Override
public String toString() {
- return "Failed to stop Camel: " + getContext().getName() + " due to " + cause.getMessage();
+ return "Failed to stop CamelContext: " + getContext().getName() + " due to " + cause.getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCompletedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCompletedEvent.java
index eb34246..68d12ff 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCompletedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCompletedEvent.java
@@ -28,6 +28,6 @@ public class ExchangeCompletedEvent extends AbstractExchangeEvent implements Cam
@Override
public String toString() {
- return getExchange().getExchangeId() + " exchange completed: " + getExchange();
+ return getExchange().getExchangeId() + ": Completed exchange";
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCreatedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCreatedEvent.java
index 625b4e5..a946d11 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCreatedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeCreatedEvent.java
@@ -34,6 +34,6 @@ public class ExchangeCreatedEvent extends AbstractExchangeEvent implements Camel
@Override
public String toString() {
- return getExchange().getExchangeId() + " exchange created: " + getExchange();
+ return getExchange().getExchangeId() + ": Created exchange";
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailedEvent.java
index 8c74a21..d6dd010 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailedEvent.java
@@ -35,9 +35,9 @@ public class ExchangeFailedEvent extends AbstractExchangeEvent implements CamelE
public String toString() {
Exception cause = getExchange().getException();
if (cause != null) {
- return getExchange().getExchangeId() + " exchange failure: " + getExchange() + " cause " + cause;
+ return getExchange().getExchangeId() + ": Failed exchange due to " + cause.getMessage();
} else {
- return getExchange().getExchangeId() + " exchange failure: " + getExchange();
+ return getExchange().getExchangeId() + ": Failed exchange";
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java
index 9bd4bb8..ae70056 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandledEvent.java
@@ -65,13 +65,15 @@ public class ExchangeFailureHandledEvent extends AbstractExchangeEvent implement
@Override
public String toString() {
- if (isDeadLetterChannel()) {
- String uri = URISupport.sanitizeUri(deadLetterUri);
- return getExchange().getExchangeId() + " exchange failed: " + getExchange()
- + " but was handled by dead letter channel: " + uri;
+ if (isHandled()) {
+ if (isDeadLetterChannel()) {
+ String uri = URISupport.sanitizeUri(deadLetterUri);
+ return getExchange().getExchangeId() + ": Failed and handled by dead letter channel: " + uri;
+ } else {
+ return getExchange().getExchangeId() + ": Failed and handled by error handler";
+ }
} else {
- return getExchange().getExchangeId() + " exchange failed: " + getExchange()
- + " but was processed by failure processor: " + failureHandler;
+ return getExchange().getExchangeId() + ": Continued and continued";
}
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandlingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandlingEvent.java
index 39ee3b6..4666fa2 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandlingEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeFailureHandlingEvent.java
@@ -55,11 +55,9 @@ public class ExchangeFailureHandlingEvent extends AbstractExchangeEvent implemen
public String toString() {
if (isDeadLetterChannel()) {
String uri = URISupport.sanitizeUri(deadLetterUri);
- return getExchange().getExchangeId() + " exchange failed: " + getExchange()
- + " but is being handled by dead letter channel: " + uri;
+ return getExchange().getExchangeId() + ": Failed and will be handled by dead letter channel: " + uri;
} else {
- return getExchange().getExchangeId() + " exchange failed: " + getExchange()
- + " but is being processed by failure processor: " + failureHandler;
+ return getExchange().getExchangeId() + ": Failed and will be handled by error handler";
}
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeRedeliveryEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeRedeliveryEvent.java
index deb8b02..2ea34d3 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeRedeliveryEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeRedeliveryEvent.java
@@ -38,10 +38,9 @@ public class ExchangeRedeliveryEvent extends AbstractExchangeEvent implements Ca
public String toString() {
Exception cause = getExchange().getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
if (cause != null) {
- return getExchange().getExchangeId() + " exchange redelivery: " + getExchange() + " attempt " + attempt + " cause "
- + cause;
+ return getExchange().getExchangeId() + ": Redelivery attempt: " + attempt + " caused by: " + cause.getMessage();
} else {
- return getExchange().getExchangeId() + " exchange redelivery: " + getExchange() + " attempt " + attempt;
+ return getExchange().getExchangeId() + ": Redelivery attempt: " + attempt;
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSendingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSendingEvent.java
index 41b225e..5937de3 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSendingEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSendingEvent.java
@@ -52,7 +52,7 @@ public class ExchangeSendingEvent extends AbstractExchangeEvent implements Camel
@Override
public String toString() {
- return getExchange().getExchangeId() + " exchange " + getExchange() + " sending to: " + endpoint;
+ return getExchange().getExchangeId() + ": Sending to: " + endpoint;
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSentEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSentEvent.java
index b68ece1..eb82d15 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSentEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ExchangeSentEvent.java
@@ -19,6 +19,7 @@ package org.apache.camel.impl.event;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.spi.CamelEvent;
+import org.apache.camel.util.TimeUtils;
/**
* Event for <b>after</b> an {@link Exchange} has been sent to an {@link Endpoint}. The {@link ExchangeSentEvent} is an
@@ -54,8 +55,8 @@ public class ExchangeSentEvent extends AbstractExchangeEvent implements CamelEve
@Override
public String toString() {
- return getExchange().getExchangeId() + " exchange " + getExchange() + " sent to: " + endpoint + " took: " + timeTaken
- + " ms.";
+ String took = TimeUtils.printDuration(timeTaken);
+ return getExchange().getExchangeId() + ": Sent to: " + endpoint + " (took: " + took + ")";
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteAddedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteAddedEvent.java
index 8f39424..004cfda 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteAddedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteAddedEvent.java
@@ -29,6 +29,6 @@ public class RouteAddedEvent extends AbstractRouteEvent implements CamelEvent.Ro
@Override
public String toString() {
- return "Added route: " + getRoute().getId();
+ return "Route added: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteReloadedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteReloadedEvent.java
index de2ea8c..eeb5a30 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteReloadedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteReloadedEvent.java
@@ -44,6 +44,6 @@ public class RouteReloadedEvent extends AbstractRouteEvent implements CamelEvent
@Override
public String toString() {
- return "Reloaded route: " + getRoute().getId();
+ return "Route reloaded: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteRemovedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteRemovedEvent.java
index 0cceaac..9f50e16 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteRemovedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteRemovedEvent.java
@@ -29,6 +29,6 @@ public class RouteRemovedEvent extends AbstractRouteEvent implements CamelEvent.
@Override
public String toString() {
- return "Removed route: " + getRoute().getId();
+ return "Route removed: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartedEvent.java
index 2a2ad1e..6206f44 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartedEvent.java
@@ -28,6 +28,6 @@ public class RouteStartedEvent extends AbstractRouteEvent implements CamelEvent.
@Override
public String toString() {
- return "Started route: " + getRoute().getId();
+ return "Route started: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartingEvent.java
index 73c5a8d..19c696c 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartingEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStartingEvent.java
@@ -28,6 +28,6 @@ public class RouteStartingEvent extends AbstractRouteEvent implements CamelEvent
@Override
public String toString() {
- return "Starting route: " + getRoute().getId();
+ return "Route starting: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppedEvent.java
index 4dc0008..45e837d 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppedEvent.java
@@ -28,6 +28,6 @@ public class RouteStoppedEvent extends AbstractRouteEvent implements CamelEvent.
@Override
public String toString() {
- return "Stopped route: " + getRoute().getId();
+ return "Route stopped: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppingEvent.java
index 23e626e..24e6771 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppingEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/RouteStoppingEvent.java
@@ -28,6 +28,6 @@ public class RouteStoppingEvent extends AbstractRouteEvent implements CamelEvent
@Override
public String toString() {
- return "Stopping route: " + getRoute().getId();
+ return "Route stopping: " + getRoute().getId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStartupFailureEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStartupFailureEvent.java
index 515b878..3095ccf 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStartupFailureEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStartupFailureEvent.java
@@ -51,6 +51,6 @@ public class ServiceStartupFailureEvent extends EventObject implements CamelEven
@Override
public String toString() {
- return "Failure to start service: " + service + " due to " + cause.getMessage();
+ return "Service startup failure: " + service + " due to " + cause.getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStopFailureEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStopFailureEvent.java
index f512d26..f904b99 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStopFailureEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/ServiceStopFailureEvent.java
@@ -51,6 +51,6 @@ public class ServiceStopFailureEvent extends EventObject implements CamelEvent.S
@Override
public String toString() {
- return "Failure to stop service: " + service + " due to " + cause.getMessage();
+ return "Service stop failure: " + service + " due to " + cause.getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepCompletedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepCompletedEvent.java
index d90b195..5020c57 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepCompletedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepCompletedEvent.java
@@ -30,6 +30,6 @@ public class StepCompletedEvent extends AbstractStepEvent implements CamelEvent.
@Override
public String toString() {
- return "Step[" + getStepId() + "] completed";
+ return "Step completed: " + getStepId();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepFailedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepFailedEvent.java
index 89f1df0..17275f1 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepFailedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepFailedEvent.java
@@ -35,6 +35,6 @@ public class StepFailedEvent extends AbstractStepEvent implements CamelEvent.Ste
@Override
public String toString() {
- return "Step[" + getStepId() + "] failed";
+ return "Step failure: " + getStepId() + " due to " + getCause().getMessage();
}
}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepStartedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepStartedEvent.java
index 8c3c645..4c5890b 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/StepStartedEvent.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/StepStartedEvent.java
@@ -30,6 +30,6 @@ public class StepStartedEvent extends AbstractStepEvent implements CamelEvent.St
@Override
public String toString() {
- return "Step[" + getStepId() + "] started";
+ return "Step started: " + getStepId();
}
}
diff --git a/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/event b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/event
new file mode 100644
index 0000000..fbb283c
--- /dev/null
+++ b/core/camel-console/src/generated/resources/META-INF/services/org/apache/camel/dev-console/event
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.console.EventConsole
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 cba5830..c1d5c06 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
@@ -21,11 +21,12 @@ import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.console.DevConsole;
+import org.apache.camel.support.service.ServiceSupport;
/**
* Base implementation for {@link DevConsole}.
*/
-public abstract class AbstractDevConsole implements DevConsole, CamelContextAware {
+public abstract class AbstractDevConsole extends ServiceSupport implements DevConsole, CamelContextAware {
private CamelContext camelContext;
private final Object lock;
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
index 14eb111..2fd5c91 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/DefaultDevConsoleRegistry.java
@@ -28,6 +28,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.console.DevConsole;
import org.apache.camel.console.DevConsoleRegistry;
import org.apache.camel.console.DevConsoleResolver;
+import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.StopWatch;
import org.apache.camel.util.TimeUtils;
@@ -90,10 +91,23 @@ public class DefaultDevConsoleRegistry extends ServiceSupport implements DevCons
@Override
protected void doInit() throws Exception {
- super.doInit();
-
for (DevConsole console : consoles) {
CamelContextAware.trySetCamelContext(console, camelContext);
+ ServiceHelper.initService(console);
+ }
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ for (DevConsole console : consoles) {
+ ServiceHelper.startService(console);
+ }
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ for (DevConsole console : consoles) {
+ ServiceHelper.stopService(console);
}
}
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
new file mode 100644
index 0000000..bbd2393
--- /dev/null
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.impl.console;
+
+import java.util.ArrayDeque;
+import java.util.Map;
+import java.util.Queue;
+
+import org.apache.camel.spi.CamelEvent;
+import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.support.EventNotifierSupport;
+
+@DevConsole("event")
+public class EventConsole extends AbstractDevConsole {
+
+ private int capacity = 25;
+
+ private final Queue<CamelEvent> events = new ArrayDeque<>(capacity);
+ private final Queue<CamelEvent.ExchangeEvent> exchangeEvents = new ArrayDeque<>(capacity);
+ private final ConsoleEventNotifier listener = new ConsoleEventNotifier();
+
+ public EventConsole() {
+ super("camel", "event");
+ }
+
+ @Override
+ protected void doInit() throws Exception {
+ getCamelContext().getManagementStrategy().addEventNotifier(listener);
+ }
+
+ @Override
+ protected void doShutdown() throws Exception {
+ getCamelContext().getManagementStrategy().removeEventNotifier(listener);
+ events.clear();
+ }
+
+ @Override
+ protected Object doCall(MediaType mediaType, Map<String, Object> options) {
+ // only text is supported
+ StringBuilder sb = new StringBuilder();
+
+ if (!events.isEmpty()) {
+ sb.append(String.format("Last %s Camel Events:", events.size()));
+ for (CamelEvent event : events) {
+ sb.append(String.format("\n %s", event));
+ }
+ sb.append("\n");
+ }
+ if (!exchangeEvents.isEmpty()) {
+ sb.append("\n");
+ sb.append(String.format("Last %s Exchange Events:", exchangeEvents.size()));
+ for (CamelEvent.ExchangeEvent event : exchangeEvents) {
+ sb.append(String.format("\n %s", event));
+ }
+ sb.append("\n");
+ }
+
+ return sb.toString();
+ }
+
+ private class ConsoleEventNotifier extends EventNotifierSupport {
+
+ @Override
+ public void notify(CamelEvent event) throws Exception {
+ if (event instanceof CamelEvent.ExchangeEvent) {
+ if (exchangeEvents.size() >= capacity) {
+ exchangeEvents.poll();
+ }
+ exchangeEvents.add((CamelEvent.ExchangeEvent) event);
+ } else {
+ if (events.size() >= capacity) {
+ events.poll();
+ }
+ events.offer(event);
+ }
+ }
+
+ }
+}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
index a480ee4..dd05188 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
@@ -844,7 +844,7 @@ public final class EventHelper {
}
if (((ExtendedExchange) exchange).isNotifyEvent()) {
- // do not generate events for an notify event
+ // do not generate events for notify event
return false;
}