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 bt...@apache.org on 2017/06/14 05:44:38 UTC
[3/5] james-project git commit: JAMES-2055 Add ability to manage
CONDSTORE in IMAP configuration
JAMES-2055 Add ability to manage CONDSTORE in IMAP configuration
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/281805d6
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/281805d6
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/281805d6
Branch: refs/heads/master
Commit: 281805d67de9bb9753a5153a114faa5a22913987
Parents: 02737f5
Author: Antoine Duprat <ad...@linagora.com>
Authored: Mon Jun 12 14:02:57 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Wed Jun 14 12:43:32 2017 +0700
----------------------------------------------------------------------
.../james/imap/api/ImapConfiguration.java | 27 +++++++++++++---
.../james/imap/api/ImapConfigurationTest.java | 33 ++++++++++++++++++--
2 files changed, 53 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/281805d6/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
index e0b26ca..d06ac60 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
@@ -59,16 +59,20 @@ public class ImapConfiguration {
return !StringUtils.isBlank(disableCap);
}
+ private static final boolean DEFAULT_CONDSTORE_DISABLE = false;
+
private Optional<Long> idleTimeInterval;
private Optional<TimeUnit> idleTimeIntervalUnit;
private Optional<Boolean> enableIdle;
private ImmutableSet<String> disabledCaps;
+ private Optional<Boolean> isCondstoreEnable;
private Builder() {
this.idleTimeInterval = Optional.absent();
this.idleTimeIntervalUnit = Optional.absent();
this.enableIdle = Optional.absent();
this.disabledCaps = ImmutableSet.of();
+ this.isCondstoreEnable = Optional.absent();
}
public Builder idleTimeInterval(long idleTimeInterval) {
@@ -101,6 +105,12 @@ public class ImapConfiguration {
this.disabledCaps = ImmutableSet.of(disableCap);
return this;
}
+
+ public Builder isCondstoreEnable(boolean isCondstoreEnable) {
+ this.isCondstoreEnable = Optional.of(isCondstoreEnable);
+ return this;
+ }
+
public ImapConfiguration build() {
ImmutableSet<String> normalizeDisableCaps = FluentIterable.from(disabledCaps)
.filter(NO_BLANK)
@@ -110,7 +120,8 @@ public class ImapConfiguration {
enableIdle.or(DEFAULT_ENABLE_IDLE),
idleTimeInterval.or(DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS),
idleTimeIntervalUnit.or(DEFAULT_HEARTBEAT_INTERVAL_UNIT),
- normalizeDisableCaps);
+ normalizeDisableCaps,
+ isCondstoreEnable.or(DEFAULT_CONDSTORE_DISABLE));
}
}
@@ -118,12 +129,14 @@ public class ImapConfiguration {
private final TimeUnit idleTimeIntervalUnit;
private final ImmutableSet<String> disabledCaps;
private final boolean enableIdle;
+ private final boolean isCondstoreEnable;
- private ImapConfiguration(boolean enableIdle, long idleTimeInterval, TimeUnit idleTimeIntervalUnit, ImmutableSet<String> disabledCaps) {
+ private ImapConfiguration(boolean enableIdle, long idleTimeInterval, TimeUnit idleTimeIntervalUnit, ImmutableSet<String> disabledCaps, boolean isCondstoreEnable) {
this.enableIdle = enableIdle;
this.idleTimeInterval = idleTimeInterval;
this.idleTimeIntervalUnit = idleTimeIntervalUnit;
this.disabledCaps = disabledCaps;
+ this.isCondstoreEnable = isCondstoreEnable;
}
public long getIdleTimeInterval() {
@@ -141,6 +154,10 @@ public class ImapConfiguration {
public boolean isEnableIdle() {
return enableIdle;
}
+
+ public boolean isCondstoreEnable() {
+ return isCondstoreEnable;
+ }
@Override
public final boolean equals(Object obj) {
@@ -149,14 +166,15 @@ public class ImapConfiguration {
return Objects.equal(that.isEnableIdle(), enableIdle)
&& Objects.equal(that.getIdleTimeInterval(), idleTimeInterval)
&& Objects.equal(that.getIdleTimeIntervalUnit(), idleTimeIntervalUnit)
- && Objects.equal(that.getDisabledCaps(), disabledCaps);
+ && Objects.equal(that.getDisabledCaps(), disabledCaps)
+ && Objects.equal(that.isCondstoreEnable(), isCondstoreEnable);
}
return false;
}
@Override
public final int hashCode() {
- return Objects.hashCode(enableIdle, idleTimeInterval, idleTimeIntervalUnit, disabledCaps);
+ return Objects.hashCode(enableIdle, idleTimeInterval, idleTimeIntervalUnit, disabledCaps, isCondstoreEnable);
}
@Override
@@ -166,6 +184,7 @@ public class ImapConfiguration {
.add("idleTimeInterval", idleTimeInterval)
.add("idleTimeIntervalUnit", idleTimeIntervalUnit)
.add("disabledCaps", disabledCaps)
+ .add("isCondstoreEnable", isCondstoreEnable)
.toString();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/281805d6/protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java
index 3fa1cdc..e169e84 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java
@@ -20,15 +20,17 @@
package org.apache.james.imap.api;
import static org.assertj.core.api.Assertions.assertThat;
-import java.util.concurrent.TimeUnit;
-import com.google.common.collect.ImmutableSet;
+import java.util.concurrent.TimeUnit;
-import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import com.google.common.collect.ImmutableSet;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
public class ImapConfigurationTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@@ -158,4 +160,29 @@ public class ImapConfigurationTest {
assertThat(imapConfiguration.isEnableIdle()).isFalse();
}
+
+ @Test
+ public void isCondstoreEnableShouldBeFalseWhenNoSetting() {
+ ImapConfiguration imapConfiguration = ImapConfiguration.builder().build();
+
+ assertThat(imapConfiguration.isCondstoreEnable()).isFalse();
+ }
+
+ @Test
+ public void isCondstoreEnableShouldBeTrueWhenValueIsTrue() {
+ ImapConfiguration imapConfiguration = ImapConfiguration.builder()
+ .isCondstoreEnable(true)
+ .build();
+
+ assertThat(imapConfiguration.isCondstoreEnable()).isTrue();
+ }
+
+ @Test
+ public void isCondstoreEnableShouldBeFalseWhenValueIsFalse() {
+ ImapConfiguration imapConfiguration = ImapConfiguration.builder()
+ .isCondstoreEnable(false)
+ .build();
+
+ assertThat(imapConfiguration.isCondstoreEnable()).isFalse();
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org