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 2014/03/30 13:50:59 UTC
[1/2] git commit: CAMEL-7334: Added events for route added/removed to
event notifier.
Repository: camel
Updated Branches:
refs/heads/camel-2.13.x c96bad213 -> 39744db54
refs/heads/master 6c862043a -> 718d2108f
CAMEL-7334: Added events for route added/removed to event notifier.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/718d2108
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/718d2108
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/718d2108
Branch: refs/heads/master
Commit: 718d2108ff6a577e605458ed17c9604e5d1bd59d
Parents: 6c86204
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Mar 30 13:53:47 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Mar 30 13:53:47 2014 +0200
----------------------------------------------------------------------
.../org/apache/camel/impl/RouteService.java | 5 ++
.../management/event/DefaultEventFactory.java | 8 ++
.../camel/management/event/RouteAddedEvent.java | 44 ++++++++++
.../management/event/RouteRemovedEvent.java | 44 ++++++++++
.../java/org/apache/camel/spi/EventFactory.java | 16 ++++
.../camel/spi/RuntimeEndpointRegistry.java | 7 +-
.../java/org/apache/camel/util/EventHelper.java | 56 +++++++++++++
.../management/EventNotifierEventsTest.java | 84 +++++++++++---------
.../EventNotifierFailureHandledEventsTest.java | 51 ++++++------
.../MultipleEventNotifierEventsTest.java | 62 +++++++++------
.../management/RemoveEventNotifierTest.java | 4 +-
11 files changed, 290 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/RouteService.java b/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
index 3df2829..0986a71 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
@@ -156,6 +156,9 @@ public class RouteService extends ChildServiceSupport {
}
}
startChildService(route, childServices);
+
+ // fire event
+ EventHelper.notifyRouteAdded(camelContext, route);
}
// ensure lifecycle strategy is invoked which among others enlist the route in JMX
@@ -273,6 +276,8 @@ public class RouteService extends ChildServiceSupport {
routePolicy.onRemove(route);
}
}
+ // fire event
+ EventHelper.notifyRouteRemoved(camelContext, route);
}
// need to call onRoutesRemove when the CamelContext is shutting down or Route is shutdown
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java b/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
index fabe071..6019b72 100644
--- a/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
@@ -72,6 +72,14 @@ public class DefaultEventFactory implements EventFactory {
return new RouteStoppedEvent(route);
}
+ public EventObject createRouteAddedEvent(Route route) {
+ return new RouteAddedEvent(route);
+ }
+
+ public EventObject createRouteRemovedEvent(Route route) {
+ return new RouteRemovedEvent(route);
+ }
+
public EventObject createExchangeCreatedEvent(Exchange exchange) {
return new ExchangeCreatedEvent(exchange);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java b/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
new file mode 100644
index 0000000..8e19394
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
@@ -0,0 +1,44 @@
+/**
+ * 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.management.event;
+
+import java.util.EventObject;
+
+import org.apache.camel.Route;
+
+/**
+ * @version
+ */
+public class RouteAddedEvent extends EventObject {
+
+ private static final long serialVersionUID = 9155960708789798708L;
+ private final Route route;
+
+ public RouteAddedEvent(Route source) {
+ super(source);
+ this.route = source;
+ }
+
+ public Route getRoute() {
+ return route;
+ }
+
+ @Override
+ public String toString() {
+ return "Added route: " + route.getId();
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java b/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
new file mode 100644
index 0000000..d08a6b3
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
@@ -0,0 +1,44 @@
+/**
+ * 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.management.event;
+
+import java.util.EventObject;
+
+import org.apache.camel.Route;
+
+/**
+ * @version
+ */
+public class RouteRemovedEvent extends EventObject {
+
+ private static final long serialVersionUID = 7966471393751298719L;
+ private final Route route;
+
+ public RouteRemovedEvent(Route source) {
+ super(source);
+ this.route = source;
+ }
+
+ public Route getRoute() {
+ return route;
+ }
+
+ @Override
+ public String toString() {
+ return "Removed route: " + route.getId();
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java b/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
index c4f889f..feeb9d1 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
@@ -120,6 +120,22 @@ public interface EventFactory {
EventObject createRouteStoppedEvent(Route route);
/**
+ * Creates an {@link EventObject} for {@link Route} has been added successfully.
+ *
+ * @param route the route
+ * @return the created event
+ */
+ EventObject createRouteAddedEvent(Route route);
+
+ /**
+ * Creates an {@link EventObject} for {@link Route} has been removed successfully.
+ *
+ * @param route the route
+ * @return the created event
+ */
+ EventObject createRouteRemovedEvent(Route route);
+
+ /**
* Creates an {@link EventObject} when an {@link org.apache.camel.Exchange} has been created
*
* @param exchange the exchange
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
index 55be054..dcec8a0 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
@@ -53,20 +53,21 @@ public interface RuntimeEndpointRegistry extends Service {
void reset();
/**
- * Number of endpoints in the cache.
+ * Number of endpoints currently in the cache.
*/
int size();
/**
- * Gets all the endpoint uris captured during runtime that are in-use.
+ * Gets all the endpoint uris captured during runtime routing that are in-use of the routes.
*
* @param includeInputs whether to include route inputs
*/
List<String> getAllEndpoints(boolean includeInputs);
/**
- * Gets all the endpoint uris from the given route captured during runtime that are in-use.
+ * Gets all the endpoint uris captured from the given route during runtime routing that are in-use of the routes.
*
+ * @param routeId the route id
* @param includeInputs whether to include route inputs
*/
List<String> getEndpointsPerRoute(String routeId, boolean includeInputs);
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/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 c5206af..a15247c 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
@@ -323,6 +323,62 @@ public final class EventHelper {
}
}
+ public static void notifyRouteAdded(CamelContext context, Route route) {
+ ManagementStrategy management = context.getManagementStrategy();
+ if (management == null) {
+ return;
+ }
+
+ List<EventNotifier> notifiers = management.getEventNotifiers();
+ if (notifiers == null || notifiers.isEmpty()) {
+ return;
+ }
+
+ for (EventNotifier notifier : notifiers) {
+ if (notifier.isIgnoreRouteEvents()) {
+ continue;
+ }
+
+ EventFactory factory = management.getEventFactory();
+ if (factory == null) {
+ return;
+ }
+ EventObject event = factory.createRouteAddedEvent(route);
+ if (event == null) {
+ return;
+ }
+ doNotifyEvent(notifier, event);
+ }
+ }
+
+ public static void notifyRouteRemoved(CamelContext context, Route route) {
+ ManagementStrategy management = context.getManagementStrategy();
+ if (management == null) {
+ return;
+ }
+
+ List<EventNotifier> notifiers = management.getEventNotifiers();
+ if (notifiers == null || notifiers.isEmpty()) {
+ return;
+ }
+
+ for (EventNotifier notifier : notifiers) {
+ if (notifier.isIgnoreRouteEvents()) {
+ continue;
+ }
+
+ EventFactory factory = management.getEventFactory();
+ if (factory == null) {
+ return;
+ }
+ EventObject event = factory.createRouteRemovedEvent(route);
+ if (event == null) {
+ return;
+ }
+ doNotifyEvent(notifier, event);
+ }
+ }
+
public static void notifyExchangeCreated(CamelContext context, Exchange exchange) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
index 58f6638..e9d3b42 100644
--- a/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
@@ -37,6 +37,8 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailedEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
+import org.apache.camel.management.event.RouteRemovedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.management.event.RouteStoppedEvent;
import org.apache.camel.support.EventNotifierSupport;
@@ -84,26 +86,30 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
context.stop();
- assertEquals(16, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
}
public void testExchangeFailed() throws Exception {
@@ -115,45 +121,51 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(8, events.size());
+ assertEquals(10, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(6));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(8));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
context.stop();
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(8));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(9));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(11));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(11));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
}
public void testSuspendResume() throws Exception {
- assertEquals(4, events.size());
+ assertEquals(6, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
context.suspend();
- assertEquals(6, events.size());
- assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(4));
+ assertEquals(8, events.size());
+ assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(6));
// notice direct component is not suspended (as they are internal)
- assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(7));
context.resume();
- assertEquals(8, events.size());
- assertIsInstanceOf(CamelContextResumingEvent.class, events.get(6));
- assertIsInstanceOf(CamelContextResumedEvent.class, events.get(7));
+ assertEquals(10, events.size());
+ assertIsInstanceOf(CamelContextResumingEvent.class, events.get(8));
+ assertIsInstanceOf(CamelContextResumedEvent.class, events.get(9));
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
index fe31f7d..5888018 100644
--- a/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
@@ -31,6 +31,7 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailureHandledEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.processor.SendProcessor;
import org.apache.camel.support.EventNotifierSupport;
@@ -91,25 +92,26 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(10, events.size());
+ assertEquals(11, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(2));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(6));
-
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(8));
assertEquals("should be DLC", true, e.isDeadLetterChannel());
SendProcessor send = assertIsInstanceOf(SendProcessor.class, e.getFailureHandler());
assertEquals("mock://dead", send.getDestination().getEndpointUri());
// dead letter channel will mark the exchange as completed
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(9));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(9);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(10);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -128,23 +130,24 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(10, events.size());
+ assertEquals(11, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(2));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(6));
-
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(8));
assertEquals("should NOT be DLC", false, e.isDeadLetterChannel());
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(9));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(9);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(10);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
index a081f4e..21709e2 100644
--- a/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
@@ -33,6 +33,8 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailedEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
+import org.apache.camel.management.event.RouteRemovedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.management.event.RouteStoppedEvent;
import org.apache.camel.support.EventNotifierSupport;
@@ -107,19 +109,21 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(8));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
assertEquals(8, events2.size());
assertIsInstanceOf(ExchangeSendingEvent.class, events2.get(0));
@@ -133,11 +137,13 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
context.stop();
- assertEquals(16, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
assertEquals(8, events2.size());
}
@@ -151,15 +157,17 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(8, events.size());
+ assertEquals(10, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
assertEquals(4, events2.size());
@@ -169,11 +177,13 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(ExchangeFailedEvent.class, events2.get(2));
assertIsInstanceOf(ExchangeSentEvent.class, events2.get(3));
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(8));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(9));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(11));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(11));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
assertEquals(4, events2.size());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/718d2108/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java b/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
index 10729ff..576141e 100644
--- a/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
@@ -72,7 +72,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(11, events.size());
+ assertEquals(12, events.size());
// remove and we should not get new events
context.getManagementStrategy().removeEventNotifier(notifier);
@@ -82,7 +82,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Bye World");
assertMockEndpointsSatisfied();
- assertEquals(11, events.size());
+ assertEquals(12, events.size());
}
@Override
[2/2] git commit: CAMEL-7334: Added events for route added/removed to
event notifier.
Posted by da...@apache.org.
CAMEL-7334: Added events for route added/removed to event notifier.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/39744db5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/39744db5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/39744db5
Branch: refs/heads/camel-2.13.x
Commit: 39744db54ca529af59f5a1c785f495245c0374bb
Parents: c96bad2
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Mar 30 13:53:47 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Mar 30 13:54:12 2014 +0200
----------------------------------------------------------------------
.../org/apache/camel/impl/RouteService.java | 5 ++
.../management/event/DefaultEventFactory.java | 8 ++
.../camel/management/event/RouteAddedEvent.java | 44 ++++++++++
.../management/event/RouteRemovedEvent.java | 44 ++++++++++
.../java/org/apache/camel/spi/EventFactory.java | 16 ++++
.../camel/spi/RuntimeEndpointRegistry.java | 7 +-
.../java/org/apache/camel/util/EventHelper.java | 56 +++++++++++++
.../management/EventNotifierEventsTest.java | 84 +++++++++++---------
.../EventNotifierFailureHandledEventsTest.java | 51 ++++++------
.../MultipleEventNotifierEventsTest.java | 62 +++++++++------
.../management/RemoveEventNotifierTest.java | 4 +-
11 files changed, 290 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/RouteService.java b/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
index 3df2829..0986a71 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
@@ -156,6 +156,9 @@ public class RouteService extends ChildServiceSupport {
}
}
startChildService(route, childServices);
+
+ // fire event
+ EventHelper.notifyRouteAdded(camelContext, route);
}
// ensure lifecycle strategy is invoked which among others enlist the route in JMX
@@ -273,6 +276,8 @@ public class RouteService extends ChildServiceSupport {
routePolicy.onRemove(route);
}
}
+ // fire event
+ EventHelper.notifyRouteRemoved(camelContext, route);
}
// need to call onRoutesRemove when the CamelContext is shutting down or Route is shutdown
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java b/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
index fabe071..6019b72 100644
--- a/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/management/event/DefaultEventFactory.java
@@ -72,6 +72,14 @@ public class DefaultEventFactory implements EventFactory {
return new RouteStoppedEvent(route);
}
+ public EventObject createRouteAddedEvent(Route route) {
+ return new RouteAddedEvent(route);
+ }
+
+ public EventObject createRouteRemovedEvent(Route route) {
+ return new RouteRemovedEvent(route);
+ }
+
public EventObject createExchangeCreatedEvent(Exchange exchange) {
return new ExchangeCreatedEvent(exchange);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java b/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
new file mode 100644
index 0000000..8e19394
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/event/RouteAddedEvent.java
@@ -0,0 +1,44 @@
+/**
+ * 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.management.event;
+
+import java.util.EventObject;
+
+import org.apache.camel.Route;
+
+/**
+ * @version
+ */
+public class RouteAddedEvent extends EventObject {
+
+ private static final long serialVersionUID = 9155960708789798708L;
+ private final Route route;
+
+ public RouteAddedEvent(Route source) {
+ super(source);
+ this.route = source;
+ }
+
+ public Route getRoute() {
+ return route;
+ }
+
+ @Override
+ public String toString() {
+ return "Added route: " + route.getId();
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java b/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
new file mode 100644
index 0000000..d08a6b3
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/event/RouteRemovedEvent.java
@@ -0,0 +1,44 @@
+/**
+ * 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.management.event;
+
+import java.util.EventObject;
+
+import org.apache.camel.Route;
+
+/**
+ * @version
+ */
+public class RouteRemovedEvent extends EventObject {
+
+ private static final long serialVersionUID = 7966471393751298719L;
+ private final Route route;
+
+ public RouteRemovedEvent(Route source) {
+ super(source);
+ this.route = source;
+ }
+
+ public Route getRoute() {
+ return route;
+ }
+
+ @Override
+ public String toString() {
+ return "Removed route: " + route.getId();
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java b/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
index c4f889f..feeb9d1 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/EventFactory.java
@@ -120,6 +120,22 @@ public interface EventFactory {
EventObject createRouteStoppedEvent(Route route);
/**
+ * Creates an {@link EventObject} for {@link Route} has been added successfully.
+ *
+ * @param route the route
+ * @return the created event
+ */
+ EventObject createRouteAddedEvent(Route route);
+
+ /**
+ * Creates an {@link EventObject} for {@link Route} has been removed successfully.
+ *
+ * @param route the route
+ * @return the created event
+ */
+ EventObject createRouteRemovedEvent(Route route);
+
+ /**
* Creates an {@link EventObject} when an {@link org.apache.camel.Exchange} has been created
*
* @param exchange the exchange
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
index 55be054..dcec8a0 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RuntimeEndpointRegistry.java
@@ -53,20 +53,21 @@ public interface RuntimeEndpointRegistry extends Service {
void reset();
/**
- * Number of endpoints in the cache.
+ * Number of endpoints currently in the cache.
*/
int size();
/**
- * Gets all the endpoint uris captured during runtime that are in-use.
+ * Gets all the endpoint uris captured during runtime routing that are in-use of the routes.
*
* @param includeInputs whether to include route inputs
*/
List<String> getAllEndpoints(boolean includeInputs);
/**
- * Gets all the endpoint uris from the given route captured during runtime that are in-use.
+ * Gets all the endpoint uris captured from the given route during runtime routing that are in-use of the routes.
*
+ * @param routeId the route id
* @param includeInputs whether to include route inputs
*/
List<String> getEndpointsPerRoute(String routeId, boolean includeInputs);
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/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 c5206af..a15247c 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
@@ -323,6 +323,62 @@ public final class EventHelper {
}
}
+ public static void notifyRouteAdded(CamelContext context, Route route) {
+ ManagementStrategy management = context.getManagementStrategy();
+ if (management == null) {
+ return;
+ }
+
+ List<EventNotifier> notifiers = management.getEventNotifiers();
+ if (notifiers == null || notifiers.isEmpty()) {
+ return;
+ }
+
+ for (EventNotifier notifier : notifiers) {
+ if (notifier.isIgnoreRouteEvents()) {
+ continue;
+ }
+
+ EventFactory factory = management.getEventFactory();
+ if (factory == null) {
+ return;
+ }
+ EventObject event = factory.createRouteAddedEvent(route);
+ if (event == null) {
+ return;
+ }
+ doNotifyEvent(notifier, event);
+ }
+ }
+
+ public static void notifyRouteRemoved(CamelContext context, Route route) {
+ ManagementStrategy management = context.getManagementStrategy();
+ if (management == null) {
+ return;
+ }
+
+ List<EventNotifier> notifiers = management.getEventNotifiers();
+ if (notifiers == null || notifiers.isEmpty()) {
+ return;
+ }
+
+ for (EventNotifier notifier : notifiers) {
+ if (notifier.isIgnoreRouteEvents()) {
+ continue;
+ }
+
+ EventFactory factory = management.getEventFactory();
+ if (factory == null) {
+ return;
+ }
+ EventObject event = factory.createRouteRemovedEvent(route);
+ if (event == null) {
+ return;
+ }
+ doNotifyEvent(notifier, event);
+ }
+ }
+
public static void notifyExchangeCreated(CamelContext context, Exchange exchange) {
if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) {
// do not generate events for an notify event
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
index 58f6638..e9d3b42 100644
--- a/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/EventNotifierEventsTest.java
@@ -37,6 +37,8 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailedEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
+import org.apache.camel.management.event.RouteRemovedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.management.event.RouteStoppedEvent;
import org.apache.camel.support.EventNotifierSupport;
@@ -84,26 +86,30 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
context.stop();
- assertEquals(16, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
}
public void testExchangeFailed() throws Exception {
@@ -115,45 +121,51 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(8, events.size());
+ assertEquals(10, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(6));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(8));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
context.stop();
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(8));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(9));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(11));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(11));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
}
public void testSuspendResume() throws Exception {
- assertEquals(4, events.size());
+ assertEquals(6, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
context.suspend();
- assertEquals(6, events.size());
- assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(4));
+ assertEquals(8, events.size());
+ assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(6));
// notice direct component is not suspended (as they are internal)
- assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(7));
context.resume();
- assertEquals(8, events.size());
- assertIsInstanceOf(CamelContextResumingEvent.class, events.get(6));
- assertIsInstanceOf(CamelContextResumedEvent.class, events.get(7));
+ assertEquals(10, events.size());
+ assertIsInstanceOf(CamelContextResumingEvent.class, events.get(8));
+ assertIsInstanceOf(CamelContextResumedEvent.class, events.get(9));
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
index fe31f7d..5888018 100644
--- a/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/EventNotifierFailureHandledEventsTest.java
@@ -31,6 +31,7 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailureHandledEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.processor.SendProcessor;
import org.apache.camel.support.EventNotifierSupport;
@@ -91,25 +92,26 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(10, events.size());
+ assertEquals(11, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(2));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(6));
-
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(8));
assertEquals("should be DLC", true, e.isDeadLetterChannel());
SendProcessor send = assertIsInstanceOf(SendProcessor.class, e.getFailureHandler());
assertEquals("mock://dead", send.getDestination().getEndpointUri());
// dead letter channel will mark the exchange as completed
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(9));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(9);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(10);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -128,23 +130,24 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(10, events.size());
+ assertEquals(11, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(2));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(6));
-
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(8));
assertEquals("should NOT be DLC", false, e.isDeadLetterChannel());
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(9));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(9);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(10);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java b/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
index a081f4e..21709e2 100644
--- a/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/MultipleEventNotifierEventsTest.java
@@ -33,6 +33,8 @@ import org.apache.camel.management.event.ExchangeCreatedEvent;
import org.apache.camel.management.event.ExchangeFailedEvent;
import org.apache.camel.management.event.ExchangeSendingEvent;
import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.RouteAddedEvent;
+import org.apache.camel.management.event.RouteRemovedEvent;
import org.apache.camel.management.event.RouteStartedEvent;
import org.apache.camel.management.event.RouteStoppedEvent;
import org.apache.camel.support.EventNotifierSupport;
@@ -107,19 +109,21 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(8));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
assertEquals(8, events2.size());
assertIsInstanceOf(ExchangeSendingEvent.class, events2.get(0));
@@ -133,11 +137,13 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
context.stop();
- assertEquals(16, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
assertEquals(8, events2.size());
}
@@ -151,15 +157,17 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(8, events.size());
+ assertEquals(10, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(1));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(2));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(4));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(5));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(7));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
assertEquals(4, events2.size());
@@ -169,11 +177,13 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(ExchangeFailedEvent.class, events2.get(2));
assertIsInstanceOf(ExchangeSentEvent.class, events2.get(3));
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(8));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(9));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(11));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(11));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(15));
assertEquals(4, events2.size());
}
http://git-wip-us.apache.org/repos/asf/camel/blob/39744db5/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java b/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
index 10729ff..576141e 100644
--- a/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
@@ -72,7 +72,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(11, events.size());
+ assertEquals(12, events.size());
// remove and we should not get new events
context.getManagementStrategy().removeEventNotifier(notifier);
@@ -82,7 +82,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Bye World");
assertMockEndpointsSatisfied();
- assertEquals(11, events.size());
+ assertEquals(12, events.size());
}
@Override