@Override public void event(Event event) { try { if (event instanceof Added) { Added addedEvent = (Added) event; QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(addedEvent.getMailboxPath()); handleAddedEvent(addedEvent, quotaRoot); } else if (event instanceof Expunged) { Expunged expungedEvent = (Expunged) event; QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(expungedEvent.getMailboxPath()); handleExpungedEvent(expungedEvent, quotaRoot); } else if (event instanceof MailboxDeletion) { MailboxDeletion mailboxDeletionEvent = (MailboxDeletion) event; handleMailboxDeletionEvent(mailboxDeletionEvent); } } catch (MailboxException e) { LOGGER.error("Error while updating quotas", e); } }
@Override public QuotaManager createQuotaManager(MaxQuotaManager maxQuotaManager, StoreMailboxManager mailboxManager) throws Exception { QuotaRootResolver quotaRootResolver = createQuotaRootResolver(mailboxManager); InMemoryCurrentQuotaManager currentQuotaManager = createCurrentQuotaManager(mailboxManager); StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager); ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, mailboxManager.getEventDispatcher(), quotaManager); mailboxManager.setQuotaManager(quotaManager); mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, null); return quotaManager; }
public static MessageIdManagerTestSystem createTestingDataWithQuota(CassandraCluster cassandra, QuotaManager quotaManager, CurrentQuotaManager currentQuotaManager) throws Exception { CassandraMailboxSessionMapperFactory mapperFactory = CassandraTestSystemFixture.createMapperFactory(cassandra); CassandraMailboxManager mailboxManager = CassandraTestSystemFixture.createMailboxManager(mapperFactory); ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater( (StoreCurrentQuotaManager) currentQuotaManager, mailboxManager.getQuotaRootResolver(), mailboxManager.getEventDispatcher(), quotaManager); mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, mailboxManager.createSystemSession("System")); return new MessageIdManagerTestSystem(CassandraTestSystemFixture.createMessageIdManager(mapperFactory, quotaManager, mailboxManager.getEventDispatcher()), new CassandraMessageId.Factory(), mapperFactory, mailboxManager); }
QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(mapperFactory); ListeningCurrentQuotaUpdater quotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaUpdater, quotaRootResolver, mailboxEventDispatcher, storeQuotaManager); manager.setQuotaManager(storeQuotaManager); manager.setQuotaUpdater(quotaUpdater);