From 4adf702e3933990644b4b523eee12ac9df50fedf Mon Sep 17 00:00:00 2001 From: quynhn Date: Mon, 12 Jun 2017 16:51:27 +0700 Subject: [PATCH] JAMES-2050 Move all default configurations of processor to ImapConfiguration --- .../apache/james/imap/api/ImapConfiguration.java | 10 ++++++---- .../apache/james/imap/processor/IdleProcessor.java | 14 -------------- .../james/imap/api/ImapConfigurationTest.java | 6 ++---- .../apache/james/imapserver/netty/IMAPServer.java | 9 ++++----- .../james/imapserver/netty/IMAPServerTest.java | 7 +++---- 5 files changed, 15 insertions(+), 31 deletions(-) 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 1552189f887..e0b26cab8dd 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 @@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit; -import org.apache.james.imap.processor.IdleProcessor; import org.apache.commons.lang.StringUtils; import com.google.common.base.Function; @@ -34,6 +33,9 @@ import com.google.common.collect.ImmutableSet; public class ImapConfiguration { + public final static boolean DEFAULT_ENABLE_IDLE = true; + public final static long DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS = 2 * 60; + public final static TimeUnit DEFAULT_HEARTBEAT_INTERVAL_UNIT = TimeUnit.SECONDS; public static Builder builder() { return new Builder(); @@ -105,9 +107,9 @@ public ImapConfiguration build() { .transform(NORMALIZE_STRING) .toSet(); return new ImapConfiguration( - enableIdle.or(IdleProcessor.DEFAULT_ENABLE_IDLE), - idleTimeInterval.or(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS), - idleTimeIntervalUnit.or(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_UNIT), + enableIdle.or(DEFAULT_ENABLE_IDLE), + idleTimeInterval.or(DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS), + idleTimeIntervalUnit.or(DEFAULT_HEARTBEAT_INTERVAL_UNIT), normalizeDisableCaps); } } diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java index 670ef911523..46cf5e380df 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java @@ -51,10 +51,6 @@ public class IdleProcessor extends AbstractMailboxProcessor implements CapabilityImplementingProcessor { private final static List CAPS = Collections.unmodifiableList(Arrays.asList(SUPPORTS_IDLE)); - // 2 minutes - public final static long DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS = 2 * 60; - public final static TimeUnit DEFAULT_HEARTBEAT_INTERVAL_UNIT = TimeUnit.SECONDS; - public final static boolean DEFAULT_ENABLE_IDLE = true; public final static int DEFAULT_SCHEDULED_POOL_CORE_SIZE = 5; private final static String DONE = "DONE"; private TimeUnit heartbeatIntervalUnit; @@ -64,17 +60,7 @@ public class IdleProcessor extends AbstractMailboxProcessor impleme public IdleProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory, MetricFactory metricFactory) { - this(next, mailboxManager, factory, DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS, DEFAULT_HEARTBEAT_INTERVAL_UNIT, Executors.newScheduledThreadPool(DEFAULT_SCHEDULED_POOL_CORE_SIZE), metricFactory); - - } - - public IdleProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory, long heartbeatInterval, TimeUnit heartbeatIntervalUnit, ScheduledExecutorService heartbeatExecutor, - MetricFactory metricFactory) { super(IdleRequest.class, next, mailboxManager, factory, metricFactory); - this.heartbeatInterval = heartbeatInterval; - this.heartbeatIntervalUnit = heartbeatIntervalUnit; - this.heartbeatExecutor = heartbeatExecutor; - } @Override 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 1d5c5e8ef95..3fa1cdc8bfa 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 @@ -22,8 +22,6 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.TimeUnit; -import org.apache.james.imap.processor.IdleProcessor; - import com.google.common.collect.ImmutableSet; import nl.jqno.equalsverifier.EqualsVerifier; @@ -44,7 +42,7 @@ public void shouldRespectBeanContract() { public void idleKeepAliveShouldBeDefaultValueWhenNoSetting() throws Exception { ImapConfiguration imapConfiguration = ImapConfiguration.builder().build(); - assertThat(imapConfiguration.getIdleTimeInterval()).isEqualTo(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS); + assertThat(imapConfiguration.getIdleTimeInterval()).isEqualTo(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS); } @Test @@ -79,7 +77,7 @@ public void idleKeepAliveShouldThrowWhenNegative() throws Exception { public void millisecondsShouldBeDefaultValueWhenNoSetting() throws Exception { ImapConfiguration imapConfiguration = ImapConfiguration.builder().build(); - assertThat(imapConfiguration.getIdleTimeIntervalUnit()).isEqualTo(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_UNIT); + assertThat(imapConfiguration.getIdleTimeIntervalUnit()).isEqualTo(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_UNIT); } @Test diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java index d3f2aea5658..887cf3be693 100644 --- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java +++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java @@ -27,7 +27,6 @@ import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.decode.ImapDecoder; import org.apache.james.imap.encode.ImapEncoder; -import org.apache.james.imap.processor.IdleProcessor; import org.apache.james.protocols.api.Encryption; import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer; import org.apache.james.protocols.netty.ChannelGroupHandler; @@ -117,8 +116,8 @@ public void doConfigure(HierarchicalConfiguration configuration) throws Configur ImmutableSet disabledCaps = ImmutableSet.copyOf(Splitter.on(CAPABILITY_SEPARATOR).split(configuration.getString("disabledCaps", ""))); return ImapConfiguration.builder() - .enableIdle(configuration.getBoolean("enableIdle", IdleProcessor.DEFAULT_ENABLE_IDLE)) - .idleTimeInterval(configuration.getLong("idleTimeInterval", IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS)) + .enableIdle(configuration.getBoolean("enableIdle", ImapConfiguration.DEFAULT_ENABLE_IDLE)) + .idleTimeInterval(configuration.getLong("idleTimeInterval", ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS)) .idleTimeIntervalUnit(getTimeIntervalUnit(configuration.getString("idleTimeIntervalUnit", DEFAULT_TIME_UNIT))) .disabledCaps(disabledCaps) .build(); @@ -128,8 +127,8 @@ private static TimeUnit getTimeIntervalUnit(String timeIntervalUnit) { try { return TimeUnit.valueOf(timeIntervalUnit); } catch (IllegalArgumentException e) { - LOG.info("Time interval unit is not valid {}, the default {} value should be used", timeIntervalUnit, IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_UNIT); - return IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_UNIT; + LOG.info("Time interval unit is not valid {}, the default {} value should be used", timeIntervalUnit, ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_UNIT); + return ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_UNIT; } } diff --git a/server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerTest.java b/server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerTest.java index cc14eb64780..861a8ad45c6 100644 --- a/server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerTest.java +++ b/server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerTest.java @@ -23,7 +23,6 @@ import java.util.concurrent.TimeUnit; import org.apache.james.imap.api.ImapConfiguration; -import org.apache.james.imap.processor.IdleProcessor; import org.apache.commons.configuration.DefaultConfigurationBuilder; import com.google.common.collect.ImmutableSet; @@ -41,9 +40,9 @@ public void getImapConfigurationShouldReturnDefaultValuesWhenEmpty() throws Exce ImapConfiguration imapConfiguration = IMAPServer.getImapConfiguration(new DefaultConfigurationBuilder()); ImapConfiguration expectImapConfiguration = ImapConfiguration.builder() - .enableIdle(IdleProcessor.DEFAULT_ENABLE_IDLE) - .idleTimeInterval(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS) - .idleTimeIntervalUnit(IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_UNIT) + .enableIdle(ImapConfiguration.DEFAULT_ENABLE_IDLE) + .idleTimeInterval(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS) + .idleTimeIntervalUnit(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_UNIT) .disabledCaps(ImmutableSet.of()) .build();