class SharedGuiceModule extends AbstractModule {

    @Provides @Inject @Singleton
    ThreadMonitor provideThreadMonitor(ExecutorServiceFactory factory,
            ShutdownManager wrapper, @Named(DEBUG_THREAD_MANAGER) Debug debug) {
        return new ThreadMonitor(factory.createCachedThreadPool(DEBUG_THREAD_MANAGER), wrapper, debug);
    }

}