Author: btellier
Date: Tue Sep 22 10:33:16 2015
New Revision: 1704555
URL: http://svn.apache.org/viewvc?rev=1704555&view=rev
Log:
JAMES-511 Add support for special quota values
Modified:
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/utils/ValueWithUnit.java
james/server/trunk/container/cli/src/test/java/org/apache/james/cli/utils/ValueWithUnitTest.java
Modified:
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java?rev=1704555&r1=1704554&r2=1704555&view=diff
==============================================================================
---
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
(original)
+++
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
Tue Sep 22 10:33:16 2015
@@ -233,10 +233,10 @@ public class ServerCmd {
System.out.println("Storage space allowed for Quota Root "
+ arguments[1]
+ " : "
- +
FileUtils.byteCountToDisplaySize(probe.getMaxStorage(arguments[1])));
+ + formatStorageValue(probe.getMaxStorage(arguments[1])));
break;
case GETMAXMESSAGECOUNTQUOTA:
- System.out.println("Message count allowed for Quota Root " +
arguments[1] + " : " + probe.getMaxMessageCount(arguments[1]));
+ System.out.println("Message count allowed for Quota Root " +
arguments[1] + " : " +
formatMessageValue(probe.getMaxMessageCount(arguments[1])));
break;
case SETMAXSTORAGEQUOTA:
probe.setMaxStorage(arguments[1],
ValueWithUnit.parse(arguments[2]).getConvertedValue());
@@ -251,10 +251,10 @@ public class ServerCmd {
probe.setDefaultMaxMessageCount(Long.parseLong(arguments[1]));
break;
case GETDEFAULTMAXSTORAGEQUOTA:
- System.out.println("Default Maximum Storage Quota : " +
FileUtils.byteCountToDisplaySize(probe.getDefaultMaxStorage()));
+ System.out.println("Default Maximum Storage Quota : " +
formatStorageValue(probe.getDefaultMaxStorage()));
break;
case GETDEFAULTMAXMESSAGECOUNTQUOTA:
- System.out.println("Default Maximum message count Quota : " +
probe.getDefaultMaxMessageCount());
+ System.out.println("Default Maximum message count Quota : " +
formatMessageValue(probe.getDefaultMaxMessageCount()));
break;
default:
throw new UnrecognizedCommandException(cmdType.getCommand());
@@ -273,15 +273,35 @@ public class ServerCmd {
private void printStorageQuota(String quotaRootString, SerializableQuota
quota) {
System.out.println(String.format("Storage quota for %s is : %s / %s",
quotaRootString,
- FileUtils.byteCountToDisplaySize(quota.getUsed()),
- FileUtils.byteCountToDisplaySize(quota.getMax())));
+ formatStorageValue(quota.getUsed()),
+ formatStorageValue(quota.getMax())));
}
private void printMessageQuota(String quotaRootString, SerializableQuota
quota) {
- System.out.println(String.format("Message count quota for %s is : %d /
%d",
+ System.out.println(String.format("Message count quota for %s is : %s /
%s",
quotaRootString,
- quota.getUsed(),
- quota.getMax()));
+ formatMessageValue(quota.getUsed()),
+ formatMessageValue(quota.getMax())));
+ }
+
+ private String formatStorageValue(long value) {
+ if (value == Quota.UNKNOWN) {
+ return ValueWithUnit.UNKNOWN;
+ }
+ if (value == Quota.UNLIMITED) {
+ return ValueWithUnit.UNLIMITED;
+ }
+ return FileUtils.byteCountToDisplaySize(value);
+ }
+
+ private String formatMessageValue(long value) {
+ if (value == Quota.UNKNOWN) {
+ return ValueWithUnit.UNKNOWN;
+ }
+ if (value == Quota.UNLIMITED) {
+ return ValueWithUnit.UNLIMITED;
+ }
+ return String.valueOf(value);
}
private void print(Map<String, Collection<String>> map, PrintStream out) {
Modified:
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/utils/ValueWithUnit.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/container/cli/src/main/java/org/apache/james/cli/utils/ValueWithUnit.java?rev=1704555&r1=1704554&r2=1704555&view=diff
==============================================================================
---
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/utils/ValueWithUnit.java
(original)
+++
james/server/trunk/container/cli/src/main/java/org/apache/james/cli/utils/ValueWithUnit.java
Tue Sep 22 10:33:16 2015
@@ -19,11 +19,16 @@
package org.apache.james.cli.utils;
+import org.apache.james.mailbox.model.Quota;
+
/**
* This class is an helper for parsing integer input that may contain units.
*/
public class ValueWithUnit {
+ public static final String UNKNOWN = "UNKNOWN";
+ public static final String UNLIMITED = "UNLIMITED";
+
/**
* supported units : B ( 2^0 ), K ( 2^10 ), M ( 2^20 ), G ( 2^30 )
* See RFC822.SIZE
@@ -47,6 +52,12 @@ public class ValueWithUnit {
}
public static ValueWithUnit parse(String providedLongWithUnitString)
throws Exception{
+ if(providedLongWithUnitString.equalsIgnoreCase(UNKNOWN)) {
+ return new ValueWithUnit(Unit.NoUnit, Quota.UNKNOWN);
+ }
+ if(providedLongWithUnitString.equalsIgnoreCase(UNLIMITED)) {
+ return new ValueWithUnit(Unit.NoUnit, Quota.UNLIMITED);
+ }
char lastChar =
providedLongWithUnitString.charAt(providedLongWithUnitString.length()-1);
Unit unit = getUnit(lastChar);
String argWithoutUnit =
removeLastCharIfNeeded(providedLongWithUnitString, unit);
Modified:
james/server/trunk/container/cli/src/test/java/org/apache/james/cli/utils/ValueWithUnitTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/container/cli/src/test/java/org/apache/james/cli/utils/ValueWithUnitTest.java?rev=1704555&r1=1704554&r2=1704555&view=diff
==============================================================================
---
james/server/trunk/container/cli/src/test/java/org/apache/james/cli/utils/ValueWithUnitTest.java
(original)
+++
james/server/trunk/container/cli/src/test/java/org/apache/james/cli/utils/ValueWithUnitTest.java
Tue Sep 22 10:33:16 2015
@@ -21,6 +21,7 @@ package org.apache.james.cli.utils;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.mailbox.model.Quota;
import org.junit.Test;
public class ValueWithUnitTest {
@@ -50,6 +51,16 @@ public class ValueWithUnitTest {
assertThat(ValueWithUnit.parse("1G").getConvertedValue()).isEqualTo(1024 * 1024
* 1024);
}
+ @Test
+ public void testUnknown() throws Exception {
+
assertThat(ValueWithUnit.parse("unknown").getConvertedValue()).isEqualTo(Quota.UNKNOWN);
+ }
+
+ @Test
+ public void testUnlimited() throws Exception {
+
assertThat(ValueWithUnit.parse("unlimited").getConvertedValue()).isEqualTo(Quota.UNLIMITED);
+ }
+
@Test(expected = Exception.class)
public void testBadUnit() throws Exception {
ValueWithUnit.parse("42T");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]