Skip to content

Commit

Permalink
JAMES-2050 Remove hardcoded configuration values
Browse files Browse the repository at this point in the history
  • Loading branch information
quynhn committed Jun 12, 2017
1 parent 7941735 commit 1e6ef60
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 56 deletions.
Expand Up @@ -25,7 +25,6 @@
import static org.apache.james.imap.api.ImapConstants.SUPPORTS_RFC3348;
import static org.apache.james.imap.api.ImapConstants.UTF8;
import static org.apache.james.imap.api.ImapConstants.VERSION;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
Expand Down Expand Up @@ -63,18 +62,17 @@ public class CapabilityProcessor extends AbstractMailboxProcessor<CapabilityRequ
private static final List<CapabilityImplementingProcessor> capabilities = new ArrayList<CapabilityImplementingProcessor>();
private static final Set<String> disabledCaps = new HashSet<String>();

public CapabilityProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory, List<CapabilityImplementingProcessor> capabilities, Set<String> disabledCaps,
public CapabilityProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory, List<CapabilityImplementingProcessor> capabilities,
MetricFactory metricFactory) {
this(next, mailboxManager, factory, disabledCaps, metricFactory);
this(next, mailboxManager, factory, metricFactory);
CapabilityProcessor.capabilities.addAll(capabilities);

}

public CapabilityProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory, Set<String> disabledCaps,
public CapabilityProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
MetricFactory metricFactory) {
super(CapabilityRequest.class, next, mailboxManager, factory, metricFactory);
CapabilityProcessor.disabledCaps.addAll(disabledCaps);
capabilities.add(this);
capabilities.add(this);

}

Expand Down
Expand Up @@ -19,10 +19,6 @@

package org.apache.james.imap.processor;

