// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/event/DomainEventBus.java
// public interface DomainEventBus {
// 
//   void publish(List<DomainEvent> events);
// 
//   void republish(List<DomainEvent> events);
// 
//   <T extends DomainEventListener> T register(T listener);
// 
// }
// 
// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/event/DomainEventStore.java
// public interface DomainEventStore {
// 
//   List<DomainEvent> loadEvents(GenericId id);
// 
//   void save(GenericId id, Class<? extends AggregateRoot> type, List<DomainEvent> events);
// 
//   List<DomainEvent> getAllEvents();
// 
// }


import com.google.common.collect.ImmutableMultimap;
import io.dropwizard.servlets.tasks.Task;
import se.citerus.cqrs.bookstore.event.DomainEventBus;
import se.citerus.cqrs.bookstore.event.DomainEventStore;
import java.io.PrintWriter;
package se.citerus.cqrs.bookstore.ordercontext.application.task;



public class ReplayEventsTask extends Task {

  private final DomainEventStore domainEventStore;
  private final DomainEventBus domainEventBus;

// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/event/DomainEventBus.java
// public interface DomainEventBus {
// 
//   void publish(List<DomainEvent> events);
// 
//   void republish(List<DomainEvent> events);
// 
//   <T extends DomainEventListener> T register(T listener);
// 
// }
// 
// Path: cqrs-lib/src/main/java/se/citerus/cqrs/bookstore/event/DomainEventStore.java
// public interface DomainEventStore {
// 
//   List<DomainEvent> loadEvents(GenericId id);
// 
//   void save(GenericId id, Class<? extends AggregateRoot> type, List<DomainEvent> events);
// 
//   List<DomainEvent> getAllEvents();
// 
// }


// Path: order-context-parent/order-application/src/main/java/se/citerus/cqrs/bookstore/ordercontext/application/task/ReplayEventsTask.java
import com.google.common.collect.ImmutableMultimap;
import io.dropwizard.servlets.tasks.Task;
import se.citerus.cqrs.bookstore.event.DomainEventBus;
import se.citerus.cqrs.bookstore.event.DomainEventStore;
import java.io.PrintWriter;

package se.citerus.cqrs.bookstore.ordercontext.application.task;



public class ReplayEventsTask extends Task {

  private final DomainEventStore domainEventStore;
  private final DomainEventBus domainEventBus;

  public ReplayEventsTask(DomainEventStore domainEventStore, DomainEventBus domainEventBus) {