AggregateEventHandler implements EventHandler<T>, LifecycleAware { @Override public void onStart() { for (final EventHandler<T> eventHandler : eventHandlers) { if (eventHandler instanceof LifecycleAware) { ((LifecycleAware) eventHandler).onStart(); } } } AggregateEventHandler(final EventHandler<T>... eventHandlers); @Override void onEvent(final T event, final long sequence, final boolean endOfBatch); @Override void onStart(); @Override void onShutdown();  }
@Test public void shouldCallOnStartInSequence() throws Exception { final AggregateEventHandler<int[]> aggregateEventHandler = new AggregateEventHandler<int[]>( eh1, eh2, eh3); aggregateEventHandler.onStart(); assertStartCalls(1, eh1, eh2, eh3); }