@Override protected void configure() { //https://spin.atomicobject.com/2012/01/13/the-guava-eventbus-on-guice/ bind(AsyncEventBus.class) .annotatedWith(EventBusOnly.class) .toProvider(AsyncEventBusProvider.class) .in(Singleton.class); bind(EventBus.class).toProvider(EventBusProvider.class).in(Singleton.class); bind(EventBusDelegate.class); bind(ListeningScheduledExecutorService.class) .annotatedWith(EventBusOnly.class) .toProvider(EventBusExecutorServiceProvider.class) .in(Singleton.class); bind(ListeningExecutorService.class) .annotatedWith(EventBusOnly.class) .toProvider(EventBusExecutorServiceProvider.class) .in(Singleton.class); bind(ExecutorService.class) .annotatedWith(EventBusOnly.class) .toProvider(EventBusExecutorServiceProvider.class) .in(Singleton.class); registerListeners(); }