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 2017/05/27 12:47:24 UTC
[4/6] camel git commit: CAMEL-11346: Optimize EventNotifier to
indicate if event was notified or not. This allows us to know if timing via
StopWatch is needed which we can then optimize and not do.
CAMEL-11346: Optimize EventNotifier to indicate if event was notified or not.
This allows us to know if timing via StopWatch is needed which we can then
optimize and not do.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fdfd57d4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fdfd57d4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fdfd57d4
Branch: refs/heads/master
Commit: fdfd57d47684ef575f2dc15b9309978aa071890c
Parents: be41ff6
Author: Claus Ibsen <da...@apache.org>
Authored: Sat May 27 13:39:14 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat May 27 13:39:14 2017 +0200
----------------------------------------------------------------------
.../camel/impl/EventNotifierCallback.java | 15 +-
.../org/apache/camel/impl/ProducerCache.java | 18 +-
.../org/apache/camel/processor/Enricher.java | 14 +-
.../camel/processor/MulticastProcessor.java | 28 +-
.../apache/camel/processor/SendProcessor.java | 20 +-
.../java/org/apache/camel/util/EventHelper.java | 374 +++++++++++--------
6 files changed, 276 insertions(+), 193 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/impl/EventNotifierCallback.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EventNotifierCallback.java b/camel-core/src/main/java/org/apache/camel/impl/EventNotifierCallback.java
index e186d9a..4732ce0 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EventNotifierCallback.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EventNotifierCallback.java
@@ -30,20 +30,27 @@ public class EventNotifierCallback implements AsyncCallback {
private final StopWatch watch;
private final Exchange exchange;
private final Endpoint endpoint;
+ private final boolean sending;
public EventNotifierCallback(AsyncCallback originalCallback, Exchange exchange,
Endpoint endpoint) {
this.originalCallback = originalCallback;
- this.watch = new StopWatch();
this.exchange = exchange;
this.endpoint = endpoint;
- EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ this.sending = EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ if (this.sending) {
+ this.watch = new StopWatch();
+ } else {
+ this.watch = null;
+ }
}
@Override
public void done(boolean doneSync) {
- long timeTaken = watch.stop();
- EventHelper.notifyExchangeSent(exchange.getContext(), exchange, endpoint, timeTaken);
+ if (watch != null) {
+ long timeTaken = watch.stop();
+ EventHelper.notifyExchangeSent(exchange.getContext(), exchange, endpoint, timeTaken);
+ }
originalCallback.done(doneSync);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java b/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
index faa0f72..a5cdcbf 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java
@@ -424,13 +424,19 @@ public class ProducerCache extends ServiceSupport {
final Producer producer = target;
- // record timing for sending the exchange using the producer
- final StopWatch watch = eventNotifierEnabled && exchange != null ? new StopWatch() : null;
try {
+ StopWatch sw = null;
if (eventNotifierEnabled && exchange != null) {
- EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ if (sending) {
+ sw = new StopWatch();
+ }
}
+
+ // record timing for sending the exchange using the producer
+ final StopWatch watch = sw;
+
// invoke the callback
AsyncProcessor asyncProcessor = AsyncProcessorConverterHelper.convert(producer);
return producerCallback.doInAsyncProducer(producer, asyncProcessor, exchange, pattern, doneSync -> {
@@ -521,8 +527,10 @@ public class ProducerCache extends ServiceSupport {
StopWatch watch = null;
try {
if (eventNotifierEnabled) {
- watch = new StopWatch();
- EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), exchange, endpoint);
+ if (sending) {
+ watch = new StopWatch();
+ }
}
CamelInternalProcessor internal = prepareInternalProcessor(producer, resultProcessor);
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/Enricher.java b/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
index eef072f..d68aa4b 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
@@ -180,9 +180,13 @@ public class Enricher extends ServiceSupport implements AsyncProcessor, IdAware,
final Exchange resourceExchange = createResourceExchange(exchange, ExchangePattern.InOut);
final Endpoint destination = producer.getEndpoint();
- EventHelper.notifyExchangeSending(exchange.getContext(), resourceExchange, destination);
+ StopWatch sw = null;
+ boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), resourceExchange, destination);
+ if (sending) {
+ sw = new StopWatch();
+ }
// record timing for sending the exchange using the producer
- final StopWatch watch = new StopWatch();
+ final StopWatch watch = sw;
AsyncProcessor ap = AsyncProcessorConverterHelper.convert(producer);
boolean sync = ap.process(resourceExchange, new AsyncCallback() {
public void done(boolean doneSync) {
@@ -192,8 +196,10 @@ public class Enricher extends ServiceSupport implements AsyncProcessor, IdAware,
}
// emit event that the exchange was sent to the endpoint
- long timeTaken = watch.stop();
- EventHelper.notifyExchangeSent(resourceExchange.getContext(), resourceExchange, destination, timeTaken);
+ if (watch != null) {
+ long timeTaken = watch.stop();
+ EventHelper.notifyExchangeSent(resourceExchange.getContext(), resourceExchange, destination, timeTaken);
+ }
if (!isAggregateOnException() && resourceExchange.isFailed()) {
// copy resource exchange onto original exchange (preserving pattern)
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
index b0def97..1085192 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
@@ -677,18 +677,23 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
TracedRouteNodes traced = exchange.getUnitOfWork() != null ? exchange.getUnitOfWork().getTracedRouteNodes() : null;
- // compute time taken if sending to another endpoint
- final StopWatch watch = producer != null ? new StopWatch() : null;
-
try {
// prepare tracing starting from a new block
if (traced != null) {
traced.pushBlock();
}
+ StopWatch sw = null;
if (producer != null) {
- EventHelper.notifyExchangeSending(exchange.getContext(), exchange, producer.getEndpoint());
+ boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), exchange, producer.getEndpoint());
+ if (sending) {
+ sw = new StopWatch();
+ }
}
+
+ // compute time taken if sending to another endpoint
+ final StopWatch watch = sw;
+
// let the prepared process it, remember to begin the exchange pair
AsyncProcessor async = AsyncProcessorConverterHelper.convert(processor);
pair.begin();
@@ -698,7 +703,7 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
pair.done();
// okay we are done, so notify the exchange was sent
- if (producer != null) {
+ if (producer != null && watch != null) {
long timeTaken = watch.stop();
Endpoint endpoint = producer.getEndpoint();
// emit event that the exchange was sent to the endpoint
@@ -821,10 +826,6 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
// compute time taken if sending to another endpoint
StopWatch watch = null;
- if (producer != null) {
- watch = new StopWatch();
- }
-
try {
// prepare tracing starting from a new block
if (traced != null) {
@@ -832,7 +833,10 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
}
if (producer != null) {
- EventHelper.notifyExchangeSending(exchange.getContext(), exchange, producer.getEndpoint());
+ boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), exchange, producer.getEndpoint());
+ if (sending) {
+ watch = new StopWatch();
+ }
}
// let the prepared process it, remember to begin the exchange pair
AsyncProcessor async = AsyncProcessorConverterHelper.convert(processor);
@@ -845,9 +849,9 @@ public class MulticastProcessor extends ServiceSupport implements AsyncProcessor
if (traced != null) {
traced.popBlock();
}
- if (producer != null) {
- long timeTaken = watch.stop();
+ if (producer != null && watch != null) {
Endpoint endpoint = producer.getEndpoint();
+ long timeTaken = watch.stop();
// emit event that the exchange was sent to the endpoint
// this is okay to do here in the finally block, as the processing is not using the async routing engine
//( we invoke it synchronously as parallel async routing is too hard)
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
index 8aa1a02..497fb74 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
@@ -132,16 +132,20 @@ public class SendProcessor extends ServiceSupport implements AsyncProcessor, Tra
// if we have a producer then use that as its optimized
if (producer != null) {
- // record timing for sending the exchange using the producer
- final StopWatch watch = new StopWatch();
-
final Exchange target = configureExchange(exchange, pattern);
- EventHelper.notifyExchangeSending(exchange.getContext(), target, destination);
- LOG.debug(">>>> {} {}", destination, exchange);
+ final boolean sending = EventHelper.notifyExchangeSending(exchange.getContext(), target, destination);
+ StopWatch sw = null;
+ if (sending) {
+ sw = new StopWatch();
+ }
+
+ // record timing for sending the exchange using the producer
+ final StopWatch watch = sw;
boolean sync = true;
try {
+ LOG.debug(">>>> {} {}", destination, exchange);
sync = producer.process(exchange, new AsyncCallback() {
@Override
public void done(boolean doneSync) {
@@ -149,8 +153,10 @@ public class SendProcessor extends ServiceSupport implements AsyncProcessor, Tra
// restore previous MEP
target.setPattern(existingPattern);
// emit event that the exchange was sent to the endpoint
- long timeTaken = watch.stop();
- EventHelper.notifyExchangeSent(target.getContext(), target, destination, timeTaken);
+ if (watch != null) {
+ long timeTaken = watch.stop();
+ EventHelper.notifyExchangeSent(target.getContext(), target, destination, timeTaken);
+ }
} finally {
callback.done(doneSync);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd57d4/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/EventHelper.java b/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
index c0f6fee..71458ca 100644
--- a/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/EventHelper.java
@@ -43,22 +43,23 @@ public final class EventHelper {
private EventHelper() {
}
- public static void notifyCamelContextStarting(CamelContext context) {
+ public static boolean notifyCamelContextStarting(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -70,29 +71,31 @@ public final class EventHelper {
event = factory.createCamelContextStartingEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextStarted(CamelContext context) {
+ public static boolean notifyCamelContextStarted(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -104,29 +107,31 @@ public final class EventHelper {
event = factory.createCamelContextStartedEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextStartupFailed(CamelContext context, Throwable cause) {
+ public static boolean notifyCamelContextStartupFailed(CamelContext context, Throwable cause) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -138,29 +143,31 @@ public final class EventHelper {
event = factory.createCamelContextStartupFailureEvent(context, cause);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextStopping(CamelContext context) {
+ public static boolean notifyCamelContextStopping(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -172,29 +179,31 @@ public final class EventHelper {
event = factory.createCamelContextStoppingEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextStopped(CamelContext context) {
+ public static boolean notifyCamelContextStopped(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -206,29 +215,31 @@ public final class EventHelper {
event = factory.createCamelContextStoppedEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextStopFailed(CamelContext context, Throwable cause) {
+ public static boolean notifyCamelContextStopFailed(CamelContext context, Throwable cause) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -240,29 +251,31 @@ public final class EventHelper {
event = factory.createCamelContextStopFailureEvent(context, cause);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyServiceStopFailure(CamelContext context, Object service, Throwable cause) {
+ public static boolean notifyServiceStopFailure(CamelContext context, Object service, Throwable cause) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreServiceEvents()) {
@@ -274,29 +287,31 @@ public final class EventHelper {
event = factory.createServiceStopFailureEvent(context, service, cause);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyServiceStartupFailure(CamelContext context, Object service, Throwable cause) {
+ public static boolean notifyServiceStartupFailure(CamelContext context, Object service, Throwable cause) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreServiceEvents()) {
@@ -308,29 +323,31 @@ public final class EventHelper {
event = factory.createServiceStartupFailureEvent(context, service, cause);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyRouteStarted(CamelContext context, Route route) {
+ public static boolean notifyRouteStarted(CamelContext context, Route route) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreRouteEvents()) {
@@ -342,29 +359,31 @@ public final class EventHelper {
event = factory.createRouteStartedEvent(route);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyRouteStopped(CamelContext context, Route route) {
+ public static boolean notifyRouteStopped(CamelContext context, Route route) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreRouteEvents()) {
@@ -376,29 +395,31 @@ public final class EventHelper {
event = factory.createRouteStoppedEvent(route);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyRouteAdded(CamelContext context, Route route) {
+ public static boolean notifyRouteAdded(CamelContext context, Route route) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreRouteEvents()) {
@@ -410,29 +431,31 @@ public final class EventHelper {
event = factory.createRouteAddedEvent(route);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyRouteRemoved(CamelContext context, Route route) {
+ public static boolean notifyRouteRemoved(CamelContext context, Route route) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreRouteEvents()) {
@@ -444,34 +467,36 @@ public final class EventHelper {
event = factory.createRouteRemovedEvent(route);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeCreated(CamelContext context, Exchange exchange) {
+ public static boolean notifyExchangeCreated(CamelContext context, Exchange exchange) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeCreatedEvent()) {
@@ -483,34 +508,36 @@ public final class EventHelper {
event = factory.createExchangeCreatedEvent(exchange);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeDone(CamelContext context, Exchange exchange) {
+ public static boolean notifyExchangeDone(CamelContext context, Exchange exchange) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeCompletedEvent()) {
@@ -522,34 +549,36 @@ public final class EventHelper {
event = factory.createExchangeCompletedEvent(exchange);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeFailed(CamelContext context, Exchange exchange) {
+ public static boolean notifyExchangeFailed(CamelContext context, Exchange exchange) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeFailedEvents()) {
@@ -561,35 +590,37 @@ public final class EventHelper {
event = factory.createExchangeFailedEvent(exchange);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeFailureHandling(CamelContext context, Exchange exchange, Processor failureHandler,
+ public static boolean notifyExchangeFailureHandling(CamelContext context, Exchange exchange, Processor failureHandler,
boolean deadLetterChannel, String deadLetterUri) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeFailedEvents()) {
@@ -601,35 +632,37 @@ public final class EventHelper {
event = factory.createExchangeFailureHandlingEvent(exchange, failureHandler, deadLetterChannel, deadLetterUri);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeFailureHandled(CamelContext context, Exchange exchange, Processor failureHandler,
+ public static boolean notifyExchangeFailureHandled(CamelContext context, Exchange exchange, Processor failureHandler,
boolean deadLetterChannel, String deadLetterUri) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeFailedEvents()) {
@@ -641,34 +674,36 @@ public final class EventHelper {
event = factory.createExchangeFailureHandledEvent(exchange, failureHandler, deadLetterChannel, deadLetterUri);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeRedelivery(CamelContext context, Exchange exchange, int attempt) {
+ public static boolean notifyExchangeRedelivery(CamelContext context, Exchange exchange, int attempt) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeFailedEvents()) {
@@ -680,34 +715,36 @@ public final class EventHelper {
event = factory.createExchangeRedeliveryEvent(exchange, attempt);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeSending(CamelContext context, Exchange exchange, Endpoint endpoint) {
+ public static boolean notifyExchangeSending(CamelContext context, Exchange exchange, Endpoint endpoint) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeSentEvents()) {
@@ -719,34 +756,36 @@ public final class EventHelper {
event = factory.createExchangeSendingEvent(exchange, endpoint);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyExchangeSent(CamelContext context, Exchange exchange, Endpoint endpoint, long timeTaken) {
+ public static boolean notifyExchangeSent(CamelContext context, Exchange exchange, Endpoint endpoint, long timeTaken) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
- return;
+ return false;
}
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreExchangeEvents() || notifier.isIgnoreExchangeSentEvents()) {
@@ -758,29 +797,31 @@ public final class EventHelper {
event = factory.createExchangeSentEvent(exchange, endpoint, timeTaken);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextSuspending(CamelContext context) {
+ public static boolean notifyCamelContextSuspending(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -792,29 +833,31 @@ public final class EventHelper {
event = factory.createCamelContextSuspendingEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextSuspended(CamelContext context) {
+ public static boolean notifyCamelContextSuspended(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -826,29 +869,31 @@ public final class EventHelper {
event = factory.createCamelContextSuspendedEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextResuming(CamelContext context) {
+ public static boolean notifyCamelContextResuming(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -860,29 +905,31 @@ public final class EventHelper {
event = factory.createCamelContextResumingEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextResumed(CamelContext context) {
+ public static boolean notifyCamelContextResumed(CamelContext context) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -894,29 +941,31 @@ public final class EventHelper {
event = factory.createCamelContextResumedEvent(context);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- public static void notifyCamelContextResumeFailed(CamelContext context, Throwable cause) {
+ public static boolean notifyCamelContextResumeFailed(CamelContext context, Throwable cause) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
- return;
+ return false;
}
EventFactory factory = management.getEventFactory();
if (factory == null) {
- return;
+ return false;
}
List<EventNotifier> notifiers = management.getEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
- return;
+ return false;
}
+ boolean answer = false;
EventObject event = null;
for (EventNotifier notifier : notifiers) {
if (notifier.isIgnoreCamelContextEvents()) {
@@ -928,14 +977,15 @@ public final class EventHelper {
event = factory.createCamelContextResumeFailureEvent(context, cause);
if (event == null) {
// factory could not create event so exit
- return;
+ return false;
}
}
- doNotifyEvent(notifier, event);
+ answer |= doNotifyEvent(notifier, event);
}
+ return answer;
}
- private static void doNotifyEvent(EventNotifier notifier, EventObject event) {
+ private static boolean doNotifyEvent(EventNotifier notifier, EventObject event) {
// only notify if notifier is started
boolean started = true;
if (notifier instanceof StatefulService) {
@@ -943,12 +993,12 @@ public final class EventHelper {
}
if (!started) {
LOG.debug("Ignoring notifying event {}. The EventNotifier has not been started yet: {}", event, notifier);
- return;
+ return false;
}
if (!notifier.isEnabled(event)) {
LOG.trace("Notifier: {} is not enabled for the event: {}", notifier, event);
- return;
+ return false;
}
try {
@@ -956,6 +1006,8 @@ public final class EventHelper {
} catch (Throwable e) {
LOG.warn("Error notifying event " + event + ". This exception will be ignored. ", e);
}
+
+ return true;
}
}