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 2019/10/29 15:30:15 UTC
[camel] 01/02: CAMEL-10955: Added events for camel starting and
stopping routes so you have events for just that.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit ec4743a613b965f771e9b9590856d5350d57658b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Oct 29 14:50:30 2019 +0100
CAMEL-10955: Added events for camel starting and stopping routes so you have events for just that.
---
.../camel/cdi/test/CamelEventEndpointTest.java | 65 ---------------
.../main/java/org/apache/camel/spi/CamelEvent.java | 32 ++++++++
.../java/org/apache/camel/spi/EventFactory.java | 32 ++++++++
.../camel/impl/engine/AbstractCamelContext.java | 5 ++
.../impl/event/CamelContextRoutesStartedEvent.java | 33 ++++++++
.../event/CamelContextRoutesStartingEvent.java | 33 ++++++++
.../impl/event/CamelContextRoutesStoppedEvent.java | 33 ++++++++
.../event/CamelContextRoutesStoppingEvent.java | 33 ++++++++
.../camel/impl/event/DefaultEventFactory.java | 20 +++++
.../camel/impl/event/EventNotifierEventsTest.java | 92 ++++++++++++----------
.../EventNotifierFailureHandledEventsTest.java | 90 +++++++++++----------
...ventNotifierServiceStoppingFailedEventTest.java | 14 ++--
.../event/MultipleEventNotifierEventsTest.java | 68 +++++++++-------
.../camel/management/RemoveEventNotifierTest.java | 4 +-
.../java/org/apache/camel/support/EventHelper.java | 24 ++++++
15 files changed, 394 insertions(+), 184 deletions(-)
diff --git a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventEndpointTest.java b/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventEndpointTest.java
index 2217c09..252e571 100644
--- a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventEndpointTest.java
+++ b/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventEndpointTest.java
@@ -17,7 +17,6 @@
package org.apache.camel.cdi.test;
import java.util.EventObject;
-
import javax.inject.Inject;
import org.apache.camel.builder.RouteBuilder;
@@ -26,11 +25,6 @@ import org.apache.camel.cdi.CdiEventEndpoint;
import org.apache.camel.cdi.Uri;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.CamelEvent.CamelContextStartedEvent;
-import org.apache.camel.spi.CamelEvent.ExchangeCompletedEvent;
-import org.apache.camel.spi.CamelEvent.ExchangeCreatedEvent;
-import org.apache.camel.spi.CamelEvent.ExchangeSendingEvent;
-import org.apache.camel.spi.CamelEvent.ExchangeSentEvent;
-import org.apache.camel.spi.CamelEvent.RouteStartedEvent;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.Archive;
@@ -41,7 +35,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.either;
import static org.hamcrest.Matchers.hasProperty;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertThat;
@@ -68,64 +61,6 @@ public class CamelEventEndpointTest {
hasProperty("body", instanceOf(CamelContextStartedEvent.class)))));
}
- @Test
- public void camelAllEvents(@Uri("mock:events") MockEndpoint events) {
- assertThat("Events fired are incorrect!", events.getExchanges(),
- // We cannot rely on the delivery order of the camel context started event being fired and observed by both CDI event endpoints
- either(
- contains(
- // Started route: route1
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(RouteStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started route: route2
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(RouteStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started CamelContext: camel-cdi
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(CamelContextStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started CamelContext: camel-cdi (for CdiEventEndpoint<CamelContextStartedEvent> started)
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class)))
- )).or(
- contains(
- // Started route: route1
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(RouteStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started route: route2
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(RouteStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started CamelContext: camel-cdi (for CdiEventEndpoint<CamelContextStartedEvent> started)
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class))),
- // Started CamelContext: camel-cdi
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCreatedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSendingEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(CamelContextStartedEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeSentEvent.class))),
- hasProperty("in", hasProperty("body", instanceOf(ExchangeCompletedEvent.class)))
- )
- )
- );
- }
}
class CamelEventRoute extends RouteBuilder {
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/CamelEvent.java b/core/camel-api/src/main/java/org/apache/camel/spi/CamelEvent.java
index 91879a4..7ce2bb8 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/CamelEvent.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/CamelEvent.java
@@ -39,6 +39,10 @@ public interface CamelEvent {
CamelContextStopping,
CamelContextSuspended,
CamelContextSuspending,
+ CamelContextRoutesStarting,
+ CamelContextRoutesStarted,
+ CamelContextRoutesStopping,
+ CamelContextRoutesStopped,
ExchangeCompleted,
ExchangeCreated,
ExchangeFailed,
@@ -161,6 +165,34 @@ public interface CamelEvent {
}
}
+ interface CamelContextRoutesStartingEvent extends CamelContextEvent {
+ @Override
+ default Type getType() {
+ return Type.CamelContextRoutesStarting;
+ }
+ }
+
+ interface CamelContextRoutesStartedEvent extends CamelContextEvent {
+ @Override
+ default Type getType() {
+ return Type.CamelContextRoutesStarted;
+ }
+ }
+
+ interface CamelContextRoutesStoppingEvent extends CamelContextEvent {
+ @Override
+ default Type getType() {
+ return Type.CamelContextRoutesStopping;
+ }
+ }
+
+ interface CamelContextRoutesStoppedEvent extends CamelContextEvent {
+ @Override
+ default Type getType() {
+ return Type.CamelContextRoutesStopped;
+ }
+ }
+
interface ExchangeEvent extends CamelEvent {
Exchange getExchange();
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/EventFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/EventFactory.java
index f422ad3..41754e7 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/EventFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/EventFactory.java
@@ -80,6 +80,38 @@ public interface EventFactory {
CamelEvent createCamelContextStoppedEvent(CamelContext context);
/**
+ * Creates an {@link CamelEvent} for Camel routes starting.
+ *
+ * @param context camel context
+ * @return the created event
+ */
+ CamelEvent createCamelContextRoutesStartingEvent(CamelContext context);
+
+ /**
+ * Creates an {@link CamelEvent} for Camel routes started.
+ *
+ * @param context camel context
+ * @return the created event
+ */
+ CamelEvent createCamelContextRoutesStartedEvent(CamelContext context);
+
+ /**
+ * Creates an {@link CamelEvent} for Camel routes stopping.
+ *
+ * @param context camel context
+ * @return the created event
+ */
+ CamelEvent createCamelContextRoutesStoppingEvent(CamelContext context);
+
+ /**
+ * Creates an {@link CamelEvent} for Camel routes stopped.
+ *
+ * @param context camel context
+ * @return the created event
+ */
+ CamelEvent createCamelContextRoutesStoppedEvent(CamelContext context);
+
+ /**
* Creates an {@link CamelEvent} for a Service failed to start cleanly
*
* @param context camel context
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 41af8a8..69e0453 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -2629,7 +2629,9 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
}
// invoke this logic to warmup the routes and if possible also start the routes
+ EventHelper.notifyCamelContextRoutesStarting(this);
doStartOrResumeRoutes(routeServices, true, !doNotStartRoutesOnFirstStart, false, true);
+ EventHelper.notifyCamelContextRoutesStarted(this);
long cacheCounter = getBeanIntrospection().getCachedClassesCounter();
if (cacheCounter > 0) {
@@ -2655,6 +2657,7 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
stopWatch.restart();
log.info("Apache Camel {} (CamelContext: {}) is shutting down", getVersion(), getName());
EventHelper.notifyCamelContextStopping(this);
+ EventHelper.notifyCamelContextRoutesStopping(this);
// Stop the route controller
ServiceHelper.stopAndShutdownService(this.routeController);
@@ -2695,6 +2698,8 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
// Camel again and get the route back as before
routeStartupOrder.clear();
+ EventHelper.notifyCamelContextRoutesStopped(this);
+
// but clear any suspend routes
suspendedRouteServices.clear();
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartedEvent.java
new file mode 100644
index 0000000..cded744
--- /dev/null
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartedEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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.impl.event;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelEvent;
+
+public class CamelContextRoutesStartedEvent extends AbstractContextEvent implements CamelEvent.CamelContextRoutesStartedEvent {
+ private static final long serialVersionUID = -1120225323715688981L;
+
+ public CamelContextRoutesStartedEvent(CamelContext source) {
+ super(source);
+ }
+
+ @Override
+ public String toString() {
+ return "Started routes on CamelContext: " + getContext().getName();
+ }
+}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartingEvent.java
new file mode 100644
index 0000000..76a0e60
--- /dev/null
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStartingEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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.impl.event;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelEvent;
+
+public class CamelContextRoutesStartingEvent extends AbstractContextEvent implements CamelEvent.CamelContextRoutesStartingEvent {
+ private static final long serialVersionUID = -1120225323715688981L;
+
+ public CamelContextRoutesStartingEvent(CamelContext source) {
+ super(source);
+ }
+
+ @Override
+ public String toString() {
+ return "Starting routes on CamelContext: " + getContext().getName();
+ }
+}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppedEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppedEvent.java
new file mode 100644
index 0000000..7c37a5b
--- /dev/null
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppedEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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.impl.event;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelEvent;
+
+public class CamelContextRoutesStoppedEvent extends AbstractContextEvent implements CamelEvent.CamelContextRoutesStoppedEvent {
+ private static final long serialVersionUID = -1120225323715688981L;
+
+ public CamelContextRoutesStoppedEvent(CamelContext source) {
+ super(source);
+ }
+
+ @Override
+ public String toString() {
+ return "Stopped routes on CamelContext: " + getContext().getName();
+ }
+}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppingEvent.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppingEvent.java
new file mode 100644
index 0000000..8e80ced
--- /dev/null
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/CamelContextRoutesStoppingEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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.impl.event;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelEvent;
+
+public class CamelContextRoutesStoppingEvent extends AbstractContextEvent implements CamelEvent.CamelContextRoutesStoppingEvent {
+ private static final long serialVersionUID = -1120225323715688981L;
+
+ public CamelContextRoutesStoppingEvent(CamelContext source) {
+ super(source);
+ }
+
+ @Override
+ public String toString() {
+ return "Stopping routes on CamelContext: " + getContext().getName();
+ }
+}
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/event/DefaultEventFactory.java b/core/camel-base/src/main/java/org/apache/camel/impl/event/DefaultEventFactory.java
index 22bc64e..7729788 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/event/DefaultEventFactory.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/event/DefaultEventFactory.java
@@ -51,6 +51,26 @@ public class DefaultEventFactory implements EventFactory {
}
@Override
+ public CamelEvent createCamelContextRoutesStartingEvent(CamelContext context) {
+ return new CamelContextRoutesStartingEvent(context);
+ }
+
+ @Override
+ public CamelEvent createCamelContextRoutesStartedEvent(CamelContext context) {
+ return new CamelContextRoutesStartedEvent(context);
+ }
+
+ @Override
+ public CamelEvent createCamelContextRoutesStoppingEvent(CamelContext context) {
+ return new CamelContextRoutesStoppingEvent(context);
+ }
+
+ @Override
+ public CamelEvent createCamelContextRoutesStoppedEvent(CamelContext context) {
+ return new CamelContextRoutesStoppedEvent(context);
+ }
+
+ @Override
public CamelEvent createCamelContextStartupFailureEvent(CamelContext context, Throwable cause) {
return new CamelContextStartupFailureEvent(context, cause);
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
index 644c769..a2aee4d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierEventsTest.java
@@ -58,30 +58,36 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(14, events.size());
+ assertEquals(16, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.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(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(14));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(15));
context.stop();
- 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(24, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(16));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(19));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(20));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(21));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(22));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(23));
}
@Test
@@ -94,52 +100,58 @@ public class EventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(10, events.size());
+ assertEquals(12, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.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(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(10));
// this is the sent using the produce template to start the test
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
context.stop();
- 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(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(17));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
}
@Test
public void testSuspendResume() throws Exception {
- assertEquals(6, events.size());
+ assertEquals(8, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(7));
context.suspend();
- assertEquals(8, events.size());
- assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(6));
+ assertEquals(10, events.size());
+ assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(8));
// notice direct component is not suspended (as they are internal)
- assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(9));
context.resume();
- assertEquals(10, events.size());
- assertIsInstanceOf(CamelContextResumingEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextResumedEvent.class, events.get(9));
+ assertEquals(12, events.size());
+ assertIsInstanceOf(CamelContextResumingEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextResumedEvent.class, events.get(11));
}
@Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
index 7312898..ca5e0a0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierFailureHandledEventsTest.java
@@ -74,22 +74,24 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- 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));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(8));
assertEquals("should be DLC", true, e0.isDeadLetterChannel());
assertEquals("mock://dead", e0.getDeadLetterUri());
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(9));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(11));
assertEquals("should be DLC", true, e.isDeadLetterChannel());
assertTrue("should be marked as failure handled", e.isHandled());
assertFalse("should not be continued", e.isContinued());
@@ -102,10 +104,10 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
assertEquals("mock://dead", e.getDeadLetterUri());
// dead letter channel will mark the exchange as completed
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
- ExchangeSentEvent sent = (ExchangeSentEvent)events.get(11);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ ExchangeSentEvent sent = (ExchangeSentEvent)events.get(13);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -125,30 +127,32 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- 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));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(8));
assertEquals("should NOT be DLC", false, e0.isDeadLetterChannel());
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(9));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(11));
assertEquals("should NOT be DLC", false, e.isDeadLetterChannel());
assertTrue("should be marked as failure handled", e.isHandled());
assertFalse("should not be continued", e.isContinued());
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
- ExchangeSentEvent sent = (ExchangeSentEvent)events.get(11);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ ExchangeSentEvent sent = (ExchangeSentEvent)events.get(13);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -166,30 +170,32 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- 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));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(5));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(6));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(7));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(8));
assertEquals("should NOT be DLC", false, e0.isDeadLetterChannel());
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(10));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(9));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(11));
assertEquals("should NOT be DLC", false, e.isDeadLetterChannel());
assertFalse("should not be marked as failure handled as it was continued instead", e.isHandled());
assertTrue("should be continued", e.isContinued());
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
- ExchangeSentEvent sent = (ExchangeSentEvent)events.get(11);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ ExchangeSentEvent sent = (ExchangeSentEvent)events.get(13);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
index e7bf382..ab5dc6e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierServiceStoppingFailedEventTest.java
@@ -63,13 +63,17 @@ public class EventNotifierServiceStoppingFailedEventTest extends ContextTestSupp
assertEquals("CBA", stopOrder);
- assertEquals(5, events.size());
+ assertEquals(9, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(1));
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(2));
- ServiceStopFailureEvent event = assertIsInstanceOf(ServiceStopFailureEvent.class, events.get(3));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(3));
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(4));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(6));
+ ServiceStopFailureEvent event = assertIsInstanceOf(ServiceStopFailureEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(8));
assertEquals("Fail B", event.getCause().getMessage());
assertEquals("Failure to stop service: B due to Fail B", event.toString());
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
index c959bb8..3e154e4 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/MultipleEventNotifierEventsTest.java
@@ -77,21 +77,23 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(14, events.size());
+ assertEquals(16, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.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(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(7));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(8));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(9));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(14));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(15));
assertEquals(8, events2.size());
assertIsInstanceOf(ExchangeSendingEvent.class, events2.get(0));
@@ -105,13 +107,15 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
context.stop();
- 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(24, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(16));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(19));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(20));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(21));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(22));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(23));
assertEquals(8, events2.size());
}
@@ -126,17 +130,19 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(10, events.size());
+ assertEquals(12, events.size());
assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.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));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(7));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(10));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
assertEquals(4, events2.size());
@@ -146,13 +152,15 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(ExchangeFailedEvent.class, events2.get(2));
assertIsInstanceOf(ExchangeSentEvent.class, events2.get(3));
- 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(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(14));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(17));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(19));
assertEquals(4, events2.size());
}
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java b/core/camel-management/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
index c1c916d..fe4c1e9 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/RemoveEventNotifierTest.java
@@ -61,7 +61,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
// remove and we should not get new events
context.getManagementStrategy().removeEventNotifier(notifier);
@@ -71,7 +71,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Bye World");
assertMockEndpointsSatisfied();
- assertEquals(12, events.size());
+ assertEquals(14, events.size());
}
@Override
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
index 8b8719e..fb0b8f9 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/EventHelper.java
@@ -73,6 +73,30 @@ public final class EventHelper {
EventNotifier::isIgnoreCamelContextEvents);
}
+ public static boolean notifyCamelContextRoutesStarting(CamelContext context) {
+ return doNotify(context,
+ factory -> factory.createCamelContextRoutesStartingEvent(context),
+ EventNotifier::isIgnoreCamelContextEvents);
+ }
+
+ public static boolean notifyCamelContextRoutesStarted(CamelContext context) {
+ return doNotify(context,
+ factory -> factory.createCamelContextRoutesStartedEvent(context),
+ EventNotifier::isIgnoreCamelContextEvents);
+ }
+
+ public static boolean notifyCamelContextRoutesStopping(CamelContext context) {
+ return doNotify(context,
+ factory -> factory.createCamelContextRoutesStoppingEvent(context),
+ EventNotifier::isIgnoreCamelContextEvents);
+ }
+
+ public static boolean notifyCamelContextRoutesStopped(CamelContext context) {
+ return doNotify(context,
+ factory -> factory.createCamelContextRoutesStoppedEvent(context),
+ EventNotifier::isIgnoreCamelContextEvents);
+ }
+
public static boolean notifyCamelContextStopFailure(CamelContext context, Throwable cause) {
return doNotify(context,
factory -> factory.createCamelContextStopFailureEvent(context, cause),