@Inject public InMemoryPersistentBus() { final ThreadGroup group = new ThreadGroup(EVENT_BUS_GROUP_NAME); final Executor executor = Executors.newCachedThreadPool(new ThreadFactory() { @Override public Thread newThread(final Runnable r) { return new Thread(group, r, EVENT_BUS_TH_NAME); } }); this.delegate = new EventBusDelegate(EVENT_BUS_IDENTIFIER, group, executor); this.isInitialized = new AtomicBoolean(false); }
@Override public void stop() { if (isInitialized.compareAndSet(true, false)) { log.info("InMemoryPersistentBus stopping..."); delegate.completeDispatch(); delegate.stop(); log.info("InMemoryPersistentBus stopped..."); } } }
public void completeDispatch() { dispatchQueuedEvents(); }
@Override public void postFromTransaction(final BusEvent event, final Transmogrifier transmogrifier) throws EventBusException { checkInitialized("postFromTransaction"); delegate.post(event); }
@Override public void unregister(final Object handlerInstance) throws EventBusException { checkInitialized("unregister"); delegate.unregister(handlerInstance); }
@Override public void post(final BusEvent event) throws EventBusException { checkInitialized("post"); delegate.post(event); }
@Override public void register(final Object handlerInstance) throws EventBusException { checkInitialized("register"); delegate.register(handlerInstance); }