JAMES-2344 Global quotas is more explicit than Default quotas Default quota infers max quota resolution while not explaining which type of quota it is.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/28a108f8 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/28a108f8 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/28a108f8 Branch: refs/heads/master Commit: 28a108f8e2bed3da4d3052acbdacec26ab64fe3c Parents: 416a6c9 Author: benwa <[email protected]> Authored: Wed Mar 14 09:42:52 2018 +0700 Committer: benwa <[email protected]> Committed: Thu Mar 15 14:40:15 2018 +0700 ---------------------------------------------------------------------- .../james/mailbox/quota/MaxQuotaManager.java | 32 ++--- .../mailbox/manager/ManagerTestResources.java | 4 +- .../cassandra/modules/CassandraQuotaModule.java | 10 +- .../quota/CassandraDefaultMaxQuotaDao.java | 119 ------------------- .../quota/CassandraGlobalMaxQuotaDao.java | 119 +++++++++++++++++++ .../quota/CassandraPerUserMaxQuotaManager.java | 42 +++---- .../table/CassandraDefaultMaxQuota.java | 30 ----- .../table/CassandraGlobalMaxQuota.java | 30 +++++ .../cassandra/CassandraTestSystemFixture.java | 4 +- .../CassandraPerUserMaxQuotaManagerTest.java | 2 +- .../jpa/quota/JPAPerUserMaxQuotaDAO.java | 36 +++--- .../jpa/quota/JPAPerUserMaxQuotaManager.java | 32 ++--- .../jpa/quota/model/MaxDefaultMessageCount.java | 54 --------- .../jpa/quota/model/MaxDefaultStorage.java | 54 --------- .../jpa/quota/model/MaxGlobalMessageCount.java | 54 +++++++++ .../jpa/quota/model/MaxGlobalStorage.java | 54 +++++++++ .../src/main/resources/META-INF/persistence.xml | 4 +- .../james/mailbox/jpa/JPAMailboxFixture.java | 12 +- .../quota/InMemoryPerUserMaxQuotaManager.java | 12 +- .../james/mailbox/store/probe/QuotaProbe.java | 8 +- .../store/quota/FixedMaxQuotaManager.java | 14 +-- .../mailbox/store/quota/NoMaxQuotaManager.java | 12 +- .../AbstractMessageIdManagerQuotaTest.java | 10 +- .../store/quota/GenericMaxQuotaManagerTest.java | 48 ++++---- .../cassandra/host/CassandraHostSystem.java | 8 +- .../inmemory/host/InMemoryHostSystem.java | 4 +- .../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 4 +- .../src/main/resources/META-INF/persistence.xml | 4 +- .../james/cli/QuotaCommandsIntegrationTest.java | 28 ++--- .../java/org/apache/james/cli/ServerCmd.java | 16 +-- .../james/cli/probe/impl/JmxQuotaProbe.java | 16 +-- .../java/org/apache/james/cli/type/CmdType.java | 8 +- .../org/apache/james/cli/ServerCmdTest.java | 45 ++++--- .../org/apache/james/cli/type/CmdTypeTest.java | 16 +-- .../modules/mailbox/CassandraQuotaModule.java | 4 +- .../src/main/resources/META-INF/persistence.xml | 4 +- .../apache/james/modules/QuotaProbesImpl.java | 20 ++-- .../james/adapter/mailbox/QuotaManagement.java | 28 ++--- .../adapter/mailbox/QuotaManagementMBean.java | 8 +- .../mailbox/MaxQuotaConfigurationReader.java | 16 +-- .../transport/matchers/IsOverQuotaTest.java | 8 +- .../integration/GetMailboxesMethodTest.java | 4 +- .../webadmin/service/GlobalQuotaService.java | 24 ++-- .../webadmin/routes/GlobalQuotaRoutesTest.java | 52 ++++---- .../webadmin/routes/UserQuotaRoutesTest.java | 10 +- src/site/markdown/server/manage-cli.md | 10 +- 46 files changed, 566 insertions(+), 567 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java index 830a81a..7773ede 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java @@ -63,42 +63,42 @@ public interface MaxQuotaManager { void removeMaxStorage(QuotaRoot quotaRoot) throws MailboxException; /** - * Method allowing you to set the default maximum storage in bytes. + * Method allowing you to set the global maximum storage in bytes. * - * @param defaultMaxStorage new default maximum storage + * @param globalMaxStorage new global maximum storage */ - void setDefaultMaxStorage(QuotaSize defaultMaxStorage) throws MailboxException; + void setGlobalMaxStorage(QuotaSize globalMaxStorage) throws MailboxException; /** - * Method allowing you to remove the default maximum messages size in bytes. + * Method allowing you to remove the global maximum messages size in bytes. */ - void removeDefaultMaxStorage() throws MailboxException; + void removeGlobalMaxStorage() throws MailboxException; /** - * Method allowing you to set the default maximum message count allowed + * Method allowing you to set the global maximum message count allowed * - * @param defaultMaxMessageCount new default message count + * @param globalMaxMessageCount new global message count */ - void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) throws MailboxException; + void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) throws MailboxException; /** - * Method allowing you to remove the default maximum messages count. + * Method allowing you to remove the global maximum messages count. */ - void removeDefaultMaxMessage() throws MailboxException; + void removeGlobalMaxMessage() throws MailboxException; /** - * Method allowing you to get the default maximum storage in bytes. + * Method allowing you to get the global maximum storage in bytes. * - * @return default maximum storage, if defined + * @return global maximum storage, if defined */ - Optional<QuotaSize> getDefaultMaxStorage() throws MailboxException; + Optional<QuotaSize> getGlobalMaxStorage() throws MailboxException; /** - * Method allowing you to get the default maximum message count allowed + * Method allowing you to get the global maximum message count allowed * - * @return default maximum message count, if defined + * @return global maximum message count, if defined */ - Optional<QuotaCount> getDefaultMaxMessage() throws MailboxException; + Optional<QuotaCount> getGlobalMaxMessage() throws MailboxException; /** * Return the maximum storage which is allowed for the given {@link QuotaRoot} (in fact the user which the session is bound to) http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java index 2c9d34f..774c06a 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java @@ -77,8 +77,8 @@ public class ManagerTestResources<T extends MailboxManager> { inbox = MailboxPath.inbox(session); subFolder = new MailboxPath(inbox, "INBOX.SUB"); - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(1000)); - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(1000000)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(1000)); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(1000000)); } public void createMailboxes() throws MailboxException { http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java index 4598fb9..73c7353 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java @@ -30,8 +30,8 @@ import org.apache.james.backends.cassandra.components.CassandraTable; import org.apache.james.backends.cassandra.components.CassandraType; import org.apache.james.backends.cassandra.utils.CassandraConstants; import org.apache.james.mailbox.cassandra.table.CassandraCurrentQuota; -import org.apache.james.mailbox.cassandra.table.CassandraDefaultMaxQuota; import org.apache.james.mailbox.cassandra.table.CassandraDomainMaxQuota; +import org.apache.james.mailbox.cassandra.table.CassandraGlobalMaxQuota; import org.apache.james.mailbox.cassandra.table.CassandraMaxQuota; import com.datastax.driver.core.schemabuilder.SchemaBuilder; @@ -74,11 +74,11 @@ public class CassandraQuotaModule implements CassandraModule { .comment("Holds per domain limitations. Limitations can concern the number of messages in a quota-root or the total size of a quota-root.") .caching(SchemaBuilder.KeyCaching.ALL, SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION))), - new CassandraTable(CassandraDefaultMaxQuota.TABLE_NAME, - SchemaBuilder.createTable(CassandraDefaultMaxQuota.TABLE_NAME) + new CassandraTable(CassandraGlobalMaxQuota.TABLE_NAME, + SchemaBuilder.createTable(CassandraGlobalMaxQuota.TABLE_NAME) .ifNotExists() - .addPartitionKey(CassandraDefaultMaxQuota.TYPE, text()) - .addColumn(CassandraDefaultMaxQuota.VALUE, bigint()) + .addPartitionKey(CassandraGlobalMaxQuota.TYPE, text()) + .addColumn(CassandraGlobalMaxQuota.VALUE, bigint()) .withOptions() .comment("Holds defaults limitations definition.") .caching(SchemaBuilder.KeyCaching.ALL, http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraDefaultMaxQuotaDao.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraDefaultMaxQuotaDao.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraDefaultMaxQuotaDao.java deleted file mode 100644 index 8205863..0000000 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraDefaultMaxQuotaDao.java +++ /dev/null @@ -1,119 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mailbox.cassandra.quota; - -import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker; -import static com.datastax.driver.core.querybuilder.QueryBuilder.delete; -import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; -import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; -import static com.datastax.driver.core.querybuilder.QueryBuilder.select; - -import java.util.Optional; - -import javax.inject.Inject; - -import org.apache.james.mailbox.cassandra.table.CassandraDefaultMaxQuota; -import org.apache.james.mailbox.quota.QuotaCount; -import org.apache.james.mailbox.quota.QuotaSize; - -import com.datastax.driver.core.PreparedStatement; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Session; -import com.datastax.driver.core.querybuilder.Delete; -import com.datastax.driver.core.querybuilder.Insert; -import com.datastax.driver.core.querybuilder.Select; - -public class CassandraDefaultMaxQuotaDao { - - private final Session session; - private final PreparedStatement setDefaultMaxStorageStatement; - private final PreparedStatement setDefaultMaxMessageStatement; - private final PreparedStatement getDefaultMaxStatement; - private final PreparedStatement removeDefaultMaxQuotaStatement; - - @Inject - public CassandraDefaultMaxQuotaDao(Session session) { - this.session = session; - this.getDefaultMaxStatement = session.prepare(getDefaultMaxStatement()); - this.setDefaultMaxMessageStatement = session.prepare(setDefaultMaxMessageStatement()); - this.setDefaultMaxStorageStatement = session.prepare(setDefaultMaxStorageStatement()); - this.removeDefaultMaxQuotaStatement = session.prepare(removeDefaultMaxQuotaStatement()); - } - - private Delete.Where removeDefaultMaxQuotaStatement() { - return delete().all() - .from(CassandraDefaultMaxQuota.TABLE_NAME) - .where(eq(CassandraDefaultMaxQuota.TYPE, bindMarker(CassandraDefaultMaxQuota.TYPE))); - } - - private Insert setDefaultMaxStorageStatement() { - return insertInto(CassandraDefaultMaxQuota.TABLE_NAME) - .value(CassandraDefaultMaxQuota.TYPE, CassandraDefaultMaxQuota.STORAGE) - .value(CassandraDefaultMaxQuota.VALUE, bindMarker()); - } - - private Insert setDefaultMaxMessageStatement() { - return insertInto(CassandraDefaultMaxQuota.TABLE_NAME) - .value(CassandraDefaultMaxQuota.TYPE, CassandraDefaultMaxQuota.MESSAGE) - .value(CassandraDefaultMaxQuota.VALUE, bindMarker()); - } - - private Select.Where getDefaultMaxStatement() { - return select(CassandraDefaultMaxQuota.VALUE) - .from(CassandraDefaultMaxQuota.TABLE_NAME) - .where(eq(CassandraDefaultMaxQuota.TYPE, bindMarker(CassandraDefaultMaxQuota.TYPE))); - } - - public void setDefaultMaxStorage(QuotaSize defaultMaxStorage) { - session.execute(setDefaultMaxStorageStatement.bind(QuotaCodec.quotaValueToLong(defaultMaxStorage))); - } - - public void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) { - session.execute(setDefaultMaxMessageStatement.bind(QuotaCodec.quotaValueToLong(defaultMaxMessageCount))); - } - - public Optional<QuotaSize> getDefaultMaxStorage() { - ResultSet resultSet = session.execute(getDefaultMaxStatement.bind() - .setString(CassandraDefaultMaxQuota.TYPE, CassandraDefaultMaxQuota.STORAGE)); - if (resultSet.isExhausted()) { - return Optional.empty(); - } - Long maxStorage = resultSet.one().get(CassandraDefaultMaxQuota.VALUE, Long.class); - return QuotaCodec.longToQuotaSize(maxStorage); - } - - public Optional<QuotaCount> getDefaultMaxMessage() { - ResultSet resultSet = session.execute(getDefaultMaxStatement.bind() - .setString(CassandraDefaultMaxQuota.TYPE, CassandraDefaultMaxQuota.MESSAGE)); - if (resultSet.isExhausted()) { - return Optional.empty(); - } - Long maxMessages = resultSet.one().get(CassandraDefaultMaxQuota.VALUE, Long.class); - return QuotaCodec.longToQuotaCount(maxMessages); - } - - public void removeDefaultMaxStorage() { - session.execute(removeDefaultMaxQuotaStatement.bind(CassandraDefaultMaxQuota.STORAGE)); - } - - public void removeDefaultMaxMessage() { - session.execute(removeDefaultMaxQuotaStatement.bind(CassandraDefaultMaxQuota.MESSAGE)); - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java new file mode 100644 index 0000000..3497ab6 --- /dev/null +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java @@ -0,0 +1,119 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailbox.cassandra.quota; + +import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker; +import static com.datastax.driver.core.querybuilder.QueryBuilder.delete; +import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; +import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; +import static com.datastax.driver.core.querybuilder.QueryBuilder.select; + +import java.util.Optional; + +import javax.inject.Inject; + +import org.apache.james.mailbox.cassandra.table.CassandraGlobalMaxQuota; +import org.apache.james.mailbox.quota.QuotaCount; +import org.apache.james.mailbox.quota.QuotaSize; + +import com.datastax.driver.core.PreparedStatement; +import com.datastax.driver.core.ResultSet; +import com.datastax.driver.core.Session; +import com.datastax.driver.core.querybuilder.Delete; +import com.datastax.driver.core.querybuilder.Insert; +import com.datastax.driver.core.querybuilder.Select; + +public class CassandraGlobalMaxQuotaDao { + + private final Session session; + private final PreparedStatement setGlobalMaxStorageStatement; + private final PreparedStatement setGlobalMaxMessageStatement; + private final PreparedStatement getGlobalMaxStatement; + private final PreparedStatement removeGlobalMaxQuotaStatement; + + @Inject + public CassandraGlobalMaxQuotaDao(Session session) { + this.session = session; + this.getGlobalMaxStatement = session.prepare(getGlobalMaxStatement()); + this.setGlobalMaxMessageStatement = session.prepare(setGlobalMaxMessageStatement()); + this.setGlobalMaxStorageStatement = session.prepare(setGlobalMaxStorageStatement()); + this.removeGlobalMaxQuotaStatement = session.prepare(removeGlobalMaxQuotaStatement()); + } + + private Delete.Where removeGlobalMaxQuotaStatement() { + return delete().all() + .from(CassandraGlobalMaxQuota.TABLE_NAME) + .where(eq(CassandraGlobalMaxQuota.TYPE, bindMarker(CassandraGlobalMaxQuota.TYPE))); + } + + private Insert setGlobalMaxStorageStatement() { + return insertInto(CassandraGlobalMaxQuota.TABLE_NAME) + .value(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.STORAGE) + .value(CassandraGlobalMaxQuota.VALUE, bindMarker()); + } + + private Insert setGlobalMaxMessageStatement() { + return insertInto(CassandraGlobalMaxQuota.TABLE_NAME) + .value(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.MESSAGE) + .value(CassandraGlobalMaxQuota.VALUE, bindMarker()); + } + + private Select.Where getGlobalMaxStatement() { + return select(CassandraGlobalMaxQuota.VALUE) + .from(CassandraGlobalMaxQuota.TABLE_NAME) + .where(eq(CassandraGlobalMaxQuota.TYPE, bindMarker(CassandraGlobalMaxQuota.TYPE))); + } + + public void setGlobalMaxStorage(QuotaSize globalMaxStorage) { + session.execute(setGlobalMaxStorageStatement.bind(QuotaCodec.quotaValueToLong(globalMaxStorage))); + } + + public void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) { + session.execute(setGlobalMaxMessageStatement.bind(QuotaCodec.quotaValueToLong(globalMaxMessageCount))); + } + + public Optional<QuotaSize> getGlobalMaxStorage() { + ResultSet resultSet = session.execute(getGlobalMaxStatement.bind() + .setString(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.STORAGE)); + if (resultSet.isExhausted()) { + return Optional.empty(); + } + Long maxStorage = resultSet.one().get(CassandraGlobalMaxQuota.VALUE, Long.class); + return QuotaCodec.longToQuotaSize(maxStorage); + } + + public Optional<QuotaCount> getGlobalMaxMessage() { + ResultSet resultSet = session.execute(getGlobalMaxStatement.bind() + .setString(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.MESSAGE)); + if (resultSet.isExhausted()) { + return Optional.empty(); + } + Long maxMessages = resultSet.one().get(CassandraGlobalMaxQuota.VALUE, Long.class); + return QuotaCodec.longToQuotaCount(maxMessages); + } + + public void removeGlobaltMaxStorage() { + session.execute(removeGlobalMaxQuotaStatement.bind(CassandraGlobalMaxQuota.STORAGE)); + } + + public void removeGlobalMaxMessage() { + session.execute(removeGlobalMaxQuotaStatement.bind(CassandraGlobalMaxQuota.MESSAGE)); + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManager.java index 7c4b716..617904d 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManager.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManager.java @@ -42,15 +42,15 @@ public class CassandraPerUserMaxQuotaManager implements MaxQuotaManager { private final CassandraPerUserMaxQuotaDao perUserQuota; private final CassandraPerDomainMaxQuotaDao perDomainQuota; - private final CassandraDefaultMaxQuotaDao defaultQuota; + private final CassandraGlobalMaxQuotaDao globalQuota; @Inject public CassandraPerUserMaxQuotaManager(CassandraPerUserMaxQuotaDao perUserQuota, CassandraPerDomainMaxQuotaDao domainQuota, - CassandraDefaultMaxQuotaDao defaultQuota) { + CassandraGlobalMaxQuotaDao globalQuota) { this.perUserQuota = perUserQuota; this.perDomainQuota = domainQuota; - this.defaultQuota = defaultQuota; + this.globalQuota = globalQuota; } @Override @@ -104,45 +104,45 @@ public class CassandraPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public void setDefaultMaxStorage(QuotaSize defaultMaxStorage) { - defaultQuota.setDefaultMaxStorage(defaultMaxStorage); + public void setGlobalMaxStorage(QuotaSize globalMaxStorage) { + globalQuota.setGlobalMaxStorage(globalMaxStorage); } @Override - public void removeDefaultMaxStorage() { - defaultQuota.removeDefaultMaxStorage(); + public void removeGlobalMaxStorage() { + globalQuota.removeGlobaltMaxStorage(); } @Override - public void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) { - defaultQuota.setDefaultMaxMessage(defaultMaxMessageCount); + public void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) { + globalQuota.setGlobalMaxMessage(globalMaxMessageCount); } @Override - public void removeDefaultMaxMessage() { - defaultQuota.removeDefaultMaxMessage(); + public void removeGlobalMaxMessage() { + globalQuota.removeGlobalMaxMessage(); } @Override - public Optional<QuotaSize> getDefaultMaxStorage() { - return defaultQuota.getDefaultMaxStorage(); + public Optional<QuotaSize> getGlobalMaxStorage() { + return globalQuota.getGlobalMaxStorage(); } @Override - public Optional<QuotaCount> getDefaultMaxMessage() { - return defaultQuota.getDefaultMaxMessage(); + public Optional<QuotaCount> getGlobalMaxMessage() { + return globalQuota.getGlobalMaxMessage(); } @Override public Optional<QuotaSize> getMaxStorage(QuotaRoot quotaRoot) { Supplier<Optional<QuotaSize>> domainQuotaSupplier = Throwing.supplier(() -> quotaRoot.getDomain() .flatMap(this::getDomainMaxStorage)).sneakyThrow(); - Supplier<Optional<QuotaSize>> defaultDomainSupplier = Throwing.supplier(this::getDefaultMaxStorage).sneakyThrow(); + Supplier<Optional<QuotaSize>> globalDomainSupplier = Throwing.supplier(this::getGlobalMaxStorage).sneakyThrow(); return Stream .of(() -> perUserQuota.getMaxStorage(quotaRoot), domainQuotaSupplier, - defaultDomainSupplier) + globalDomainSupplier) .flatMap(supplier -> OptionalUtils.toStream(supplier.get())) .findFirst(); } @@ -151,12 +151,12 @@ public class CassandraPerUserMaxQuotaManager implements MaxQuotaManager { public Optional<QuotaCount> getMaxMessage(QuotaRoot quotaRoot) { Supplier<Optional<QuotaCount>> domainQuotaSupplier = Throwing.supplier(() -> quotaRoot.getDomain() .flatMap(this::getDomainMaxMessage)).sneakyThrow(); - Supplier<Optional<QuotaCount>> defaultDomainSupplier = Throwing.supplier(this::getDefaultMaxMessage).sneakyThrow(); + Supplier<Optional<QuotaCount>> globalDomainSupplier = Throwing.supplier(this::getGlobalMaxMessage).sneakyThrow(); return Stream .of(() -> perUserQuota.getMaxMessage(quotaRoot), domainQuotaSupplier, - defaultDomainSupplier) + globalDomainSupplier) .flatMap(supplier -> OptionalUtils.toStream(supplier.get())) .findFirst(); } @@ -167,7 +167,7 @@ public class CassandraPerUserMaxQuotaManager implements MaxQuotaManager { return Stream.of( Pair.of(Quota.Scope.User, perUserQuota.getMaxMessage(quotaRoot)), Pair.of(Quota.Scope.Domain, quotaRoot.getDomain().flatMap(domainQuotaSupplier)), - Pair.of(Quota.Scope.Global, defaultQuota.getDefaultMaxMessage())) + Pair.of(Quota.Scope.Global, globalQuota.getGlobalMaxMessage())) .filter(pair -> pair.getValue().isPresent()) .collect(Guavate.toImmutableMap(Pair::getKey, value -> value.getValue().get())); } @@ -178,7 +178,7 @@ public class CassandraPerUserMaxQuotaManager implements MaxQuotaManager { return Stream.of( Pair.of(Quota.Scope.User, perUserQuota.getMaxStorage(quotaRoot)), Pair.of(Quota.Scope.Domain, quotaRoot.getDomain().flatMap(domainQuotaSupplier)), - Pair.of(Quota.Scope.Global, defaultQuota.getDefaultMaxStorage())) + Pair.of(Quota.Scope.Global, globalQuota.getGlobalMaxStorage())) .filter(pair -> pair.getValue().isPresent()) .collect(Guavate.toImmutableMap(Pair::getKey, value -> value.getValue().get())); } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDefaultMaxQuota.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDefaultMaxQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDefaultMaxQuota.java deleted file mode 100644 index 5492686..0000000 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDefaultMaxQuota.java +++ /dev/null @@ -1,30 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mailbox.cassandra.table; - -public interface CassandraDefaultMaxQuota { - String TABLE_NAME = "defaultMaxQuota"; - - String TYPE = "type"; - String VALUE = "value"; - - String MESSAGE = "message"; - String STORAGE = "storage"; -} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java new file mode 100644 index 0000000..ef671fe --- /dev/null +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java @@ -0,0 +1,30 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailbox.cassandra.table; + +public interface CassandraGlobalMaxQuota { + String TABLE_NAME = "defaultMaxQuota"; + + String TYPE = "type"; + String VALUE = "value"; + + String MESSAGE = "message"; + String STORAGE = "storage"; +} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java index f396b81..f89c251 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java @@ -26,7 +26,7 @@ import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver; import org.apache.james.mailbox.acl.UnionMailboxACLResolver; import org.apache.james.mailbox.cassandra.ids.CassandraMessageId; import org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager; -import org.apache.james.mailbox.cassandra.quota.CassandraDefaultMaxQuotaDao; +import org.apache.james.mailbox.cassandra.quota.CassandraGlobalMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerDomainMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager; @@ -86,7 +86,7 @@ public class CassandraTestSystemFixture { return new CassandraPerUserMaxQuotaManager( new CassandraPerUserMaxQuotaDao(cassandra.getConf()), new CassandraPerDomainMaxQuotaDao(cassandra.getConf()), - new CassandraDefaultMaxQuotaDao(cassandra.getConf())); + new CassandraGlobalMaxQuotaDao(cassandra.getConf())); } public static CurrentQuotaManager createCurrentQuotaManager(CassandraCluster cassandra) { http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java index 0f351ac..57fec83 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java @@ -39,7 +39,7 @@ public class CassandraPerUserMaxQuotaManagerTest extends GenericMaxQuotaManagerT return new CassandraPerUserMaxQuotaManager( new CassandraPerUserMaxQuotaDao(cassandra.getConf()), new CassandraPerDomainMaxQuotaDao(cassandra.getConf()), - new CassandraDefaultMaxQuotaDao(cassandra.getConf())); + new CassandraGlobalMaxQuotaDao(cassandra.getConf())); } @After http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java index ab46ff9..79b0932 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java @@ -26,10 +26,10 @@ import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; -import org.apache.james.mailbox.jpa.quota.model.MaxDefaultMessageCount; -import org.apache.james.mailbox.jpa.quota.model.MaxDefaultStorage; import org.apache.james.mailbox.jpa.quota.model.MaxDomainMessageCount; import org.apache.james.mailbox.jpa.quota.model.MaxDomainStorage; +import org.apache.james.mailbox.jpa.quota.model.MaxGlobalMessageCount; +import org.apache.james.mailbox.jpa.quota.model.MaxGlobalStorage; import org.apache.james.mailbox.jpa.quota.model.MaxUserMessageCount; import org.apache.james.mailbox.jpa.quota.model.MaxUserStorage; import org.apache.james.mailbox.model.QuotaRoot; @@ -117,50 +117,50 @@ public class JPAPerUserMaxQuotaDAO { } - public void setDefaultMaxStorage(Optional<QuotaSize> defaultMaxStorage) { + public void setGlobalMaxStorage(Optional<QuotaSize> globalMaxStorage) { entityManager.getTransaction().begin(); - MaxDefaultStorage defaultMaxStorageEntity = getDefaultMaxStorageEntity(defaultMaxStorage); - entityManager.persist(defaultMaxStorageEntity); + MaxGlobalStorage globalMaxStorageEntity = getGlobalMaxStorageEntity(globalMaxStorage); + entityManager.persist(globalMaxStorageEntity); entityManager.getTransaction().commit(); } - private MaxDefaultStorage getDefaultMaxStorageEntity(Optional<QuotaSize> maxSizeQuota) { - MaxDefaultStorage storedValue = entityManager.find(MaxDefaultStorage.class, MaxDefaultStorage.DEFAULT_KEY); + private MaxGlobalStorage getGlobalMaxStorageEntity(Optional<QuotaSize> maxSizeQuota) { + MaxGlobalStorage storedValue = entityManager.find(MaxGlobalStorage.class, MaxGlobalStorage.DEFAULT_KEY); Long value = quotaValueToLong(maxSizeQuota); if (storedValue == null) { - return new MaxDefaultStorage(value); + return new MaxGlobalStorage(value); } storedValue.setValue(value); return storedValue; } - public void setDefaultMaxMessage(Optional<QuotaCount> defaultMaxMessageCount) { + public void setGlobalMaxMessage(Optional<QuotaCount> globalMaxMessageCount) { entityManager.getTransaction().begin(); - MaxDefaultMessageCount defaultMaxMessageEntity = getDefaultMaxMessageEntity(defaultMaxMessageCount); - entityManager.persist(defaultMaxMessageEntity); + MaxGlobalMessageCount globalMaxMessageEntity = getGlobalMaxMessageEntity(globalMaxMessageCount); + entityManager.persist(globalMaxMessageEntity); entityManager.getTransaction().commit(); } - private MaxDefaultMessageCount getDefaultMaxMessageEntity(Optional<QuotaCount> maxMessageQuota) { - MaxDefaultMessageCount storedValue = entityManager.find(MaxDefaultMessageCount.class, MaxDefaultMessageCount.DEFAULT_KEY); + private MaxGlobalMessageCount getGlobalMaxMessageEntity(Optional<QuotaCount> maxMessageQuota) { + MaxGlobalMessageCount storedValue = entityManager.find(MaxGlobalMessageCount.class, MaxGlobalMessageCount.DEFAULT_KEY); Long value = quotaValueToLong(maxMessageQuota); if (storedValue == null) { - return new MaxDefaultMessageCount(value); + return new MaxGlobalMessageCount(value); } storedValue.setValue(value); return storedValue; } - public Optional<QuotaSize> getDefaultMaxStorage() { - MaxDefaultStorage storedValue = entityManager.find(MaxDefaultStorage.class, MaxDefaultStorage.DEFAULT_KEY); + public Optional<QuotaSize> getGlobalMaxStorage() { + MaxGlobalStorage storedValue = entityManager.find(MaxGlobalStorage.class, MaxGlobalStorage.DEFAULT_KEY); if (storedValue == null) { return Optional.empty(); } return longToQuotaSize(storedValue.getValue()); } - public Optional<QuotaCount> getDefaultMaxMessage() { - MaxDefaultMessageCount storedValue = entityManager.find(MaxDefaultMessageCount.class, MaxDefaultMessageCount.DEFAULT_KEY); + public Optional<QuotaCount> getGlobalMaxMessage() { + MaxGlobalMessageCount storedValue = entityManager.find(MaxGlobalMessageCount.class, MaxGlobalMessageCount.DEFAULT_KEY); if (storedValue == null) { return Optional.empty(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java index bb75be5..cd0735f 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java @@ -93,28 +93,28 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public void setDefaultMaxStorage(QuotaSize defaultMaxStorage) { - dao.setDefaultMaxStorage(Optional.of(defaultMaxStorage)); + public void setGlobalMaxStorage(QuotaSize globalMaxStorage) { + dao.setGlobalMaxStorage(Optional.of(globalMaxStorage)); } @Override - public void removeDefaultMaxMessage() { - dao.setDefaultMaxMessage(Optional.empty()); + public void removeGlobalMaxMessage() { + dao.setGlobalMaxMessage(Optional.empty()); } @Override - public void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) { - dao.setDefaultMaxMessage(Optional.of(defaultMaxMessageCount)); + public void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) { + dao.setGlobalMaxMessage(Optional.of(globalMaxMessageCount)); } @Override - public Optional<QuotaSize> getDefaultMaxStorage() { - return dao.getDefaultMaxStorage(); + public Optional<QuotaSize> getGlobalMaxStorage() { + return dao.getGlobalMaxStorage(); } @Override - public Optional<QuotaCount> getDefaultMaxMessage() { - return dao.getDefaultMaxMessage(); + public Optional<QuotaCount> getGlobalMaxMessage() { + return dao.getGlobalMaxMessage(); } @Override @@ -122,7 +122,7 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { return Stream .of((Supplier<Optional<QuotaSize>>) () -> dao.getMaxStorage(quotaRoot), () -> quotaRoot.getDomain().flatMap(this::getDomainMaxStorage), - this::getDefaultMaxStorage) + this::getGlobalMaxStorage) .flatMap(supplier -> OptionalUtils.toStream(supplier.get())) .findFirst(); } @@ -132,7 +132,7 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { return Stream .of((Supplier<Optional<QuotaCount>>) () -> dao.getMaxMessage(quotaRoot), () -> quotaRoot.getDomain().flatMap(this::getDomainMaxMessage), - this::getDefaultMaxMessage) + this::getGlobalMaxMessage) .flatMap(supplier -> OptionalUtils.toStream(supplier.get())) .findFirst(); } @@ -143,7 +143,7 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { return Stream.of( Pair.of(Quota.Scope.User, dao.getMaxMessage(quotaRoot)), Pair.of(Quota.Scope.Domain, quotaRoot.getDomain().flatMap(domainQuotaFunction)), - Pair.of(Quota.Scope.Global, dao.getDefaultMaxMessage())) + Pair.of(Quota.Scope.Global, dao.getGlobalMaxMessage())) .filter(pair -> pair.getValue().isPresent()) .collect(Guavate.toImmutableMap(Pair::getKey, value -> value.getValue().get())); } @@ -154,7 +154,7 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { return Stream.of( Pair.of(Quota.Scope.User, dao.getMaxStorage(quotaRoot)), Pair.of(Quota.Scope.Domain, quotaRoot.getDomain().flatMap(domainQuotaFunction)), - Pair.of(Quota.Scope.Global, dao.getDefaultMaxStorage())) + Pair.of(Quota.Scope.Global, dao.getGlobalMaxStorage())) .filter(pair -> pair.getValue().isPresent()) .collect(Guavate.toImmutableMap(Pair::getKey, value -> value.getValue().get())); } @@ -165,8 +165,8 @@ public class JPAPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public void removeDefaultMaxStorage() { - dao.setDefaultMaxStorage(Optional.empty()); + public void removeGlobalMaxStorage() { + dao.setGlobalMaxStorage(Optional.empty()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultMessageCount.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultMessageCount.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultMessageCount.java deleted file mode 100644 index 941e42a..0000000 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultMessageCount.java +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mailbox.jpa.quota.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity(name = "MaxDefaultMessageCount") -@Table(name = "JAMES_MAX_DEFAULT_MESSAGE_COUNT") -public class MaxDefaultMessageCount { - public static final String DEFAULT_KEY = "default_key"; - - @Id - @Column(name = "QUOTAROOT_ID") - private String quotaRoot = DEFAULT_KEY; - - @Column(name = "VALUE", nullable = true) - private Long value; - - public MaxDefaultMessageCount(Long value) { - this.quotaRoot = DEFAULT_KEY; - this.value = value; - } - - public MaxDefaultMessageCount() { - } - - public Long getValue() { - return value; - } - - public void setValue(Long value) { - this.value = value; - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultStorage.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultStorage.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultStorage.java deleted file mode 100644 index de4a388..0000000 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDefaultStorage.java +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ - -package org.apache.james.mailbox.jpa.quota.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity(name = "MaxDefaultStorage") -@Table(name = "JAMES_MAX_DEFAULT_STORAGE") -public class MaxDefaultStorage { - public static final String DEFAULT_KEY = "default_key"; - - @Id - @Column(name = "QUOTAROOT_ID") - private String quotaRoot = DEFAULT_KEY; - - @Column(name = "VALUE", nullable = true) - private Long value; - - public MaxDefaultStorage(Long value) { - this.quotaRoot = DEFAULT_KEY; - this.value = value; - } - - public MaxDefaultStorage() { - } - - public Long getValue() { - return value; - } - - public void setValue(Long value) { - this.value = value; - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalMessageCount.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalMessageCount.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalMessageCount.java new file mode 100644 index 0000000..04bc8ee --- /dev/null +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalMessageCount.java @@ -0,0 +1,54 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailbox.jpa.quota.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity(name = "MaxGlobalMessageCount") +@Table(name = "JAMES_MAX_GLOBAL_MESSAGE_COUNT") +public class MaxGlobalMessageCount { + public static final String DEFAULT_KEY = "default_key"; + + @Id + @Column(name = "QUOTAROOT_ID") + private String quotaRoot = DEFAULT_KEY; + + @Column(name = "VALUE", nullable = true) + private Long value; + + public MaxGlobalMessageCount(Long value) { + this.quotaRoot = DEFAULT_KEY; + this.value = value; + } + + public MaxGlobalMessageCount() { + } + + public Long getValue() { + return value; + } + + public void setValue(Long value) { + this.value = value; + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalStorage.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalStorage.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalStorage.java new file mode 100644 index 0000000..7f99110 --- /dev/null +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalStorage.java @@ -0,0 +1,54 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailbox.jpa.quota.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity(name = "MaxGlobalStorage") +@Table(name = "JAMES_MAX_Global_STORAGE") +public class MaxGlobalStorage { + public static final String DEFAULT_KEY = "default_key"; + + @Id + @Column(name = "QUOTAROOT_ID") + private String quotaRoot = DEFAULT_KEY; + + @Column(name = "VALUE", nullable = true) + private Long value; + + public MaxGlobalStorage(Long value) { + this.quotaRoot = DEFAULT_KEY; + this.value = value; + } + + public MaxGlobalStorage() { + } + + public Long getValue() { + return value; + } + + public void setValue(Long value) { + this.value = value; + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/main/resources/META-INF/persistence.xml ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/resources/META-INF/persistence.xml b/mailbox/jpa/src/main/resources/META-INF/persistence.xml index 4cb6069..c8f2f28 100644 --- a/mailbox/jpa/src/main/resources/META-INF/persistence.xml +++ b/mailbox/jpa/src/main/resources/META-INF/persistence.xml @@ -30,8 +30,8 @@ <class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage</class> <class>org.apache.james.mailbox.jpa.mail.model.JPAProperty</class> <class>org.apache.james.mailbox.jpa.user.model.JPASubscription</class> - <class>org.apache.james.mailbox.jpa.quota.model.MaxDefaultMessageCount</class> - <class>org.apache.james.mailbox.jpa.quota.model.MaxDefaultStorage</class> + <class>org.apache.james.mailbox.jpa.quota.model.MaxGlobalMessageCount</class> + <class>org.apache.james.mailbox.jpa.quota.model.MaxGlobalStorage</class> <class>org.apache.james.mailbox.jpa.quota.model.MaxUserMessageCount</class> <class>org.apache.james.mailbox.jpa.quota.model.MaxUserStorage</class> <class>org.apache.james.mailbox.jpa.quota.model.JpaCurrentQuota</class> http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java index 056e5dd..fd34a55 100644 --- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java +++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java @@ -28,10 +28,10 @@ import org.apache.james.mailbox.jpa.mail.model.JPAUserFlag; import org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage; import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage; import org.apache.james.mailbox.jpa.quota.model.JpaCurrentQuota; -import org.apache.james.mailbox.jpa.quota.model.MaxDefaultMessageCount; -import org.apache.james.mailbox.jpa.quota.model.MaxDefaultStorage; import org.apache.james.mailbox.jpa.quota.model.MaxDomainMessageCount; import org.apache.james.mailbox.jpa.quota.model.MaxDomainStorage; +import org.apache.james.mailbox.jpa.quota.model.MaxGlobalMessageCount; +import org.apache.james.mailbox.jpa.quota.model.MaxGlobalStorage; import org.apache.james.mailbox.jpa.quota.model.MaxUserMessageCount; import org.apache.james.mailbox.jpa.quota.model.MaxUserStorage; import org.apache.james.mailbox.jpa.user.model.JPASubscription; @@ -51,8 +51,8 @@ public interface JPAMailboxFixture { ); List<Class<?>> QUOTA_PERSISTANCE_CLASSES = ImmutableList.<Class<?>>of( - MaxDefaultMessageCount.class, - MaxDefaultStorage.class, + MaxGlobalMessageCount.class, + MaxGlobalStorage.class, MaxDomainStorage.class, MaxDomainMessageCount.class, MaxUserMessageCount.class, @@ -69,8 +69,8 @@ public interface JPAMailboxFixture { "JAMES_SUBSCRIPTION"); List<String> QUOTA_TABLES_NAMES = ImmutableList.<String>of( - "JAMES_MAX_DEFAULT_MESSAGE_COUNT", - "JAMES_MAX_DEFAULT_STORAGE", + "JAMES_MAX_GLOBAL_MESSAGE_COUNT", + "JAMES_MAX_GLOBAL_STORAGE", "JAMES_MAX_USER_MESSAGE_COUNT", "JAMES_MAX_USER_STORAGE", "JAMES_MAX_DOMAIN_MESSAGE_COUNT", http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java index eb0a971..3338613 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java @@ -47,7 +47,7 @@ public class InMemoryPerUserMaxQuotaManager implements MaxQuotaManager { private final Map<String, QuotaCount> userMaxMessage = new ConcurrentHashMap<>(); @Override - public void setDefaultMaxStorage(QuotaSize maxStorage) { + public void setGlobalMaxStorage(QuotaSize maxStorage) { this.maxStorage = Optional.of(maxStorage); } @@ -110,7 +110,7 @@ public class InMemoryPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public void setDefaultMaxMessage(QuotaCount maxMessage) { + public void setGlobalMaxMessage(QuotaCount maxMessage) { this.maxMessage = Optional.of(maxMessage); } @@ -135,12 +135,12 @@ public class InMemoryPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public Optional<QuotaSize> getDefaultMaxStorage() { + public Optional<QuotaSize> getGlobalMaxStorage() { return maxStorage; } @Override - public Optional<QuotaCount> getDefaultMaxMessage() { + public Optional<QuotaCount> getGlobalMaxMessage() { return maxMessage; } @@ -155,12 +155,12 @@ public class InMemoryPerUserMaxQuotaManager implements MaxQuotaManager { } @Override - public void removeDefaultMaxStorage() { + public void removeGlobalMaxStorage() { maxStorage = Optional.empty(); } @Override - public void removeDefaultMaxMessage() { + public void removeGlobalMaxMessage() { maxMessage = Optional.empty(); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java index 8747dae..2bcbff6 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/QuotaProbe.java @@ -37,16 +37,16 @@ public interface QuotaProbe { SerializableQuotaValue<QuotaSize> getMaxStorage(String quotaRoot) throws MailboxException; - SerializableQuotaValue<QuotaCount> getDefaultMaxMessageCount() throws MailboxException; + SerializableQuotaValue<QuotaCount> getGlobalMaxMessageCount() throws MailboxException; - SerializableQuotaValue<QuotaSize> getDefaultMaxStorage() throws MailboxException; + SerializableQuotaValue<QuotaSize> getGlobalMaxStorage() throws MailboxException; void setMaxMessageCount(String quotaRoot, SerializableQuotaValue<QuotaCount> maxMessageCount) throws MailboxException; void setMaxStorage(String quotaRoot, SerializableQuotaValue<QuotaSize> maxSize) throws MailboxException; - void setDefaultMaxMessageCount(SerializableQuotaValue<QuotaCount> maxDefaultMessageCount) throws MailboxException; + void setGlobalMaxMessageCount(SerializableQuotaValue<QuotaCount> maxGlobalMessageCount) throws MailboxException; - void setDefaultMaxStorage(SerializableQuotaValue<QuotaSize> maxDefaultSize) throws MailboxException; + void setGlobalMaxStorage(SerializableQuotaValue<QuotaSize> maxGlobalSize) throws MailboxException; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java index 6190820..96483f6 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java @@ -54,22 +54,22 @@ public class FixedMaxQuotaManager implements MaxQuotaManager { } @Override - public void setDefaultMaxStorage(QuotaSize defaultMaxStorage) { - maxStorage = Optional.of(defaultMaxStorage); + public void setGlobalMaxStorage(QuotaSize globalMaxStorage) { + maxStorage = Optional.of(globalMaxStorage); } @Override - public void removeDefaultMaxStorage() throws MailboxException { + public void removeGlobalMaxStorage() throws MailboxException { throw new UnsupportedOperationException("Can not modify QuotaRoot specific upper limit for FixedMaxQuotaManager"); } @Override - public void removeDefaultMaxMessage() { + public void removeGlobalMaxMessage() { maxMessage = Optional.empty(); } @Override - public void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) { + public void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) { maxMessage = Optional.empty(); } @@ -122,12 +122,12 @@ public class FixedMaxQuotaManager implements MaxQuotaManager { } @Override - public Optional<QuotaSize> getDefaultMaxStorage() { + public Optional<QuotaSize> getGlobalMaxStorage() { return maxStorage; } @Override - public Optional<QuotaCount> getDefaultMaxMessage() { + public Optional<QuotaCount> getGlobalMaxMessage() { return maxMessage; } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java index f30b86b..ad931c8 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java @@ -79,22 +79,22 @@ public class NoMaxQuotaManager implements MaxQuotaManager { } @Override - public void setDefaultMaxStorage(QuotaSize defaultMaxStorage) throws MailboxException { + public void setGlobalMaxStorage(QuotaSize globalMaxStorage) throws MailboxException { throw new MailboxException("Operation is not supported"); } @Override - public void removeDefaultMaxStorage() throws MailboxException { + public void removeGlobalMaxStorage() throws MailboxException { throw new MailboxException("Operation is not supported"); } @Override - public void removeDefaultMaxMessage() throws MailboxException { + public void removeGlobalMaxMessage() throws MailboxException { throw new MailboxException("Operation is not supported"); } @Override - public void setDefaultMaxMessage(QuotaCount defaultMaxMessageCount) throws MailboxException { + public void setGlobalMaxMessage(QuotaCount globalMaxMessageCount) throws MailboxException { throw new MailboxException("Operation is not supported"); } @@ -129,12 +129,12 @@ public class NoMaxQuotaManager implements MaxQuotaManager { } @Override - public Optional<QuotaSize> getDefaultMaxStorage() { + public Optional<QuotaSize> getGlobalMaxStorage() { return Optional.empty(); } @Override - public Optional<QuotaCount> getDefaultMaxMessage() { + public Optional<QuotaCount> getGlobalMaxMessage() { return Optional.empty(); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java index 3f421c0..ecb8796 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java @@ -84,7 +84,7 @@ public abstract class AbstractMessageIdManagerQuotaTest { @Test public void setInMailboxesShouldNotThrowWhenMessageQuotaNotExceeded() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(1)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(1)); MessageId messageId = testingData.persist(mailbox2.getMailboxId(), messageUid1, FLAGS, session); @@ -93,7 +93,7 @@ public abstract class AbstractMessageIdManagerQuotaTest { @Test public void setInMailboxesShouldNotThrowWhenStorageQuotaNotExceeded() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(testingData.getConstantMessageSize())); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(testingData.getConstantMessageSize())); MessageId messageId = testingData.persist(mailbox2.getMailboxId(), messageUid1, FLAGS, session); @@ -102,7 +102,7 @@ public abstract class AbstractMessageIdManagerQuotaTest { @Test public void setInMailboxesShouldThrowWhenStorageQuotaExceeded() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(2 * testingData.getConstantMessageSize())); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(2 * testingData.getConstantMessageSize())); testingData.persist(mailbox1.getMailboxId(), messageUid1, FLAGS, session); MessageId messageId = testingData.persist(mailbox2.getMailboxId(), messageUid1, FLAGS, session); @@ -113,7 +113,7 @@ public abstract class AbstractMessageIdManagerQuotaTest { @Test public void setInMailboxesShouldThrowWhenStorageQuotaExceededWhenCopiedToMultipleMailboxes() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(2 * testingData.getConstantMessageSize())); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(2 * testingData.getConstantMessageSize())); MessageId messageId = testingData.persist(mailbox1.getMailboxId(), messageUid1, FLAGS, session); @@ -123,7 +123,7 @@ public abstract class AbstractMessageIdManagerQuotaTest { @Test public void setInMailboxesShouldThrowWhenStorageMessageExceeded() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(2)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(2)); testingData.persist(mailbox1.getMailboxId(), messageUid1, FLAGS, session); MessageId messageId = testingData.persist(mailbox2.getMailboxId(), messageUid1, FLAGS, session); http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java index bbb8c06..9d765a8 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java @@ -45,37 +45,37 @@ public abstract class GenericMaxQuotaManagerTest { } @Test - public void getMaxMessageShouldReturnEmptyWhenNoDefaultValue() throws Exception { + public void getMaxMessageShouldReturnEmptyWhenNoGlobalValue() throws Exception { assertThat(maxQuotaManager.getMaxMessage(QUOTA_ROOT)).isEmpty(); } @Test - public void getMaxStorageShouldReturnEmptyWhenNoDefaultValue() throws Exception { + public void getMaxStorageShouldReturnEmptyWhenNoGlobalValue() throws Exception { assertThat(maxQuotaManager.getMaxStorage(QUOTA_ROOT)).isEmpty(); } @Test public void getMaxMessageShouldReturnDomainWhenNoValue() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(36)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(36)); maxQuotaManager.setDomainMaxMessage(DOMAIN, QuotaCount.count(23)); assertThat(maxQuotaManager.getMaxMessage(QUOTA_ROOT)).contains(QuotaCount.count(23)); } @Test - public void getMaxMessageShouldReturnDefaultWhenNoValue() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(36)); + public void getMaxMessageShouldReturnGlobalWhenNoValue() throws Exception { + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(36)); assertThat(maxQuotaManager.getMaxMessage(QUOTA_ROOT)).contains(QuotaCount.count(36)); } @Test - public void getMaxStorageShouldReturnDefaultWhenNoValue() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(36)); + public void getMaxStorageShouldReturnGlobalWhenNoValue() throws Exception { + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(36)); assertThat(maxQuotaManager.getMaxStorage(QUOTA_ROOT)).contains(QuotaSize.size(36)); } @Test public void getMaxStorageShouldReturnDomainWhenNoValue() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(234)); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(234)); maxQuotaManager.setDomainMaxStorage(DOMAIN, QuotaSize.size(111)); assertThat(maxQuotaManager.getMaxStorage(QUOTA_ROOT)).contains(QuotaSize.size(111)); } @@ -107,17 +107,17 @@ public abstract class GenericMaxQuotaManagerTest { } @Test - public void deleteDefaultMaxStorageShouldRemoveCurrentValue() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(36)); - maxQuotaManager.removeDefaultMaxStorage(); - assertThat(maxQuotaManager.getDefaultMaxStorage()).isEmpty(); + public void deleteGlobalMaxStorageShouldRemoveCurrentValue() throws Exception { + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(36)); + maxQuotaManager.removeGlobalMaxStorage(); + assertThat(maxQuotaManager.getGlobalMaxStorage()).isEmpty(); } @Test - public void deleteDefaultMaxMessageShouldRemoveCurrentValue() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(36)); - maxQuotaManager.removeDefaultMaxMessage(); - assertThat(maxQuotaManager.getDefaultMaxMessage()).isEmpty(); + public void deleteGlobalMaxMessageShouldRemoveCurrentValue() throws Exception { + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(36)); + maxQuotaManager.removeGlobalMaxMessage(); + assertThat(maxQuotaManager.getGlobalMaxMessage()).isEmpty(); } @Test @@ -132,7 +132,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxMessagesDetailsShouldReturnGlobalValueWhenDefined() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(123)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(123)); assertThat(maxQuotaManager.listMaxMessagesDetails(QUOTA_ROOT)) .hasSize(1) .containsEntry(Quota.Scope.Global, QuotaCount.count(123)); @@ -156,7 +156,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxMessagesDetailsShouldReturnBothValuesWhenGlobalAndUserDefined() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(1234)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(1234)); maxQuotaManager.setMaxMessage(QUOTA_ROOT, QuotaCount.count(123)); assertThat(maxQuotaManager.listMaxMessagesDetails(QUOTA_ROOT)) .hasSize(2) @@ -166,7 +166,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxMessagesDetailsShouldReturnAllValuesWhenDefined() throws Exception { - maxQuotaManager.setDefaultMaxMessage(QuotaCount.count(1234)); + maxQuotaManager.setGlobalMaxMessage(QuotaCount.count(1234)); maxQuotaManager.setDomainMaxMessage(DOMAIN, QuotaCount.count(333)); maxQuotaManager.setMaxMessage(QUOTA_ROOT, QuotaCount.count(123)); assertThat(maxQuotaManager.listMaxMessagesDetails(QUOTA_ROOT)) @@ -178,7 +178,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxStorageDetailsShouldReturnGlobalValueWhenDefined() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(1111)); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(1111)); assertThat(maxQuotaManager.listMaxStorageDetails(QUOTA_ROOT)) .hasSize(1) .containsEntry(Quota.Scope.Global, QuotaSize.size(1111)); @@ -202,7 +202,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxStorageDetailsShouldReturnBothValuesWhenDefined() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(3333)); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(3333)); maxQuotaManager.setMaxStorage(QUOTA_ROOT, QuotaSize.size(4444)); assertThat(maxQuotaManager.listMaxStorageDetails(QUOTA_ROOT)) .hasSize(2) @@ -212,7 +212,7 @@ public abstract class GenericMaxQuotaManagerTest { @Test public void listMaxStorageDetailsShouldReturnAllValuesWhenDefined() throws Exception { - maxQuotaManager.setDefaultMaxStorage(QuotaSize.size(3333)); + maxQuotaManager.setGlobalMaxStorage(QuotaSize.size(3333)); maxQuotaManager.setDomainMaxStorage(DOMAIN, QuotaSize.size(2222)); maxQuotaManager.setMaxStorage(QUOTA_ROOT, QuotaSize.size(4444)); assertThat(maxQuotaManager.listMaxStorageDetails(QUOTA_ROOT)) @@ -223,12 +223,12 @@ public abstract class GenericMaxQuotaManagerTest { } @Test - public void getDomainMaxMessageShouldReturnEmptyWhenNoDefaultValue() { + public void getDomainMaxMessageShouldReturnEmptyWhenNoGlobalValue() { assertThat(maxQuotaManager.getDomainMaxMessage(DOMAIN)).isEmpty(); } @Test - public void getDomainMaxStorageShouldReturnEmptyWhenNoDefaultValue() { + public void getDomainMaxStorageShouldReturnEmptyWhenNoGlobalValue() { assertThat(maxQuotaManager.getDomainMaxStorage(DOMAIN)).isEmpty(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java index b19d81e..42628af 100644 --- a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java +++ b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java @@ -48,7 +48,7 @@ import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule; import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule; import org.apache.james.mailbox.cassandra.modules.CassandraUidModule; import org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager; -import org.apache.james.mailbox.cassandra.quota.CassandraDefaultMaxQuotaDao; +import org.apache.james.mailbox.cassandra.quota.CassandraGlobalMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerDomainMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaDao; import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager; @@ -131,7 +131,7 @@ public class CassandraHostSystem extends JamesImapHostSystem { perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager( new CassandraPerUserMaxQuotaDao(session), new CassandraPerDomainMaxQuotaDao(cassandra.getConf()), - new CassandraDefaultMaxQuotaDao(session)); + new CassandraGlobalMaxQuotaDao(session)); CassandraCurrentQuotaManager currentQuotaManager = new CassandraCurrentQuotaManager(session); @@ -165,8 +165,8 @@ public class CassandraHostSystem extends JamesImapHostSystem { @Override public void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) throws MailboxException { - perUserMaxQuotaManager.setDefaultMaxMessage(maxMessageQuota); - perUserMaxQuotaManager.setDefaultMaxStorage(maxStorageQuota); + perUserMaxQuotaManager.setGlobalMaxMessage(maxMessageQuota); + perUserMaxQuotaManager.setGlobalMaxStorage(maxStorageQuota); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java index b9113d9..d428200 100644 --- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java +++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java @@ -99,7 +99,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem { @Override public void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) throws MailboxException { - perUserMaxQuotaManager.setDefaultMaxMessage(maxMessageQuota); - perUserMaxQuotaManager.setDefaultMaxStorage(maxStorageQuota); + perUserMaxQuotaManager.setGlobalMaxMessage(maxMessageQuota); + perUserMaxQuotaManager.setGlobalMaxStorage(maxStorageQuota); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java index b884b28..6516cbd 100644 --- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java +++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java @@ -164,8 +164,8 @@ public class JPAHostSystem extends JamesImapHostSystem { @Override public void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) throws Exception { - maxQuotaManager.setDefaultMaxMessage(maxMessageQuota); - maxQuotaManager.setDefaultMaxStorage(maxStorageQuota); + maxQuotaManager.setGlobalMaxMessage(maxMessageQuota); + maxQuotaManager.setGlobalMaxStorage(maxStorageQuota); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/server/app/src/main/resources/META-INF/persistence.xml ---------------------------------------------------------------------- diff --git a/server/app/src/main/resources/META-INF/persistence.xml b/server/app/src/main/resources/META-INF/persistence.xml index 63285ad..5dc253d 100644 --- a/server/app/src/main/resources/META-INF/persistence.xml +++ b/server/app/src/main/resources/META-INF/persistence.xml @@ -35,8 +35,8 @@ <class>org.apache.james.domainlist.jpa.model.JPADomain</class> <class>org.apache.james.user.jpa.model.JPAUser</class> <class>org.apache.james.rrt.jpa.model.JPARecipientRewrite</class> - <class>org.apache.james.mailbox.jpa.quota.model.MaxDefaultMessageCount</class> - <class>org.apache.james.mailbox.jpa.quota.model.MaxDefaultStorage</class> + <class>org.apache.james.mailbox.jpa.quota.model.MaxGlobalMessageCount</class> + <class>org.apache.james.mailbox.jpa.quota.model.MaxGlobalStorage</class> <class>org.apache.james.mailbox.jpa.quota.model.MaxUserMessageCount</class> <class>org.apache.james.mailbox.jpa.quota.model.MaxUserStorage</class> <class>org.apache.james.mailbox.jpa.quota.model.JpaCurrentQuota</class> http://git-wip-us.apache.org/repos/asf/james-project/blob/28a108f8/server/container/cli-integration/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java ---------------------------------------------------------------------- diff --git a/server/container/cli-integration/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java b/server/container/cli-integration/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java index 9bd5ab6..5de89fc 100644 --- a/server/container/cli-integration/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java +++ b/server/container/cli-integration/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java @@ -61,39 +61,39 @@ public class QuotaCommandsIntegrationTest { } @Test - public void setDefaultMaxStorageShouldWork() throws Exception { - ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setdefaultmaxstoragequota", "36"}); + public void setGlobalMaxStorageShouldWork() throws Exception { + ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setglobalmaxstoragequota", "36"}); - assertThat(quotaProbe.getDefaultMaxStorage().encodeAsLong()).isEqualTo(36); + assertThat(quotaProbe.getGlobalMaxStorage().encodeAsLong()).isEqualTo(36); } @Test - public void getDefaultMaxStorageShouldWork() throws Exception { - ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setdefaultmaxstoragequota", "36M"}); + public void getGlobalMaxStorageShouldWork() throws Exception { + ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setglobalmaxstoragequota", "36M"}); - ServerCmd.executeAndOutputToStream(new String[] {"-h", "127.0.0.1", "-p", "9999", "getdefaultmaxstoragequota"}, + ServerCmd.executeAndOutputToStream(new String[] {"-h", "127.0.0.1", "-p", "9999", "getglobalmaxstoragequota"}, outputCapture.getPrintStream()); assertThat(outputCapture.getContent()) - .containsOnlyOnce("Default Maximum Storage Quota: 36 MB"); + .containsOnlyOnce("Global Maximum Storage Quota: 36 MB"); } @Test - public void setDefaultMaxMessageCountShouldWork() throws Exception { - ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setdefaultmaxmessagecountquota", "36"}); + public void setGlobalMaxMessageCountShouldWork() throws Exception { + ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setglobalmaxmessagecountquota", "36"}); - assertThat(quotaProbe.getDefaultMaxMessageCount().encodeAsLong()).isEqualTo(36); + assertThat(quotaProbe.getGlobalMaxMessageCount().encodeAsLong()).isEqualTo(36); } @Test - public void getDefaultMaxMessageCountShouldWork() throws Exception { - ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setdefaultmaxmessagecountquota", "36"}); + public void getGlobalMaxMessageCountShouldWork() throws Exception { + ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "setglobalmaxmessagecountquota", "36"}); - ServerCmd.executeAndOutputToStream(new String[] {"-h", "127.0.0.1", "-p", "9999", "getdefaultmaxmessagecountquota"}, + ServerCmd.executeAndOutputToStream(new String[] {"-h", "127.0.0.1", "-p", "9999", "getglobalmaxmessagecountquota"}, outputCapture.getPrintStream()); assertThat(outputCapture.getContent()) - .containsOnlyOnce("Default Maximum message count Quota: 36"); + .containsOnlyOnce("Global Maximum message count Quota: 36"); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
