Author: norman
Date: Fri Sep 30 14:52:07 2011
New Revision: 1177684

URL: http://svn.apache.org/viewvc?rev=1177684&view=rev
Log:
Allow to disable caps via spring config. See IMAP-322

Modified:
    
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/DefaultProcessorChain.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java

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=1177684&r1=1177683&r2=1177684&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
 Fri Sep 30 14:52:07 2011
@@ -60,16 +60,19 @@ public class CapabilityProcessor extends
     }
     
     private static final List<CapabilityImplementingProcessor> capabilities = 
new ArrayList<CapabilityImplementingProcessor>();
+    private static final Set<String> disabledCaps = new HashSet<String>();
     
-    public CapabilityProcessor(final ImapProcessor next, final MailboxManager 
mailboxManager, final StatusResponseFactory factory, final 
List<CapabilityImplementingProcessor> capabilities) {
-        this(next, mailboxManager, factory);
+    public CapabilityProcessor(final ImapProcessor next, final MailboxManager 
mailboxManager, final StatusResponseFactory factory, final 
List<CapabilityImplementingProcessor> capabilities, final Set<String> 
disabledCaps) {
+        this(next, mailboxManager, factory, disabledCaps);
         CapabilityProcessor.capabilities.addAll(capabilities);
 
     }
 
-    public CapabilityProcessor(final ImapProcessor next, final MailboxManager 
mailboxManager, final StatusResponseFactory factory) {
+    public CapabilityProcessor(final ImapProcessor next, final MailboxManager 
mailboxManager, final StatusResponseFactory factory,final Set<String> 
disabledCaps) {
         super(CapabilityRequest.class, next, mailboxManager, factory);
-        capabilities.add(this);
+        CapabilityProcessor.disabledCaps.addAll(disabledCaps);
+        capabilities.add(this); 
+        
     }
 
     /*
@@ -120,6 +123,7 @@ public class CapabilityProcessor extends
         for (int i = 0; i < capabilities.size(); i++) {
             
caps.addAll(capabilities.get(i).getImplementedCapabilities(session));
         }
+        caps.removeAll(disabledCaps);
         return caps;
     }
     

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java?rev=1177684&r1=1177683&r2=1177684&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
 Fri Sep 30 14:52:07 2011
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
@@ -34,11 +35,11 @@ import org.apache.james.mailbox.Subscrip
  */
 public class DefaultProcessorChain {
 
-    public static final ImapProcessor createDefaultChain(final ImapProcessor 
chainEndProcessor, final MailboxManager mailboxManager, final 
SubscriptionManager subscriptionManager, final StatusResponseFactory 
statusResponseFactory, MailboxTyper mailboxTyper, int batchSize, long 
idleKeepAlive, TimeUnit milliseconds) {
+    public static final ImapProcessor createDefaultChain(final ImapProcessor 
chainEndProcessor, final MailboxManager mailboxManager, final 
SubscriptionManager subscriptionManager, final StatusResponseFactory 
statusResponseFactory, MailboxTyper mailboxTyper, int batchSize, long 
idleKeepAlive, TimeUnit milliseconds, Set<String> disabledCaps) {
         final SystemMessageProcessor systemProcessor = new 
SystemMessageProcessor(chainEndProcessor, mailboxManager);
         final LogoutProcessor logoutProcessor = new 
LogoutProcessor(systemProcessor, mailboxManager, statusResponseFactory);
 
-        final CapabilityProcessor capabilityProcessor = new 
CapabilityProcessor(logoutProcessor, mailboxManager, statusResponseFactory);
+        final CapabilityProcessor capabilityProcessor = new 
CapabilityProcessor(logoutProcessor, mailboxManager, statusResponseFactory, 
disabledCaps);
         final CheckProcessor checkProcessor = new 
CheckProcessor(capabilityProcessor, mailboxManager, statusResponseFactory);
         final LoginProcessor loginProcessor = new 
LoginProcessor(checkProcessor, mailboxManager, statusResponseFactory);
         // so it can announce the LOGINDISABLED if needed

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java?rev=1177684&r1=1177683&r2=1177684&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java
 Fri Sep 30 14:52:07 2011
@@ -19,6 +19,8 @@
 
 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.ImapConstants;
@@ -39,21 +41,21 @@ import org.apache.james.mailbox.Subscrip
 public class DefaultImapProcessorFactory {
 
     public static final ImapProcessor createDefaultProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager) {
-        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, null, ImapConstants.DEFAULT_BATCH_SIZE, 
IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS);
+        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, null, ImapConstants.DEFAULT_BATCH_SIZE, 
IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS, new HashSet<String>());
     }
 
     public static final ImapProcessor createDefaultProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager, 
int batchSize, long idleKeepAlive) {
-        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, null, batchSize, idleKeepAlive);
+        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, null, batchSize, idleKeepAlive, new HashSet<String>());
     }
 
     public static final ImapProcessor createXListSupportingProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager, 
MailboxTyper mailboxTyper) {
-        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, mailboxTyper, ImapConstants.DEFAULT_BATCH_SIZE, 
IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS);
+        return createXListSupportingProcessor(mailboxManager, 
subscriptionManager, mailboxTyper, ImapConstants.DEFAULT_BATCH_SIZE, 
IdleProcessor.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS, new HashSet<String>());
     }
 
-    public static final ImapProcessor createXListSupportingProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager, 
MailboxTyper mailboxTyper, int batchSize, long idleKeepAlive) {
+    public static final ImapProcessor createXListSupportingProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager, 
MailboxTyper mailboxTyper, int batchSize, long idleKeepAlive, Set<String> 
disabledCaps) {
         final StatusResponseFactory statusResponseFactory = new 
UnpooledStatusResponseFactory();
         final UnknownRequestProcessor unknownRequestImapProcessor = new 
UnknownRequestProcessor(statusResponseFactory);
-        final ImapProcessor imap4rev1Chain = 
DefaultProcessorChain.createDefaultChain(unknownRequestImapProcessor, 
mailboxManager, subscriptionManager, statusResponseFactory, mailboxTyper, 
batchSize, idleKeepAlive, TimeUnit.SECONDS);
+        final ImapProcessor imap4rev1Chain = 
DefaultProcessorChain.createDefaultChain(unknownRequestImapProcessor, 
mailboxManager, subscriptionManager, statusResponseFactory, mailboxTyper, 
batchSize, idleKeepAlive, TimeUnit.SECONDS, disabledCaps);
         final ImapProcessor result = new 
ImapResponseMessageProcessor(imap4rev1Chain);
         return result;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to