Author: norman Date: Wed Aug 24 05:36:10 2011 New Revision: 1160980 URL: http://svn.apache.org/viewvc?rev=1160980&view=rev Log: Use static fields where possible for CAPABILITIES. See IMAP-336
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CompressProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/EnableProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LoginProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/XListProcessor.java Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java Wed Aug 24 05:36:10 2011 @@ -66,7 +66,7 @@ abstract class AbstractSelectionProcesso final StatusResponseFactory statusResponseFactory; private final boolean openReadOnly; - private final List<String> CAPS = Collections.unmodifiableList(Arrays.asList(ImapConstants.SUPPORTS_QRESYNC, ImapConstants.SUPPORTS_CONDSTORE)); + private final static List<String> CAPS = Collections.unmodifiableList(Arrays.asList(ImapConstants.SUPPORTS_QRESYNC, ImapConstants.SUPPORTS_CONDSTORE)); public AbstractSelectionProcessor(final Class<M> acceptableClass, final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory statusResponseFactory, final boolean openReadOnly) { Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java Wed Aug 24 05:36:10 2011 @@ -21,6 +21,7 @@ package org.apache.james.imap.processor; import java.nio.charset.Charset; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.StringTokenizer; @@ -153,7 +154,7 @@ public class AuthenticateProcessor exten } // Support for SASL-IR. See RFC4959 caps.add("SASL-IR"); - return caps; + return Collections.unmodifiableList(caps); } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java Wed Aug 24 05:36:10 2011 @@ -27,6 +27,7 @@ import static org.apache.james.imap.api. import static org.apache.james.imap.api.ImapConstants.SUPPORTS_CONDSTORE; import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -42,8 +43,24 @@ import org.apache.james.mailbox.MailboxM public class CapabilityProcessor extends AbstractMailboxProcessor<CapabilityRequest> implements CapabilityImplementingProcessor { - private static final List<CapabilityImplementingProcessor> capabilities = new ArrayList<CapabilityImplementingProcessor>(); + private final static List<String> CAPS; + + static { + List<String> caps = new ArrayList<String>(); + caps.add(VERSION); + caps.add(SUPPORTS_LITERAL_PLUS); + caps.add(SUPPORTS_RFC3348); + // UTF-8 is needed for I18NLEVEL_1 + if (CharsetUtil.getAvailableCharsetNames().contains(UTF8)) { + caps.add(SUPPORTS_I18NLEVEL_1); + } + caps.add(SUPPORTS_CONDSTORE); + CAPS = Collections.unmodifiableList(caps); + } + + private static final List<CapabilityImplementingProcessor> capabilities = new ArrayList<CapabilityImplementingProcessor>(); + public CapabilityProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory, final List<CapabilityImplementingProcessor> capabilities) { this(next, mailboxManager, factory); CapabilityProcessor.capabilities.addAll(capabilities); @@ -89,17 +106,7 @@ public class CapabilityProcessor extends * getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) */ public List<String> getImplementedCapabilities(ImapSession session) { - final List<String> capabilities = new ArrayList<String>(); - capabilities.add(VERSION); - capabilities.add(SUPPORTS_LITERAL_PLUS); - capabilities.add(SUPPORTS_RFC3348); - - // UTF-8 is needed for I18NLEVEL_1 - if (CharsetUtil.getAvailableCharsetNames().contains(UTF8)) { - capabilities.add(SUPPORTS_I18NLEVEL_1); - } - capabilities.add(SUPPORTS_CONDSTORE); - return capabilities; + return CAPS; } /** Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CompressProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CompressProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CompressProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CompressProcessor.java Wed Aug 24 05:36:10 2011 @@ -32,7 +32,7 @@ import org.apache.james.imap.processor.b public class CompressProcessor extends AbstractChainedProcessor<CompressRequest> implements CapabilityImplementingProcessor { private final static String ALGO = "DEFLATE"; - private final static List<String> CAPA = Arrays.asList(ImapConstants.COMPRESS_COMMAND_NAME + "=" + ALGO); + private final static List<String> CAPA = Collections.unmodifiableList(Arrays.asList(ImapConstants.COMPRESS_COMMAND_NAME + "=" + ALGO)); private StatusResponseFactory factory; private final static String COMPRESSED = "COMPRESSED"; Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/EnableProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/EnableProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/EnableProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/EnableProcessor.java Wed Aug 24 05:36:10 2011 @@ -22,6 +22,8 @@ package org.apache.james.imap.processor; import static org.apache.james.imap.api.ImapConstants.SUPPORTS_ENABLE; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -42,7 +44,8 @@ public class EnableProcessor extends Abs private final static List<PermitEnableCapabilityProcessor> capabilities = new ArrayList<PermitEnableCapabilityProcessor>(); public final static String ENABLED_CAPABILITIES = "ENABLED_CAPABILITIES"; - + private final static List<String> CAPS = Collections.unmodifiableList(Arrays.asList(SUPPORTS_ENABLE)); + public EnableProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory, final List<PermitEnableCapabilityProcessor> capabilities) { this(next, mailboxManager, factory); EnableProcessor.capabilities.addAll(capabilities); @@ -124,10 +127,7 @@ public class EnableProcessor extends Abs * getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) */ public List<String> getImplementedCapabilities(ImapSession session) { - final List<String> capabilities = new ArrayList<String>(); - capabilities.add(SUPPORTS_ENABLE); - - return capabilities; + return CAPS; } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java Wed Aug 24 05:36:10 2011 @@ -20,6 +20,7 @@ package org.apache.james.imap.processor; import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -45,7 +46,7 @@ import org.apache.james.mailbox.MessageR public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> implements CapabilityImplementingProcessor { - private final static List<String> UIDPLUS = Arrays.asList("UIDPLUS"); + private final static List<String> UIDPLUS = Collections.unmodifiableList(Arrays.asList("UIDPLUS")); public ExpungeProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory) { super(ExpungeRequest.class, next, mailboxManager, factory); Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java Wed Aug 24 05:36:10 2011 @@ -22,6 +22,7 @@ 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; import java.util.Locale; import java.util.concurrent.Executors; @@ -49,7 +50,7 @@ import org.apache.james.mailbox.MailboxS 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; @@ -148,8 +149,12 @@ public class IdleProcessor extends Abstr } } + /* + * (non-Javadoc) + * @see org.apache.james.imap.processor.CapabilityImplementingProcessor#getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) + */ public List<String> getImplementedCapabilities(ImapSession session) { - return Arrays.asList(SUPPORTS_IDLE); + return CAPS; } private class IdleMailboxListener extends ImapStateAwareMailboxListener { Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LoginProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LoginProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LoginProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LoginProcessor.java Wed Aug 24 05:36:10 2011 @@ -19,7 +19,8 @@ package org.apache.james.imap.processor; -import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapCommand; @@ -35,6 +36,7 @@ import org.apache.james.mailbox.MailboxM */ public class LoginProcessor extends AbstractAuthProcessor<LoginRequest> implements CapabilityImplementingProcessor{ + private final static List<String> LOGINDISABLED_CAPS = Collections.unmodifiableList(Arrays.asList("LOGINDISABLED")); public LoginProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory) { super(LoginRequest.class, next, mailboxManager, factory); } @@ -59,12 +61,11 @@ public class LoginProcessor extends Abst * @see org.apache.james.imap.processor.CapabilityImplementingProcessor#getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) */ public List<String> getImplementedCapabilities(ImapSession session) { - List<String> caps = new ArrayList<String>(); // Announce LOGINDISABLED if plain auth / login is deactivated and the session is not using // TLS. See IMAP-304 if (session.isPlainAuthDisallowed() && session.isTLSActive() == false) { - caps.add("LOGINDISABLED"); + return LOGINDISABLED_CAPS; } - return caps; + return Collections.emptyList(); } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java Wed Aug 24 05:36:10 2011 @@ -23,6 +23,7 @@ import static org.apache.james.imap.api. import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapCommand; @@ -39,7 +40,9 @@ import org.apache.james.mailbox.MailboxS * Processes a NAMESPACE command into a suitable set of responses. */ public class NamespaceProcessor extends AbstractMailboxProcessor<NamespaceRequest> implements CapabilityImplementingProcessor { - + private final static List<String> CAPS = Collections.unmodifiableList(Arrays.asList(SUPPORTS_NAMESPACES)); + + public NamespaceProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory) { super(NamespaceRequest.class, next, mailboxManager, factory); } @@ -104,7 +107,7 @@ public class NamespaceProcessor extends * getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) */ public List<String> getImplementedCapabilities(ImapSession session) { - return Arrays.asList(SUPPORTS_NAMESPACES); + return CAPS; } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java Wed Aug 24 05:36:10 2011 @@ -22,6 +22,7 @@ package org.apache.james.imap.processor; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -64,6 +65,7 @@ import org.apache.james.mailbox.SearchQu public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> implements CapabilityImplementingProcessor { protected final static String SEARCH_MODSEQ = "SEARCH_MODSEQ"; + private final static List<String> CAPS = Collections.unmodifiableList(Arrays.asList("WITHIN", "ESEARCH", "SEARCHRES")); public SearchProcessor(final ImapProcessor next, final MailboxManager mailboxManager, final StatusResponseFactory factory) { super(SearchRequest.class, next, mailboxManager, factory); @@ -488,6 +490,6 @@ public class SearchProcessor extends Abs * @see org.apache.james.imap.processor.CapabilityImplementingProcessor#getImplementedCapabilities(org.apache.james.imap.api.process.ImapSession) */ public List<String> getImplementedCapabilities(ImapSession session) { - return Arrays.asList("WITHIN", "ESEARCH", "SEARCHRES"); + return CAPS; } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java Wed Aug 24 05:36:10 2011 @@ -18,8 +18,8 @@ ****************************************************************/ package org.apache.james.imap.processor; -import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapConstants; @@ -34,7 +34,7 @@ import org.apache.james.imap.processor.b * Processing STARTLS commands */ public class StartTLSProcessor extends AbstractChainedProcessor<StartTLSRequest> implements CapabilityImplementingProcessor { - + private final static List<String> STARTTLS_CAP = Collections.unmodifiableList(Arrays.asList(ImapConstants.SUPPORTS_STARTTLS)); private StatusResponseFactory factory; public StartTLSProcessor(final ImapProcessor next, final StatusResponseFactory factory) { @@ -70,9 +70,9 @@ public class StartTLSProcessor extends A */ public List<String> getImplementedCapabilities(ImapSession session) { if (session.supportStartTLS()) { - return Arrays.asList(ImapConstants.SUPPORTS_STARTTLS); + return STARTTLS_CAP; } else { - return new ArrayList<String>(); + return Collections.emptyList(); } } Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java Wed Aug 24 05:36:10 2011 @@ -19,6 +19,7 @@ package org.apache.james.imap.processor; import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.apache.james.imap.api.ImapCommand; @@ -36,7 +37,7 @@ import org.apache.james.mailbox.MailboxM */ public class UnselectProcessor extends AbstractMailboxProcessor<UnselectRequest> implements CapabilityImplementingProcessor { - private final static List<String> UNSELECT = Arrays.asList("UNSELECT"); + private final static List<String> UNSELECT = Collections.unmodifiableList(Arrays.asList("UNSELECT")); public UnselectProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory) { super(UnselectRequest.class, next, mailboxManager, factory); Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/XListProcessor.java URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/XListProcessor.java?rev=1160980&r1=1160979&r2=1160980&view=diff ============================================================================== --- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/XListProcessor.java (original) +++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/XListProcessor.java Wed Aug 24 05:36:10 2011 @@ -41,6 +41,7 @@ import org.apache.james.mailbox.MailboxM */ public class XListProcessor extends ListProcessor implements CapabilityImplementingProcessor { + private final static List<String> XLIST_CAPS = Collections.unmodifiableList(Arrays.asList(SUPPORTS_XLIST)); private MailboxTyper mailboxTyper; // some interface @@ -61,7 +62,7 @@ public class XListProcessor extends List return Collections.emptyList(); } - return Arrays.asList(SUPPORTS_XLIST); + return XLIST_CAPS; } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org