import java.util.Set;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.MailboxTyper;
Expand All @@ -41,12 +37,12 @@ public class DefaultProcessorChain {
public static ImapProcessor createDefaultChain(ImapProcessor chainEndProcessor,
final MailboxManager mailboxManager, SubscriptionManager subscriptionManager,
final StatusResponseFactory statusResponseFactory, MailboxTyper mailboxTyper, QuotaManager quotaManager,
final QuotaRootResolver quotaRootResolver, long idleKeepAlive, TimeUnit milliseconds, Set<String> disabledCaps,
final QuotaRootResolver quotaRootResolver,
MetricFactory metricFactory) {
final SystemMessageProcessor systemProcessor = new SystemMessageProcessor(chainEndProcessor, mailboxManager);
final LogoutProcessor logoutProcessor = new LogoutProcessor(systemProcessor, mailboxManager, statusResponseFactory, metricFactory);

final CapabilityProcessor capabilityProcessor = new CapabilityProcessor(logoutProcessor, mailboxManager, statusResponseFactory, disabledCaps, metricFactory);
final CapabilityProcessor capabilityProcessor = new CapabilityProcessor(logoutProcessor, mailboxManager, statusResponseFactory, metricFactory);
final CheckProcessor checkProcessor = new CheckProcessor(capabilityProcessor, mailboxManager, statusResponseFactory, metricFactory);
final LoginProcessor loginProcessor = new LoginProcessor(checkProcessor, mailboxManager, statusResponseFactory, metricFactory);
// so it can announce the LOGINDISABLED if needed
Expand Down Expand Up @@ -81,13 +77,7 @@ public static ImapProcessor createDefaultChain(ImapProcessor chainEndProcessor,
final AppendProcessor appendProcessor = new AppendProcessor(examineProcessor, mailboxManager, statusResponseFactory, metricFactory);
final StoreProcessor storeProcessor = new StoreProcessor(appendProcessor, mailboxManager, statusResponseFactory, metricFactory);
final NoopProcessor noopProcessor = new NoopProcessor(storeProcessor, mailboxManager, statusResponseFactory, metricFactory);
final IdleProcessor idleProcessor;
if (idleKeepAlive > 0) {
idleProcessor = new IdleProcessor(noopProcessor, mailboxManager, statusResponseFactory, idleKeepAlive, milliseconds, Executors.newScheduledThreadPool(IdleProcessor.DEFAULT_SCHEDULED_POOL_CORE_SIZE), metricFactory);
} else {
// We don't want to send keep alives so now scheduled executur needed
idleProcessor = new IdleProcessor(noopProcessor, mailboxManager, statusResponseFactory, idleKeepAlive, milliseconds, null, metricFactory);
}
final IdleProcessor idleProcessor = new IdleProcessor(noopProcessor, mailboxManager, statusResponseFactory, metricFactory);
final StatusProcessor statusProcessor = new StatusProcessor(idleProcessor, mailboxManager, statusResponseFactory, metricFactory);
final LSubProcessor lsubProcessor = new LSubProcessor(statusProcessor, mailboxManager, subscriptionManager, statusResponseFactory, metricFactory);
final XListProcessor xlistProcessor = new XListProcessor(lsubProcessor, mailboxManager, statusResponseFactory, mailboxTyper, metricFactory);
Expand Down
Expand Up @@ -20,7 +20,6 @@
package org.apache.james.imap.processor;

import static org.apache.james.imap.api.ImapConstants.SUPPORTS_IDLE;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -50,15 +49,15 @@

public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> implements CapabilityImplementingProcessor {

private final ScheduledExecutorService heartbeatExecutor;
private final static List<String> 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 int DEFAULT_SCHEDULED_POOL_CORE_SIZE = 5;
private final static String DONE = "DONE";
private final TimeUnit heartbeatIntervalUnit;
private final long heartbeatInterval;
private TimeUnit heartbeatIntervalUnit;
private long heartbeatInterval;
private ScheduledExecutorService heartbeatExecutor;

public IdleProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
MetricFactory metricFactory) {
Expand Down
Expand Up @@ -19,16 +19,11 @@

package org.apache.james.imap.processor.main;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.MailboxTyper;
import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
import org.apache.james.imap.processor.DefaultProcessorChain;
import org.apache.james.imap.processor.IdleProcessor;
import org.apache.james.imap.processor.base.ImapResponseMessageProcessor;
import org.apache.james.imap.processor.base.UnknownRequestProcessor;
import org.apache.james.mailbox.MailboxManager;
Expand All @@ -44,24 +39,14 @@ public class DefaultImapProcessorFactory {

public static ImapProcessor createDefaultProcessor(MailboxManager mailboxManager, SubscriptionManager subscriptionManager, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver,
MetricFactory metricFactory) {
return createXListSupportingProcessor(mailboxManager, subscriptionManager, null, quotaManager, quotaRootResolver, IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS, new HashSet<String>(), metricFactory);
}

public static ImapProcessor createDefaultProcessor(MailboxManager mailboxManager, SubscriptionManager subscriptionManager, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, long idleKeepAlive,
MetricFactory metricFactory) {
return createXListSupportingProcessor(mailboxManager, subscriptionManager, null, quotaManager, quotaRootResolver, idleKeepAlive, new HashSet<String>(), metricFactory);
return createXListSupportingProcessor(mailboxManager, subscriptionManager, null, quotaManager, quotaRootResolver, metricFactory);
}

public static ImapProcessor createXListSupportingProcessor(MailboxManager mailboxManager, SubscriptionManager subscriptionManager, MailboxTyper mailboxTyper, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver,
MetricFactory metricFactory) {
return createXListSupportingProcessor(mailboxManager, subscriptionManager, mailboxTyper, quotaManager, quotaRootResolver, IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS, new HashSet<String>(), metricFactory);
}

public static ImapProcessor createXListSupportingProcessor(MailboxManager mailboxManager, SubscriptionManager subscriptionManager, MailboxTyper mailboxTyper, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, long idleKeepAlive, Set<String> disabledCaps,
MetricFactory metricFactory) {
public static ImapProcessor createXListSupportingProcessor(MailboxManager mailboxManager, SubscriptionManager subscriptionManager,
MailboxTyper mailboxTyper, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MetricFactory metricFactory) {
final StatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
final UnknownRequestProcessor unknownRequestImapProcessor = new UnknownRequestProcessor(statusResponseFactory);
final ImapProcessor imap4rev1Chain = DefaultProcessorChain.createDefaultChain(unknownRequestImapProcessor, mailboxManager, subscriptionManager, statusResponseFactory, mailboxTyper, quotaManager, quotaRootResolver, idleKeepAlive, TimeUnit.SECONDS, disabledCaps, metricFactory);
final ImapProcessor imap4rev1Chain = DefaultProcessorChain.createDefaultChain(unknownRequestImapProcessor, mailboxManager, subscriptionManager, statusResponseFactory, mailboxTyper, quotaManager, quotaRootResolver, metricFactory);
return new ImapResponseMessageProcessor(imap4rev1Chain);
}

Expand Down
Expand Up @@ -41,7 +41,6 @@

import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Provides;
Expand All @@ -59,7 +58,6 @@ protected void configure() {
}

@Provides
@Singleton
ImapProcessor provideImapProcessor(
@Named(Names.MAILBOXMANAGER_NAME)MailboxManager mailboxManager,
SubscriptionManager subscriptionManager,
Expand All @@ -72,8 +70,6 @@ ImapProcessor provideImapProcessor(
null,
quotaManager,
quotaRootResolver,
120,
ImmutableSet.of("ACL", "MOVE"),
metricFactory);
}

Expand Down
Expand Up @@ -37,16 +37,7 @@
<constructor-arg index="2" value="#{null}"/>
<constructor-arg index="3" ref="quotaManager"/>
<constructor-arg index="4" ref="quotaRootResolver"/>
<!-- The idleKeepAlive -->
<constructor-arg index="5" value="120"/>
<!-- The list of disabled capabilities -->
<constructor-arg index="6">
<set>
<value>ACL</value>
<value>MOVE</value>
</set>
</constructor-arg>
<constructor-arg index="7" ref="timeMetricFactory"/>
<constructor-arg index="5" ref="timeMetricFactory"/>
</bean>

<bean id="imapDecoderFactory" class="org.apache.james.imap.main.DefaultImapDecoderFactory"/>
Expand Down

0 comments on commit 1e6ef60

Please sign in to comment.