You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2018/03/13 15:17:21 UTC
[3/8] james-project git commit: JAMES-2344 remove optimization on
quota computation
JAMES-2344 remove optimization on quota computation
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b90ce47a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b90ce47a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b90ce47a
Branch: refs/heads/master
Commit: b90ce47a6daa15f8af74f47fb66d95ecf62b689e
Parents: a11ce53
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Mar 7 17:38:54 2018 +0100
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue Mar 13 16:10:28 2018 +0100
----------------------------------------------------------------------
.../org/apache/james/mailbox/model/Quota.java | 21 +++++----------
.../apache/james/mailbox/model/QuotaTest.java | 10 --------
.../manager/InMemoryIntegrationResources.java | 1 -
.../store/mail/model/SerializableQuota.java | 10 ++++++--
.../mailbox/store/quota/NoQuotaManager.java | 15 +++++++++--
.../james/mailbox/store/quota/QuotaChecker.java | 4 +--
.../mailbox/store/quota/StoreQuotaManager.java | 27 +++++---------------
.../AbstractMessageIdManagerSideEffectTest.java | 8 +++---
.../store/quota/StoreQuotaManagerTest.java | 20 ---------------
.../james/imap/encode/QuotaResponseEncoder.java | 6 ++---
.../james/imap/processor/GetQuotaProcessor.java | 4 +--
.../imap/processor/GetQuotaRootProcessor.java | 4 +--
.../org/apache/james/cli/ServerCmdTest.java | 5 ++--
.../apache/james/jmap/model/MailboxFactory.java | 4 +--
14 files changed, 48 insertions(+), 91 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java
index 14e1494..c1dc033 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java
@@ -18,8 +18,6 @@
****************************************************************/
package org.apache.james.mailbox.model;
-import java.util.Optional;
-
import org.apache.james.mailbox.quota.QuotaValue;
import com.google.common.base.Objects;
@@ -29,17 +27,13 @@ public class Quota<T extends QuotaValue<T>> {
public static <T extends QuotaValue<T>> Quota<T> quota(T used, T max) {
Preconditions.checkNotNull(used);
- return new Quota<>(Optional.of(used), max);
- }
-
- public static <T extends QuotaValue<T>> Quota<T> unknownUsedQuota(T max) {
- return new Quota<>(Optional.empty(), max);
+ return new Quota<>(used, max);
}
private final T max;
- private final Optional<T> used;
+ private final T used;
- private Quota(Optional<T> used, T max) {
+ private Quota(T used, T max) {
this.used = used;
this.max = max;
}
@@ -48,12 +42,12 @@ public class Quota<T extends QuotaValue<T>> {
return max;
}
- public Optional<T> getUsed() {
+ public T getUsed() {
return used;
}
public Quota<T> addValueToQuota(T value) {
- return new Quota<T>(used.map(x -> x.add(value)), max);
+ return new Quota<>(used.add(value), max);
}
/**
@@ -67,10 +61,7 @@ public class Quota<T extends QuotaValue<T>> {
public boolean isOverQuotaWithAdditionalValue(long additionalValue) {
Preconditions.checkArgument(additionalValue >= 0);
- if (!max.isLimited()) {
- return false;
- }
- return used.map(x -> x.add(additionalValue).isGreaterThan(max)).orElse(false);
+ return max.isLimited() && used.add(additionalValue).isGreaterThan(max);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java
index 82f4c95..79ce320 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java
@@ -33,11 +33,6 @@ public class QuotaTest {
public ExpectedException expectedException = ExpectedException.none();
@Test
- public void unlimitedQuotaShouldNotBeOverQuota() {
- assertThat(Quota.unknownUsedQuota(QuotaCount.unlimited()).isOverQuota()).isFalse();
- }
-
- @Test
public void isOverQuotaShouldReturnFalseWhenQuotaIsNotExceeded() {
assertThat(Quota.quota(QuotaCount.count(36), QuotaCount.count(360)).isOverQuota()).isFalse();
}
@@ -48,11 +43,6 @@ public class QuotaTest {
}
@Test
- public void isOverQuotaShouldReturnFalseWhenUsedValueIsUnknown() {
- assertThat(Quota.unknownUsedQuota(QuotaCount.count(36)).isOverQuota()).isFalse();
- }
-
- @Test
public void isOverQuotaShouldReturnTrueWhenQuotaIsExceeded() {
assertThat(Quota.quota(QuotaCount.count(360), QuotaCount.count(36)).isOverQuota()).isTrue();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
index b440613..1e8ae1f 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
@@ -151,7 +151,6 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver);
StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
- quotaManager.setCalculateWhenUnlimited(false);
mailboxManager.setQuotaManager(quotaManager);
mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, null);
return quotaManager;
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
index b090cf7..d5a6c24 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/SerializableQuota.java
@@ -34,9 +34,15 @@ public class SerializableQuota<T extends QuotaValue<T>> implements Serializable
public static final long UNLIMITED = -1;
public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(Quota<U> quota) {
- return new SerializableQuota<>(new SerializableQuotaValue<>(quota.getMax()), getUsed(quota.getUsed(), SerializableQuotaValue::new));
+ return newInstance(quota.getUsed(), quota.getMax());
}
+ public static <U extends QuotaValue<U>> SerializableQuota<U> newInstance(U used, U max) {
+ return new SerializableQuota<>(
+ new SerializableQuotaValue<>(used),
+ new SerializableQuotaValue<>(max)
+ );
+ }
private static <U extends QuotaValue<U>> SerializableQuotaValue<U> getUsed(Optional<U> quota, Function<U, SerializableQuotaValue<U>> factory) {
return quota.map(factory).orElse(null);
@@ -45,7 +51,7 @@ public class SerializableQuota<T extends QuotaValue<T>> implements Serializable
private final SerializableQuotaValue<T> max;
private final SerializableQuotaValue<T> used;
- public SerializableQuota(SerializableQuotaValue<T> max, SerializableQuotaValue<T> used) {
+ private SerializableQuota(SerializableQuotaValue<T> used, SerializableQuotaValue<T> max) {
this.max = max;
this.used = used;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java
index 8f3f932..0c3b583 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java
@@ -19,9 +19,12 @@
package org.apache.james.mailbox.store.quota;
+import javax.inject.Inject;
+
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Quota;
import org.apache.james.mailbox.model.QuotaRoot;
+import org.apache.james.mailbox.quota.CurrentQuotaManager;
import org.apache.james.mailbox.quota.QuotaCount;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaSize;
@@ -31,13 +34,21 @@ import org.apache.james.mailbox.quota.QuotaSize;
*/
public class NoQuotaManager implements QuotaManager {
+ @Inject
+ public NoQuotaManager() {
+ }
+
@Override
public Quota<QuotaCount> getMessageQuota(QuotaRoot quotaRoot) throws MailboxException {
- return Quota.unknownUsedQuota(QuotaCount.unlimited());
+ return Quota.quota(
+ QuotaCount.count(0),
+ QuotaCount.unlimited());
}
@Override
public Quota<QuotaSize> getStorageQuota(QuotaRoot quotaRoot) throws MailboxException {
- return Quota.unknownUsedQuota(QuotaSize.unlimited());
+ return Quota.quota(
+ QuotaSize.size(0),
+ QuotaSize.unlimited());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java
index e7fc9bf..3c1d17e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java
@@ -58,7 +58,7 @@ public class QuotaChecker {
throw new OverQuotaException(
"You use too much space in " + quotaRoot.getValue(),
afterAdditionQuotaSize.getMax(),
- afterAdditionQuotaSize.getUsed().get());
+ afterAdditionQuotaSize.getUsed());
}
}
@@ -68,7 +68,7 @@ public class QuotaChecker {
throw new OverQuotaException(
"You have too many messages in " + quotaRoot.getValue(),
messageQuota.getMax(),
- messageQuota.getUsed().get());
+ messageQuota.getUsed());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java
index a4fd86b..671d368 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java
@@ -19,8 +19,6 @@
package org.apache.james.mailbox.store.quota;
-import java.util.Optional;
-
import javax.inject.Inject;
import org.apache.james.mailbox.exception.MailboxException;
@@ -40,7 +38,6 @@ import org.apache.james.mailbox.quota.QuotaSize;
public class StoreQuotaManager implements QuotaManager {
private final CurrentQuotaManager currentQuotaManager;
private final MaxQuotaManager maxQuotaManager;
- private boolean calculateWhenUnlimited = false;
@Inject
public StoreQuotaManager(CurrentQuotaManager currentQuotaManager, MaxQuotaManager maxQuotaManager) {
@@ -48,29 +45,17 @@ public class StoreQuotaManager implements QuotaManager {
this.maxQuotaManager = maxQuotaManager;
}
- public void setCalculateWhenUnlimited(boolean calculateWhenUnlimited) {
- this.calculateWhenUnlimited = calculateWhenUnlimited;
- }
-
public Quota<QuotaCount> getMessageQuota(QuotaRoot quotaRoot) throws MailboxException {
- Optional<QuotaCount> maxValue = maxQuotaManager.getMaxMessage(quotaRoot);
- if (maxValue.filter(QuotaCount::isUnlimited).isPresent() && !calculateWhenUnlimited) {
- return Quota.unknownUsedQuota(QuotaCount.unlimited());
- }
- QuotaCount currentMessageCount = currentQuotaManager.getCurrentMessageCount(quotaRoot);
- QuotaCount limit = maxValue.orElse(QuotaCount.unlimited());
- return Quota.quota(currentMessageCount, limit);
+ return Quota.quota(
+ currentQuotaManager.getCurrentMessageCount(quotaRoot),
+ maxQuotaManager.getMaxMessage(quotaRoot).orElse(QuotaCount.unlimited()));
}
public Quota<QuotaSize> getStorageQuota(QuotaRoot quotaRoot) throws MailboxException {
- Optional<QuotaSize> maxValue = maxQuotaManager.getMaxStorage(quotaRoot);
- if (maxValue.filter(QuotaSize::isUnlimited).isPresent() && !calculateWhenUnlimited) {
- return Quota.unknownUsedQuota(QuotaSize.unlimited());
- }
- QuotaSize currentStorage = currentQuotaManager.getCurrentStorage(quotaRoot);
- QuotaSize limit = maxValue.orElse(QuotaSize.unlimited());
- return Quota.quota(currentStorage, limit);
+ return Quota.quota(
+ currentQuotaManager.getCurrentStorage(quotaRoot),
+ maxQuotaManager.getMaxStorage(quotaRoot).orElse(QuotaSize.unlimited()));
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index 3afdaf6..91d2ae3 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -166,9 +166,9 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
public void setInMailboxesShouldThrowExceptionWhenOverQuota() throws Exception {
MessageId messageId = testingData.persist(mailbox1.getMailboxId(), messageUid1, FLAGS, session);
reset(dispatcher);
- when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.unknownUsedQuota(QuotaSize.unlimited()));
+ when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.quota(QuotaSize.size(2), QuotaSize.unlimited()));
when(quotaManager.getMessageQuota(any(QuotaRoot.class))).thenReturn(OVER_QUOTA);
- when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.unknownUsedQuota(QuotaSize.unlimited()));
+ when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.quota(QuotaSize.size(2), QuotaSize.unlimited()));
expectedException.expect(OverQuotaException.class);
@@ -311,8 +311,8 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
}
private void givenUnlimitedQuota() throws MailboxException {
- when(quotaManager.getMessageQuota(any(QuotaRoot.class))).thenReturn(Quota.unknownUsedQuota(QuotaCount.unlimited()));
- when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.unknownUsedQuota(QuotaSize.unlimited()));
+ when(quotaManager.getMessageQuota(any(QuotaRoot.class))).thenReturn(Quota.quota(QuotaCount.count(2), QuotaCount.unlimited()));
+ when(quotaManager.getStorageQuota(any(QuotaRoot.class))).thenReturn(Quota.quota(QuotaSize.size(2), QuotaSize.unlimited()));
}
private SimpleMessageMetaData fromMessageResult(MessageId messageId, MessageResult messageResult) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java
index e85460a..a1ae745 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java
@@ -66,26 +66,7 @@ public class StoreQuotaManagerTest {
}
@Test
- public void getStorageQuotaShouldNotCalculateCurrentQuotaWhenUnlimited() throws Exception {
- testee.setCalculateWhenUnlimited(false);
- when(mockedMaxQuotaManager.getMaxStorage(quotaRoot)).thenReturn(Optional.of(QuotaSize.unlimited()));
-
- assertThat(testee.getStorageQuota(quotaRoot)).isEqualTo(Quota.unknownUsedQuota(QuotaSize.unlimited()));
- verify(mockedCurrentQuotaManager, never()).getCurrentStorage(quotaRoot);
- }
-
- @Test
- public void getMessageQuotaShouldNotCalculateCurrentQuotaWhenUnlimited() throws Exception {
- testee.setCalculateWhenUnlimited(false);
- when(mockedMaxQuotaManager.getMaxMessage(quotaRoot)).thenReturn(Optional.of(QuotaCount.unlimited()));
-
- assertThat(testee.getMessageQuota(quotaRoot)).isEqualTo(Quota.unknownUsedQuota(QuotaCount.unlimited()));
- verify(mockedCurrentQuotaManager, never()).getCurrentMessageCount(quotaRoot);
- }
-
- @Test
public void getStorageQuotaShouldCalculateCurrentQuotaWhenUnlimited() throws Exception {
- testee.setCalculateWhenUnlimited(true);
when(mockedMaxQuotaManager.getMaxStorage(quotaRoot)).thenReturn(Optional.of(QuotaSize.unlimited()));
when(mockedCurrentQuotaManager.getCurrentStorage(quotaRoot)).thenReturn(QuotaSize.size(36L));
@@ -94,7 +75,6 @@ public class StoreQuotaManagerTest {
@Test
public void getMessageQuotaShouldCalculateCurrentQuotaWhenUnlimited() throws Exception {
- testee.setCalculateWhenUnlimited(true);
when(mockedMaxQuotaManager.getMaxMessage(quotaRoot)).thenReturn(Optional.of(QuotaCount.unlimited()));
when(mockedCurrentQuotaManager.getCurrentMessageCount(quotaRoot)).thenReturn(QuotaCount.count(36L));
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
index d09c11f..6a2d111 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
@@ -66,14 +66,12 @@ public class QuotaResponseEncoder extends AbstractChainedImapEncoder {
}
private void writeMessagesSize(ImapResponseComposer composer, Quota<?> quota) throws IOException {
- //we know there's a quota because Quota*Processor ask us to print it
- composer.message(quota.getUsed().get().asLong() / 1024);
+ composer.message(quota.getUsed().asLong() / 1024);
composer.message(quota.getMax().asLong() / 1024);
}
private void writeMessagesCount(ImapResponseComposer composer, Quota<?> quota) throws IOException {
- //we know there's a quota because Quota*Processor ask us to print it
- composer.message(quota.getUsed().get().asLong());
+ composer.message(quota.getUsed().asLong());
composer.message(quota.getMax().asLong());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
index f7cbfbb..701272c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
@@ -81,10 +81,10 @@ public class GetQuotaProcessor extends AbstractMailboxProcessor<GetQuotaRequest>
QuotaRoot quotaRoot = QuotaRoot.quotaRoot(message.getQuotaRoot());
Quota<QuotaCount> messageQuota = quotaManager.getMessageQuota(quotaRoot);
Quota<QuotaSize> storageQuota = quotaManager.getStorageQuota(quotaRoot);
- if (messageQuota.getMax().isLimited() && messageQuota.getUsed().isPresent()) {
+ if (messageQuota.getMax().isLimited()) {
responder.respond(new QuotaResponse(ImapConstants.MESSAGE_QUOTA_RESOURCE, quotaRoot.getValue(), messageQuota));
}
- if (storageQuota.getMax().isLimited() && storageQuota.getUsed().isPresent()) {
+ if (storageQuota.getMax().isLimited()) {
responder.respond(new QuotaResponse(ImapConstants.STORAGE_QUOTA_RESOURCE, quotaRoot.getValue(), storageQuota));
}
okComplete(command, tag, responder);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
index 345cc31..2740865 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
@@ -83,10 +83,10 @@ public class GetQuotaRootProcessor extends AbstractMailboxProcessor<GetQuotaRoot
Quota<QuotaCount> messageQuota = quotaManager.getMessageQuota(quotaRoot);
Quota<QuotaSize> storageQuota = quotaManager.getStorageQuota(quotaRoot);
responder.respond(new QuotaRootResponse(message.getMailboxName(), quotaRoot.getValue()));
- if (messageQuota.getMax().isLimited() && messageQuota.getUsed().isPresent()) {
+ if (messageQuota.getMax().isLimited()) {
responder.respond(new QuotaResponse(ImapConstants.MESSAGE_QUOTA_RESOURCE, quotaRoot.getValue(), messageQuota));
}
- if (storageQuota.getMax().isLimited() && storageQuota.getUsed().isPresent()) {
+ if (storageQuota.getMax().isLimited()) {
responder.respond(new QuotaResponse(ImapConstants.STORAGE_QUOTA_RESOURCE, quotaRoot.getValue(), storageQuota));
}
okComplete(command, tag, responder);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
index e9a5d98..6792f17 100644
--- a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
+++ b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
@@ -35,7 +35,6 @@ import org.apache.james.cli.exceptions.MissingCommandException;
import org.apache.james.cli.exceptions.UnrecognizedCommandException;
import org.apache.james.cli.type.CmdType;
import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.Quota;
import org.apache.james.mailbox.quota.QuotaCount;
import org.apache.james.mailbox.quota.QuotaSize;
import org.apache.james.mailbox.store.mail.model.SerializableQuota;
@@ -577,7 +576,7 @@ public class ServerCmdTest {
String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.GETSTORAGEQUOTA.getCommand(), quotaroot};
CommandLine commandLine = ServerCmd.parseCommandLine(arguments);
- expect(quotaProbe.getStorageQuota(quotaroot)).andReturn(SerializableQuota.newInstance(Quota.unknownUsedQuota(QuotaSize.unlimited())));
+ expect(quotaProbe.getStorageQuota(quotaroot)).andReturn(SerializableQuota.newInstance(QuotaSize.unlimited(), QuotaSize.size(12)));
control.replay();
testee.executeCommandLine(commandLine);
@@ -590,7 +589,7 @@ public class ServerCmdTest {
String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.GETMESSAGECOUNTQUOTA.getCommand(), quotaroot};
CommandLine commandLine = ServerCmd.parseCommandLine(arguments);
- expect(quotaProbe.getMessageCountQuota(quotaroot)).andReturn(SerializableQuota.newInstance(Quota.unknownUsedQuota(QuotaCount.unlimited())));
+ expect(quotaProbe.getMessageCountQuota(quotaroot)).andReturn(SerializableQuota.newInstance(QuotaCount.unlimited(), QuotaCount.count(12)));
control.replay();
testee.executeCommandLine(commandLine);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b90ce47a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
index 13b2593..42a80ab 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxFactory.java
@@ -152,9 +152,7 @@ public class MailboxFactory {
private <T extends QuotaValue<T>> Quotas.Value<T> quotaToValue(Quota<T> quota) {
return new Quotas.Value<>(
- quota.getUsed()
- .map(this::quotaValueToNumber)
- .orElse(Number.ZERO),
+ quotaValueToNumber(quota.getUsed()),
quotaValueToOptionalNumber(quota.getMax()));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org