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 no...@apache.org on 2011/08/24 07:36:11 UTC

svn commit: r1160980 - /james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org