/** * Initializes a {@link SimpleEventHandlerInvoker} containing one or more {@code eventListeners}. If an event * listener is assignable to {@link EventListener} it will registered as is. If not, it will be wrapped by a new * {@link AnnotationEventListenerAdapter}. * <p> * Events handled by the invoker will be passed to all the given {@code eventListeners}. If an exception is * triggered during event handling it will be logged using a {@link LoggingErrorHandler} but otherwise * ignored. * <p> * When this invoker is invoked for multiple Segments (i.e. using parallel processing), events from the same * Aggregate are guaranteed to be processed in sequence (see {@link SequentialPerAggregatePolicy}). * * @param eventListeners one or more event listeners to register with this invoker */ public SimpleEventHandlerInvoker(Object... eventListeners) { this(detectList(eventListeners), new LoggingErrorHandler()); }