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: [email protected]
For additional commands, e-mail: [email protected]