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 2021/10/19 05:39:24 UTC
[camel] branch main updated (b979c10 -> 896c08d)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git.
from b979c10 (chores) camel-activemq: cleaned up tests to avoid Thread.sleep calls
new 2e86768 Regen
new d7f29e9 CAMEL-17102: camel-core - EventNotifier for CamelContextInitializing/Initiazed should fire even if the notifier has not been fully started.
new 896c08d CAMEL-17102: camel-core - EventNotifier for CamelContextInitializing/Initiazed should fire even if the notifier has not been fully started.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../camel/cdi/test/CamelEventNotifierTest.java | 15 +++
.../java/org/apache/camel/spi/EventNotifier.java | 4 +
.../camel/impl/event/EventNotifierEventsTest.java | 132 +++++++++++----------
.../EventNotifierFailureHandledEventsTest.java | 114 +++++++++---------
...ntNotifierIgnoreCamelContextInitEventsTest.java | 113 ++++++++++++++++++
.../event/EventNotifierRedeliveryEventsTest.java | 2 +-
.../event/MultipleEventNotifierEventsTest.java | 102 ++++++++--------
.../impl/event/SimpleEventNotifierEventsTest.java | 116 +++++++++---------
.../apache/camel/processor/SplitterMapTest.java | 2 +-
.../camel/management/RemoveEventNotifierTest.java | 4 +-
.../java/org/apache/camel/support/EventHelper.java | 25 ++--
.../camel/support/SimpleEventNotifierSupport.java | 11 ++
.../ROOT/pages/camel-3x-upgrade-guide-3_13.adoc | 6 +
13 files changed, 411 insertions(+), 235 deletions(-)
create mode 100644 core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
[camel] 03/03: CAMEL-17102: camel-core - EventNotifier for
CamelContextInitializing/Initiazed should fire even if the notifier has not
been fully started.
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 896c08d99912ddbed796d10fd1ac5d5fe66c6b49
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Oct 19 07:38:22 2021 +0200
CAMEL-17102: camel-core - EventNotifier for CamelContextInitializing/Initiazed should fire even if the notifier has not been fully started.
---
.../org/apache/camel/cdi/test/CamelEventNotifierTest.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventNotifierTest.java b/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventNotifierTest.java
index 2f29f62..b6d80bc 100644
--- a/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventNotifierTest.java
+++ b/components/camel-cdi/src/test/java/org/apache/camel/cdi/test/CamelEventNotifierTest.java
@@ -31,6 +31,7 @@ import org.apache.camel.cdi.CdiCamelExtension;
import org.apache.camel.cdi.Uri;
import org.apache.camel.cdi.bean.SimpleCamelRoute;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.spi.CamelEvent;
import org.apache.camel.spi.CamelEvent.CamelContextStartedEvent;
import org.apache.camel.spi.CamelEvent.CamelContextStartingEvent;
import org.apache.camel.spi.CamelEvent.CamelContextStoppedEvent;
@@ -69,6 +70,14 @@ public class CamelEventNotifierTest {
@ApplicationScoped
private List<Class> firedEvents = new ArrayList<>();
+ private void onCamelContextStartingEvent(@Observes CamelEvent.CamelContextInitializingEvent event, List<Class> events) {
+ events.add(CamelEvent.CamelContextInitializingEvent.class);
+ }
+
+ private void onCamelContextStartingEvent(@Observes CamelEvent.CamelContextInitializedEvent event, List<Class> events) {
+ events.add(CamelEvent.CamelContextInitializedEvent.class);
+ }
+
private void onCamelContextStartingEvent(@Observes CamelContextStartingEvent event, List<Class> events) {
events.add(CamelContextStartingEvent.class);
}
@@ -105,6 +114,8 @@ public class CamelEventNotifierTest {
public void startedCamelContext(List<Class> events) {
assertThat("Events fired are incorrect!", events,
contains(
+ CamelEvent.CamelContextInitializingEvent.class,
+ CamelEvent.CamelContextInitializedEvent.class,
CamelContextStartingEvent.class,
CamelContextStartedEvent.class));
}
@@ -121,6 +132,8 @@ public class CamelEventNotifierTest {
assertThat("Events fired are incorrect!", events,
contains(
+ CamelEvent.CamelContextInitializingEvent.class,
+ CamelEvent.CamelContextInitializedEvent.class,
CamelContextStartingEvent.class,
CamelContextStartedEvent.class,
ExchangeSendingEvent.class,
@@ -138,6 +151,8 @@ public class CamelEventNotifierTest {
assertThat("Events fired are incorrect!", events,
contains(
+ CamelEvent.CamelContextInitializingEvent.class,
+ CamelEvent.CamelContextInitializedEvent.class,
CamelContextStartingEvent.class,
CamelContextStartedEvent.class,
ExchangeSendingEvent.class,
[camel] 02/03: CAMEL-17102: camel-core - EventNotifier for
CamelContextInitializing/Initiazed should fire even if the notifier has not
been fully started.
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit d7f29e9c39be08280ae46ac4682444a7e1c8a854
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Oct 19 07:34:39 2021 +0200
CAMEL-17102: camel-core - EventNotifier for CamelContextInitializing/Initiazed should fire even if the notifier has not been fully started.
---
.../java/org/apache/camel/spi/EventNotifier.java | 4 +
.../camel/impl/event/EventNotifierEventsTest.java | 132 +++++++++++----------
.../EventNotifierFailureHandledEventsTest.java | 114 +++++++++---------
...ntNotifierIgnoreCamelContextInitEventsTest.java | 113 ++++++++++++++++++
.../event/EventNotifierRedeliveryEventsTest.java | 2 +-
.../event/MultipleEventNotifierEventsTest.java | 102 ++++++++--------
.../impl/event/SimpleEventNotifierEventsTest.java | 116 +++++++++---------
.../camel/management/RemoveEventNotifierTest.java | 4 +-
.../java/org/apache/camel/support/EventHelper.java | 25 ++--
.../camel/support/SimpleEventNotifierSupport.java | 11 ++
.../ROOT/pages/camel-3x-upgrade-guide-3_13.adoc | 6 +
11 files changed, 395 insertions(+), 234 deletions(-)
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java b/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
index 8abdd4d..4312d01 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/EventNotifier.java
@@ -48,6 +48,10 @@ public interface EventNotifier {
*/
boolean isDisabled();
+ boolean isIgnoreCamelContextInitEvents();
+
+ void setIgnoreCamelContextInitEvents(boolean ignoreCamelContextInitEvents);
+
boolean isIgnoreCamelContextEvents();
void setIgnoreCamelContextEvents(boolean ignoreCamelContextEvents);
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 1878eff..98bd0f0 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
@@ -79,40 +79,42 @@ public class EventNotifierEventsTest {
mock.assertIsSatisfied();
- assertEquals(18, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(11));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(13));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(14));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(15));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(16));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(16));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(17));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(18));
// this is the sent using the produce template to start the test
assertIsInstanceOf(ExchangeSentEvent.class, events.get(17));
context.stop();
- assertEquals(28, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(18));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(19));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(20));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(21));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(22));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(23));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(24));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(25));
- assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(26));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(27));
+ assertEquals(30, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(20));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(21));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(22));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(23));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(24));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(25));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(26));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(27));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(28));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(29));
}
@Test
@@ -128,36 +130,38 @@ public class EventNotifierEventsTest {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(14, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(11));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeFailedEvent.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(24, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(15));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(16));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
- assertIsInstanceOf(RouteStoppingEvent.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(26, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(16));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(18));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(19));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(20));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(21));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(22));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(23));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(24));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(25));
}
@Test
@@ -165,30 +169,32 @@ public class EventNotifierEventsTest {
// not optimized as this requires exchange events
assertTrue(context.adapt(ExtendedCamelContext.class).isEventNotificationApplicable());
- assertEquals(10, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(12, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
context.suspend();
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(10));
+ assertEquals(14, events.size());
+ assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(12));
// notice direct component is not suspended (as they are internal)
- assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(11));
+ assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(13));
context.resume();
- assertEquals(14, events.size());
- assertIsInstanceOf(CamelContextResumingEvent.class, events.get(12));
- assertIsInstanceOf(CamelContextResumedEvent.class, events.get(13));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextResumingEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextResumedEvent.class, events.get(15));
}
protected RouteBuilder createRouteBuilder() throws Exception {
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 ab8ae9b..e1d7b9f 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
@@ -76,25 +76,27 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(15, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(5));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(8));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(9));
+ assertEquals(17, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(5));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(10));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(11));
assertEquals(true, e0.isDeadLetterChannel(), "should be DLC");
assertEquals("mock://dead", e0.getDeadLetterUri());
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(12));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(14));
assertEquals(true, e.isDeadLetterChannel(), "should be DLC");
assertTrue(e.isHandled(), "should be marked as failure handled");
assertFalse(e.isContinued(), "should not be continued");
@@ -107,10 +109,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(13));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(15));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(14));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(14);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(16));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(16);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -130,33 +132,35 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(15, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(5));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(8));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(9));
+ assertEquals(17, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(5));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(10));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(11));
assertEquals(false, e0.isDeadLetterChannel(), "should NOT be DLC");
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(12));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(14));
assertEquals(false, e.isDeadLetterChannel(), "should NOT be DLC");
assertTrue(e.isHandled(), "should be marked as failure handled");
assertFalse(e.isContinued(), "should not be continued");
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(15));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(14));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(14);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(16));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(16);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
@@ -175,33 +179,35 @@ public class EventNotifierFailureHandledEventsTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(15, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(4));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(5));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(6));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(7));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(8));
-
- ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(9));
+ assertEquals(17, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(5));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(6));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(8));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(9));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(10));
+
+ ExchangeFailureHandlingEvent e0 = assertIsInstanceOf(ExchangeFailureHandlingEvent.class, events.get(11));
assertEquals(false, e0.isDeadLetterChannel(), "should NOT be DLC");
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
- ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(12));
+ ExchangeFailureHandledEvent e = assertIsInstanceOf(ExchangeFailureHandledEvent.class, events.get(14));
assertEquals(false, e.isDeadLetterChannel(), "should NOT be DLC");
assertFalse(e.isHandled(), "should not be marked as failure handled as it was continued instead");
assertTrue(e.isContinued(), "should be continued");
// onException will handle the exception
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(15));
// and the last event should be the direct:start
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(14));
- ExchangeSentEvent sent = (ExchangeSentEvent) events.get(14);
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(16));
+ ExchangeSentEvent sent = (ExchangeSentEvent) events.get(16);
assertEquals("direct://start", sent.getEndpoint().getEndpointUri());
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
new file mode 100644
index 0000000..f20bf97
--- /dev/null
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierIgnoreCamelContextInitEventsTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.spi.CamelEvent;
+import org.apache.camel.support.EventNotifierSupport;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.apache.camel.TestSupport.assertIsInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class EventNotifierIgnoreCamelContextInitEventsTest {
+
+ private static List<CamelEvent> events = new ArrayList<>();
+
+ private CamelContext context;
+ private ProducerTemplate template;
+
+ @BeforeEach
+ public void setUp() throws Exception {
+ events.clear();
+ context = createCamelContext();
+ context.addRoutes(createRouteBuilder());
+ template = context.createProducerTemplate();
+ context.start();
+ }
+
+ @AfterEach
+ public void tearDown() throws Exception {
+ if (context != null) {
+ context.stop();
+ }
+ }
+
+ protected CamelContext createCamelContext() throws Exception {
+ DefaultCamelContext context = new DefaultCamelContext();
+ context.getManagementStrategy().addEventNotifier(new EventNotifierSupport() {
+ public void notify(CamelEvent event) throws Exception {
+ events.add(event);
+ }
+
+ @Override
+ protected void doBuild() throws Exception {
+ setIgnoreCamelContextInitEvents(true);
+ }
+ });
+ return context;
+ }
+
+ @Test
+ public void testIgnoreInitEvents() throws Exception {
+ assertEquals(10, events.size());
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
+
+ context.stop();
+
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(11));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(12));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppingEvent.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));
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:start").to("log:foo").to("mock:result");
+
+ from("direct:fail").throwException(new IllegalArgumentException("Damn"));
+ }
+ };
+ }
+
+}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
index b71f4a7..f331281 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/EventNotifierRedeliveryEventsTest.java
@@ -56,7 +56,7 @@ public class EventNotifierRedeliveryEventsTest extends ContextTestSupport {
}
@Override
- protected void doStart() throws Exception {
+ protected void doBuild() throws Exception {
setIgnoreCamelContextEvents(true);
setIgnoreRouteEvents(true);
setIgnoreServiceEvents(true);
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 e81e637..b53eaf8 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
@@ -63,7 +63,7 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
}
@Override
- protected void doStart() throws Exception {
+ protected void doBuild() throws Exception {
setIgnoreCamelContextEvents(true);
setIgnoreServiceEvents(true);
setIgnoreRouteEvents(true);
@@ -80,25 +80,27 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(18, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(20, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(11));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(13));
assertIsInstanceOf(ExchangeSendingEvent.class, events.get(14));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(15));
- assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(16));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(16));
assertIsInstanceOf(ExchangeSentEvent.class, events.get(17));
+ assertIsInstanceOf(ExchangeCompletedEvent.class, events.get(18));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(19));
assertEquals(8, events2.size());
assertIsInstanceOf(ExchangeSendingEvent.class, events2.get(0));
@@ -112,17 +114,17 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
context.stop();
- assertEquals(28, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(18));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(19));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(20));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(21));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(22));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(23));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(24));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(25));
- assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(26));
- assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(27));
+ assertEquals(30, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(20));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(21));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(22));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(23));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(24));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(25));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(26));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(27));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(28));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(29));
assertEquals(8, events2.size());
}
@@ -137,21 +139,23 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(14, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
- assertIsInstanceOf(ExchangeSendingEvent.class, events.get(10));
- assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(11));
- assertIsInstanceOf(ExchangeFailedEvent.class, events.get(12));
- assertIsInstanceOf(ExchangeSentEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
+ assertIsInstanceOf(ExchangeSendingEvent.class, events.get(12));
+ assertIsInstanceOf(ExchangeCreatedEvent.class, events.get(13));
+ assertIsInstanceOf(ExchangeFailedEvent.class, events.get(14));
+ assertIsInstanceOf(ExchangeSentEvent.class, events.get(15));
assertEquals(4, events2.size());
@@ -161,17 +165,17 @@ public class MultipleEventNotifierEventsTest extends ContextTestSupport {
assertIsInstanceOf(ExchangeFailedEvent.class, events2.get(2));
assertIsInstanceOf(ExchangeSentEvent.class, events2.get(3));
- assertEquals(24, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(14));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(15));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(16));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(17));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(18));
- assertIsInstanceOf(RouteStoppingEvent.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(26, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(16));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(18));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(19));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(20));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(21));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(22));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(23));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(24));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(25));
assertEquals(4, events2.size());
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
index b62a3f0..ce174d3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/event/SimpleEventNotifierEventsTest.java
@@ -79,31 +79,33 @@ public class SimpleEventNotifierEventsTest {
mock.assertIsSatisfied();
- assertEquals(10, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(12, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
context.stop();
- assertEquals(20, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(11));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
- assertIsInstanceOf(RouteStoppingEvent.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(22, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(19));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(20));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(21));
}
@Test
@@ -119,31 +121,33 @@ public class SimpleEventNotifierEventsTest {
assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
}
- assertEquals(10, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(12, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
context.stop();
- assertEquals(20, events.size());
- assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(10));
- assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(11));
- assertIsInstanceOf(RouteStoppingEvent.class, events.get(12));
- assertIsInstanceOf(RouteStoppedEvent.class, events.get(13));
- assertIsInstanceOf(RouteRemovedEvent.class, events.get(14));
- assertIsInstanceOf(RouteStoppingEvent.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(22, events.size());
+ assertIsInstanceOf(CamelContextStoppingEvent.class, events.get(12));
+ assertIsInstanceOf(CamelContextRoutesStoppingEvent.class, events.get(13));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(14));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(15));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(16));
+ assertIsInstanceOf(RouteStoppingEvent.class, events.get(17));
+ assertIsInstanceOf(RouteStoppedEvent.class, events.get(18));
+ assertIsInstanceOf(RouteRemovedEvent.class, events.get(19));
+ assertIsInstanceOf(CamelContextRoutesStoppedEvent.class, events.get(20));
+ assertIsInstanceOf(CamelContextStoppedEvent.class, events.get(21));
}
@Test
@@ -151,30 +155,32 @@ public class SimpleEventNotifierEventsTest {
// optimized as this does not require exchange events
assertFalse(context.adapt(ExtendedCamelContext.class).isEventNotificationApplicable());
- assertEquals(10, events.size());
- assertIsInstanceOf(CamelContextStartingEvent.class, events.get(0));
- assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(1));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(2));
- assertIsInstanceOf(RouteAddedEvent.class, events.get(3));
- assertIsInstanceOf(RouteStartingEvent.class, events.get(4));
- assertIsInstanceOf(RouteStartedEvent.class, events.get(5));
+ assertEquals(12, events.size());
+ assertIsInstanceOf(CamelEvent.CamelContextInitializingEvent.class, events.get(0));
+ assertIsInstanceOf(CamelEvent.CamelContextInitializedEvent.class, events.get(1));
+ assertIsInstanceOf(CamelContextStartingEvent.class, events.get(2));
+ assertIsInstanceOf(CamelContextRoutesStartingEvent.class, events.get(3));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(4));
+ assertIsInstanceOf(RouteAddedEvent.class, events.get(5));
assertIsInstanceOf(RouteStartingEvent.class, events.get(6));
assertIsInstanceOf(RouteStartedEvent.class, events.get(7));
- assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(8));
- assertIsInstanceOf(CamelContextStartedEvent.class, events.get(9));
+ assertIsInstanceOf(RouteStartingEvent.class, events.get(8));
+ assertIsInstanceOf(RouteStartedEvent.class, events.get(9));
+ assertIsInstanceOf(CamelContextRoutesStartedEvent.class, events.get(10));
+ assertIsInstanceOf(CamelContextStartedEvent.class, events.get(11));
context.suspend();
- assertEquals(12, events.size());
- assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(10));
+ assertEquals(14, events.size());
+ assertIsInstanceOf(CamelContextSuspendingEvent.class, events.get(12));
// notice direct component is not suspended (as they are internal)
- assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(11));
+ assertIsInstanceOf(CamelContextSuspendedEvent.class, events.get(13));
context.resume();
- assertEquals(14, events.size());
- assertIsInstanceOf(CamelContextResumingEvent.class, events.get(12));
- assertIsInstanceOf(CamelContextResumedEvent.class, events.get(13));
+ assertEquals(16, events.size());
+ assertIsInstanceOf(CamelContextResumingEvent.class, events.get(14));
+ assertIsInstanceOf(CamelContextResumedEvent.class, events.get(15));
}
protected RouteBuilder createRouteBuilder() throws Exception {
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 da1e71f..4716262 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
@@ -66,7 +66,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
- assertEquals(15, events.size());
+ assertEquals(17, events.size());
// remove and we should not get new events
context.getManagementStrategy().removeEventNotifier(notifier);
@@ -76,7 +76,7 @@ public class RemoveEventNotifierTest extends ContextTestSupport {
template.sendBody("direct:start", "Bye World");
assertMockEndpointsSatisfied();
- assertEquals(15, events.size());
+ assertEquals(17, 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 09b5b6a..bf904f9 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
@@ -74,39 +74,39 @@ public final class EventHelper {
}
public static boolean notifyCamelContextInitializing(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextInitializingEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextInitializingEvent, true);
}
public static boolean notifyCamelContextInitialized(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextInitializedEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextInitializedEvent, true);
}
public static boolean notifyCamelContextStarting(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextStartingEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextStartingEvent, false);
}
public static boolean notifyCamelContextStarted(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextStartedEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextStartedEvent, false);
}
public static boolean notifyCamelContextStartupFailed(CamelContext context, Throwable cause) {
- return notifyCamelContext(context, (ef, ctx) -> ef.createCamelContextStartupFailureEvent(ctx, cause));
+ return notifyCamelContext(context, (ef, ctx) -> ef.createCamelContextStartupFailureEvent(ctx, cause), false);
}
public static boolean notifyCamelContextStopping(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextStoppingEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextStoppingEvent, false);
}
public static boolean notifyCamelContextStopped(CamelContext context) {
- return notifyCamelContext(context, EventFactory::createCamelContextStoppedEvent);
+ return notifyCamelContext(context, EventFactory::createCamelContextStoppedEvent, false);
}
public static boolean notifyCamelContextStopFailed(CamelContext context, Throwable cause) {
- return notifyCamelContext(context, (ef, ctx) -> ef.createCamelContextStopFailureEvent(ctx, cause));
+ return notifyCamelContext(context, (ef, ctx) -> ef.createCamelContextStopFailureEvent(ctx, cause), false);
}
private static boolean notifyCamelContext(
- CamelContext context, BiFunction<EventFactory, CamelContext, CamelEvent> eventSupplier) {
+ CamelContext context, BiFunction<EventFactory, CamelContext, CamelEvent> eventSupplier, boolean init) {
ManagementStrategy management = context.getManagementStrategy();
if (management == null) {
return false;
@@ -117,7 +117,9 @@ public final class EventHelper {
return false;
}
- List<EventNotifier> notifiers = management.getStartedEventNotifiers();
+ // init camel context events are triggered before event notifiers is started so get those pre-started notifiers
+ // so we can emit those special init events
+ List<EventNotifier> notifiers = init ? management.getEventNotifiers() : management.getStartedEventNotifiers();
if (notifiers == null || notifiers.isEmpty()) {
return false;
}
@@ -131,6 +133,9 @@ public final class EventHelper {
if (notifier.isIgnoreCamelContextEvents()) {
continue;
}
+ if (init && notifier.isIgnoreCamelContextInitEvents()) {
+ continue;
+ }
if (event == null) {
// only create event once
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java b/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
index ccd65dc..9996bcc 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/SimpleEventNotifierSupport.java
@@ -31,6 +31,7 @@ import org.apache.camel.support.service.ServiceSupport;
*/
public abstract class SimpleEventNotifierSupport extends ServiceSupport implements EventNotifier {
+ boolean ignoreCamelContextInitEvents;
boolean ignoreCamelContextEvents;
boolean ignoreRouteEvents;
boolean ignoreServiceEvents;
@@ -74,6 +75,16 @@ public abstract class SimpleEventNotifierSupport extends ServiceSupport implemen
}
@Override
+ public boolean isIgnoreCamelContextInitEvents() {
+ return ignoreCamelContextInitEvents;
+ }
+
+ @Override
+ public void setIgnoreCamelContextInitEvents(boolean ignoreCamelContextInitEvents) {
+ this.ignoreCamelContextInitEvents = ignoreCamelContextInitEvents;
+ }
+
+ @Override
public void setIgnoreCamelContextEvents(boolean ignoreCamelContextEvents) {
this.ignoreCamelContextEvents = ignoreCamelContextEvents;
}
diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
index 27d224a..3a8942d 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
@@ -36,6 +36,12 @@ to
simple("1", Integer.class)
----
+=== CamelContextInitializing and CamelContextInitialized events
+
+These two events are fired during bootstrap of `CamelContext` even if a custom `EventNotifier`
+may not have been fully started. This is due to that these events happen very early in the
+bootstrap process, but are of importance for event notifiers to be able to react upon.
+
=== Using custom Debugger
Previously when setting a custom org.apache.camel.spi.Debugger, then Camel would automatically
[camel] 01/03: Regen
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 2e8676861ef5488fdea285d3c2011254e4e54cc8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Oct 18 16:36:24 2021 +0200
Regen
---
.../src/test/java/org/apache/camel/processor/SplitterMapTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/SplitterMapTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/SplitterMapTest.java
index d6fe903..6dcdb21 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/SplitterMapTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/SplitterMapTest.java
@@ -49,7 +49,7 @@ public class SplitterMapTest extends ContextTestSupport {
@Override
public void configure() throws Exception {
from("direct:start")
- .split(body())
+ .split(body())
.setHeader("myKey").simple("${body.key}")
.setBody(simple("${body.value}"))
.to("mock:line");