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 <davscl...@apache.org> Authored: Sun Mar 30 13:53:47 2014 +0200 Committer: Claus Ibsen <davscl...@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