Repository: karaf-decanter Updated Branches: refs/heads/master 80c6bd107 -> fe001e9b1
Use source instead of checking for every single event type Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/fe001e9b Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/fe001e9b Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/fe001e9b Branch: refs/heads/master Commit: fe001e9b1779023fae0908ab37f3b50044c6284c Parents: 80c6bd1 Author: Christian Schneider <[email protected]> Authored: Tue Jul 18 13:36:05 2017 +0200 Committer: Christian Schneider <[email protected]> Committed: Tue Jul 18 13:36:05 2017 +0200 ---------------------------------------------------------------------- .../collector/camel/DecanterEventNotifier.java | 79 ++++++-------------- 1 file changed, 24 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/fe001e9b/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifier.java ---------------------------------------------------------------------- diff --git a/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifier.java b/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifier.java index 0f73819..c79b9ea 100644 --- a/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifier.java +++ b/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifier.java @@ -6,7 +6,9 @@ import java.util.EventObject; import java.util.HashMap; import java.util.Map; +import org.apache.camel.CamelContext; import org.apache.camel.Exchange; +import org.apache.camel.Route; import org.apache.camel.RouteNode; import org.apache.camel.spi.TracedRouteNodes; import org.apache.camel.support.EventNotifierSupport; @@ -42,7 +44,6 @@ import org.osgi.service.event.EventAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class DecanterEventNotifier extends EventNotifierSupport { private static final Logger LOG = LoggerFactory.getLogger(DecanterEventNotifier.class.getName()); @@ -85,60 +86,28 @@ public class DecanterEventNotifier extends EventNotifierSupport { @Override public boolean isEnabled(EventObject eventObject) { - if (eventObject != null) { - if (eventObject instanceof AbstractExchangeEvent) { - AbstractExchangeEvent event = (AbstractExchangeEvent) eventObject; - if (event.getExchange().getFromRouteId() != null) { - return (event.getExchange().getFromRouteId().matches(routeMatcher) && event.getExchange().getContext().getName().matches(camelContextMatcher)); - } else { - return (event.getExchange().getContext().getName().matches(camelContextMatcher)); - } - } - if (eventObject instanceof CamelContextResumedEvent) { - return ((CamelContextResumedEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextResumeFailureEvent) { - return ((CamelContextResumeFailureEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextResumingEvent) { - return ((CamelContextResumingEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStartedEvent) { - return ((CamelContextStartedEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStartingEvent) { - return ((CamelContextStartingEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStartupFailureEvent) { - return ((CamelContextStartupFailureEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStopFailureEvent) { - return ((CamelContextStopFailureEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStoppedEvent) { - return ((CamelContextStoppedEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof CamelContextStoppingEvent) { - return ((CamelContextStoppingEvent) eventObject).getContext().getName().matches(camelContextMatcher); - } - if (eventObject instanceof RouteAddedEvent) { - return ((RouteAddedEvent) eventObject).getRoute().getRouteContext().getCamelContext().getName().matches(camelContextMatcher) - && ((RouteAddedEvent) eventObject).getRoute().getId().matches(routeMatcher); - } - if (eventObject instanceof RouteRemovedEvent) { - return ((RouteRemovedEvent) eventObject).getRoute().getRouteContext().getCamelContext().getName().matches(camelContextMatcher) - && ((RouteRemovedEvent) eventObject).getRoute().getId().matches(routeMatcher); - } - if (eventObject instanceof RouteStartedEvent) { - return ((RouteStartedEvent) eventObject).getRoute().getRouteContext().getCamelContext().getName().matches(camelContextMatcher) - && ((RouteStartedEvent) eventObject).getRoute().getId().matches(routeMatcher); - } - if (eventObject instanceof RouteStoppedEvent) { - return ((RouteStoppedEvent) eventObject).getRoute().getRouteContext().getCamelContext().getName().matches(camelContextMatcher) - && ((RouteStoppedEvent) eventObject).getRoute().getId().matches(routeMatcher); - } + if (eventObject == null) { + return false; + } + Object source = eventObject.getSource(); + if (source instanceof Exchange) { + Exchange exchange = (Exchange)source; + boolean contextMatches = exchange.getContext().getName().matches(camelContextMatcher); + if (exchange.getFromRouteId() != null) { + return exchange.getFromRouteId().matches(routeMatcher) && contextMatches; + } else { + return contextMatches; + } + } else if (source instanceof CamelContext) { + CamelContext context = (CamelContext)eventObject.getSource(); + return context.getName().matches(camelContextMatcher); + } else if (source instanceof Route) { + Route route = (Route)source; + boolean contextMatches = route.getRouteContext().getCamelContext().getName().matches(camelContextMatcher); + return contextMatches && route.getId().matches(routeMatcher); + } else { + return false; } - return false; } public void notify(EventObject event) throws Exception { @@ -364,4 +333,4 @@ public class DecanterEventNotifier extends EventNotifierSupport { return (cause != null) ? cause.toString() : null; } -} \ No newline at end of file +}
