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