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
+}

Reply via email to