@Override public void addGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.addGlobalListener(listener); }
@Override public void addListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.addListener(mailboxPath, listener); }
@Override public void removeGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.removeGlobalListener(listener); }
private void mailboxEvent(MailboxEvent mailboxEvent) { Collection<MailboxListener> listenerSnapshot = registry.getLocalMailboxListeners(mailboxEvent.getMailboxPath()); if (mailboxEvent instanceof MailboxDeletion && listenerSnapshot.size() > 0) { registry.deleteRegistryFor(mailboxEvent.getMailboxPath()); } else if (mailboxEvent instanceof MailboxRenamed && listenerSnapshot.size() > 0) { MailboxRenamed renamed = (MailboxRenamed) mailboxEvent; registry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); } deliverEventToMailboxListeners(mailboxEvent, listenerSnapshot); }
@Override public void removeListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.removeListener(mailboxPath, listener); }
@VisibleForTesting public DefaultDelegatingMailboxListener() { this(new SynchronousEventDelivery(new NoopMetricFactory()), new MailboxListenerRegistry()); }
protected void deliverEventToGlobalListeners(Event event) { for (MailboxListener mailboxListener : registry.getGlobalListeners()) { eventDelivery.deliver(mailboxListener, event); } }
private void deliverToMailboxPathRegisteredListeners(MailboxEvent event) { Collection<MailboxListener> listenerSnapshot = mailboxListenerRegistry.getLocalMailboxListeners(event.getMailboxPath()); if (event instanceof MailboxDeletion) { mailboxListenerRegistry.deleteRegistryFor(event.getMailboxPath()); } else if (event instanceof MailboxRenamed) { MailboxRenamed renamed = (MailboxRenamed) event; mailboxListenerRegistry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); } for (MailboxListener listener : listenerSnapshot) { eventDelivery.deliver(listener, event); } }
@Override public void removeListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException { registry.removeListener(mailboxPath, listener); }
public BroadcastDelegatingMailboxListener(Publisher publisher, MessageConsumer messageConsumer, EventSerializer eventSerializer, EventDelivery eventDelivery, String globalTopic) throws Exception { this.mailboxListenerRegistry = new MailboxListenerRegistry(); this.publisher = publisher; this.eventSerializer = eventSerializer; this.globalTopic = new Topic(globalTopic); this.eventDelivery = eventDelivery; messageConsumer.setMessageReceiver(this); messageConsumer.init(this.globalTopic); }
private void deliverEventToOnceGlobalListeners(Event event) { for (MailboxListener mailboxListener : mailboxListenerRegistry.getGlobalListeners()) { if (mailboxListener.getType() == ListenerType.ONCE) { eventDelivery.deliver(mailboxListener, event); } } }
private void deliverToMailboxPathRegisteredListeners(MailboxEvent mailboxEvent) throws MailboxException { Collection<MailboxListener> listenerSnapshot = mailboxListenerRegistry.getLocalMailboxListeners(mailboxEvent.getMailboxPath()); if (mailboxEvent instanceof MailboxDeletion && listenerSnapshot.size() > 0) { mailboxListenerRegistry.deleteRegistryFor(mailboxEvent.getMailboxPath()); mailboxPathRegister.doCompleteUnRegister(mailboxEvent.getMailboxPath()); } else if (mailboxEvent instanceof MailboxRenamed && listenerSnapshot.size() > 0) { MailboxRenamed renamed = (MailboxRenamed) mailboxEvent; mailboxListenerRegistry.handleRename(renamed.getMailboxPath(), renamed.getNewPath()); mailboxPathRegister.doRename(renamed.getMailboxPath(), renamed.getNewPath()); } for (MailboxListener listener : listenerSnapshot) { eventDelivery.deliver(listener, mailboxEvent); } }
@Override public void register(MailboxListener listener) { try { registry.addGlobalListener(listener); } catch (MailboxException e) { LOGGER.error("Error while registering global listener {}", listener, e); throw new RuntimeException(e); } }
@Override public void removeListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.removeListener(mailboxPath, listener); mailboxPathRegister.unregister(mailboxPath); }
public RegisteredDelegatingMailboxListener(EventSerializer eventSerializer, Publisher publisher, MessageConsumer messageConsumer, MailboxPathRegister mailboxPathRegister, EventDelivery eventDelivery) throws Exception { this.eventSerializer = eventSerializer; this.publisher = publisher; this.mailboxPathRegister = mailboxPathRegister; this.mailboxListenerRegistry = new MailboxListenerRegistry(); this.eventDelivery = eventDelivery; messageConsumer.setMessageReceiver(this); messageConsumer.init(mailboxPathRegister.getLocalTopic()); }
private void deliverEventToGlobalListeners(Event event, ListenerType type) { for (MailboxListener mailboxListener : mailboxListenerRegistry.getGlobalListeners()) { if (mailboxListener.getType() == type) { eventDelivery.deliver(mailboxListener, event); } } }
@Override public void addListener(MailboxPath path, MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.addListener(path, listener); mailboxPathRegister.register(path); }
@Override public void removeGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException { mailboxListenerRegistry.removeGlobalListener(listener); }
@Override public void addGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException { if (listener.getType() != ListenerType.EACH_NODE && listener.getType() != ListenerType.ONCE) { throw new MailboxException(listener.getClass().getCanonicalName() + " registered on global event dispatching while its listener type was " + listener.getType()); } registry.addGlobalListener(listener); }
@Override public void addListener(MailboxPath path, MailboxListener listener, MailboxSession session) throws MailboxException { if (listener.getType() != ListenerType.MAILBOX) { throw new MailboxException(listener.getClass().getCanonicalName() + " registred on specific MAILBOX operation while its listener type was " + listener.getType()); } registry.addListener(path, listener); }