Author: norman
Date: Sat Aug 21 20:07:09 2010
New Revision: 987821

URL: http://svn.apache.org/viewvc?rev=987821&view=rev
Log:
Move the Subscriper to the mailbox api and rename it SubscriptionManager, not 
sure yet if it make more sense :) (IMAP-205)

Added:
    
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/SubscriptionManager.java
      - copied, changed from r987775, 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
Removed:
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
Modified:
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
    
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
    
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRHostSystem.java
    
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRStressTest.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
    
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAHostSystem.java
    
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAStressTest.java
    
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
    
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirMailboxManager.java
    
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirHostSystem.java
    
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirStressTest.java
    
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
    
james/imap/trunk/memory/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.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/LSubProcessor.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java
    
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/DelegatingMailboxManager.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
    
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
    
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
    
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java

Modified: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
 Sat Aug 21 20:07:09 2010
@@ -25,13 +25,13 @@ import java.util.Map;
 
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.store.Authenticator;
-import org.apache.james.imap.store.Subscriber;
 
 /**
  * Stores users in memory.
  */
-public class InMemoryUserManager implements Authenticator, Subscriber {
+public class InMemoryUserManager implements Authenticator, SubscriptionManager 
{
 
     private final Map<String, User> users;
 

Modified: 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
 (original)
+++ 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -29,7 +29,6 @@ import org.apache.james.imap.mailbox.uti
 import org.apache.james.imap.store.Authenticator;
 import org.apache.james.imap.store.StoreMailboxManager;
 import org.apache.james.imap.store.MapperStoreMessageManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.imap.store.mail.model.Mailbox;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 
@@ -42,12 +41,12 @@ public class JCRMailboxManager extends S
     private final JCRMailboxSessionMapperFactory mapperFactory;
     private final Log logger = LogFactory.getLog(JCRMailboxManager.class);
     
-    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, 
final Authenticator authenticator, final Subscriber subscriber) {
-           this(mapperFactory, authenticator, subscriber, new 
JCRVmNodeLocker());
+    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, 
final Authenticator authenticator) {
+           this(mapperFactory, authenticator, new JCRVmNodeLocker());
     }
 
-    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, 
final Authenticator authenticator, final Subscriber subscriber, final 
NodeLocker locker) {
-        super(mapperFactory, authenticator, subscriber);
+    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, 
final Authenticator authenticator, final NodeLocker locker) {
+        super(mapperFactory, authenticator);
         this.mapperFactory = mapperFactory;
     }
 

Modified: 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRHostSystem.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRHostSystem.java 
(original)
+++ 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRHostSystem.java 
Sat Aug 21 20:07:09 2010
@@ -24,6 +24,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.impl.SimpleLog;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
+import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.InMemoryUserManager;
@@ -71,9 +72,8 @@ public class JCRHostSystem extends ImapH
             userManager = new InMemoryUserManager();
             JCRMailboxSessionMapperFactory mf = new 
JCRMailboxSessionMapperFactory(sessionRepos, new JCRVmNodeLocker());
 
-            //TODO: Fix the scaling stuff so the tests will pass with max 
scaling too
-            mailboxManager = new JCRMailboxManager(mf, userManager, new 
JCRSubscriptionManager(mf));
-            final DefaultImapProcessorFactory defaultImapProcessorFactory = 
new DefaultImapProcessorFactory();
+            mailboxManager = new JCRMailboxManager(mf, userManager);
+            final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new 
JCRSubscriptionManager(mf));
             resetUserMetaData();
             MailboxSession session = 
mailboxManager.createSystemSession("test", new SimpleLog("TestLog"));
             mailboxManager.startProcessingRequest(session);
@@ -81,8 +81,7 @@ public class JCRHostSystem extends ImapH
             mailboxManager.endProcessingRequest(session);
             mailboxManager.logout(session, false);
             
-            defaultImapProcessorFactory.configure(mailboxManager);
-            configure(new DefaultImapDecoderFactory().buildImapDecoder(), new 
DefaultImapEncoderFactory().buildImapEncoder(), 
defaultImapProcessorFactory.buildImapProcessor());
+            configure(new DefaultImapDecoderFactory().buildImapDecoder(), new 
DefaultImapEncoderFactory().buildImapEncoder(), defaultImapProcessorFactory);
         } catch (Exception e) {
             shutdownRepository();
             throw e;

Modified: 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRStressTest.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRStressTest.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRStressTest.java 
(original)
+++ 
james/imap/trunk/jcr/src/test/java/org/apache/james/imap/jcr/JCRStressTest.java 
Sat Aug 21 20:07:09 2010
@@ -29,7 +29,6 @@ import org.apache.james.imap.functional.
 import org.apache.james.imap.jcr.GlobalMailboxSessionJCRRepository;
 import org.apache.james.imap.jcr.JCRMailboxManager;
 import org.apache.james.imap.jcr.JCRMailboxSessionMapperFactory;
-import org.apache.james.imap.jcr.JCRSubscriptionManager;
 import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.jcr.JCRVmNodeLocker;
 import org.apache.james.imap.jcr.MailboxSessionJCRRepository;
@@ -64,7 +63,7 @@ public class JCRStressTest extends Abstr
 
         MailboxSessionJCRRepository sessionRepos = new 
GlobalMailboxSessionJCRRepository(repository, workspace, user, pass);
         JCRMailboxSessionMapperFactory mf = new 
JCRMailboxSessionMapperFactory(sessionRepos, new JCRVmNodeLocker());
-        mailboxManager = new JCRMailboxManager(mf, null, new 
JCRSubscriptionManager(mf));
+        mailboxManager = new JCRMailboxManager(mf, null);
 
     }
     

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -25,7 +25,6 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.store.Authenticator;
 import org.apache.james.imap.store.StoreMailboxManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.imap.store.mail.MailboxMapper;
 import org.apache.james.imap.store.mail.model.Mailbox;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
@@ -37,8 +36,8 @@ import org.apache.james.imap.store.user.
 public abstract class JPAMailboxManager extends StoreMailboxManager<Long> {
     
     public JPAMailboxManager(JPAMailboxSessionMapperFactory 
mailboxSessionMapperFactory,
-            final Authenticator authenticator, Subscriber subscripter) {
-        super(mailboxSessionMapperFactory, authenticator, subscripter);
+            final Authenticator authenticator) {
+        super(mailboxSessionMapperFactory, authenticator);
     }
     
     @Override

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -27,7 +27,6 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.util.MailboxEventDispatcher;
 import org.apache.james.imap.store.Authenticator;
 import org.apache.james.imap.store.MapperStoreMessageManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.imap.store.mail.model.Mailbox;
 
 /**
@@ -38,13 +37,13 @@ public class OpenJPAMailboxManager exten
 
     private boolean useStreaming;
 
-    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, 
Authenticator authenticator, Subscriber subscripter, boolean useStreaming) {
-        super(mapperFactory, authenticator, subscripter);
+    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, 
Authenticator authenticator, boolean useStreaming) {
+        super(mapperFactory, authenticator);
         this.useStreaming = useStreaming;
     }
 
-    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, 
Authenticator authenticator, Subscriber subscripter) {
-        this(mapperFactory, authenticator, subscripter, false);
+    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, 
Authenticator authenticator) {
+        this(mapperFactory, authenticator, false);
     }
 
     @Override

Modified: 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAHostSystem.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAHostSystem.java 
(original)
+++ 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAHostSystem.java 
Sat Aug 21 20:07:09 2010
@@ -26,6 +26,7 @@ import javax.persistence.EntityManagerFa
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.impl.SimpleLog;
+import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.InMemoryUserManager;
@@ -39,6 +40,7 @@ import org.apache.james.imap.jpa.mail.mo
 import org.apache.james.imap.jpa.openjpa.OpenJPAMailboxManager;
 import org.apache.james.imap.jpa.user.model.JPASubscription;
 import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.test.functional.HostSystem;
@@ -75,14 +77,13 @@ public class JPAHostSystem extends ImapH
         userManager = new InMemoryUserManager();
         entityManagerFactory = 
OpenJPAPersistence.getEntityManagerFactory(properties);
         JPAMailboxSessionMapperFactory mf = new 
JPAMailboxSessionMapperFactory(entityManagerFactory);
-        mailboxManager = new OpenJPAMailboxManager(mf, userManager, new 
JPASubscriptionManager(mf));
-        
-        final DefaultImapProcessorFactory defaultImapProcessorFactory = new 
DefaultImapProcessorFactory();
+        mailboxManager = new OpenJPAMailboxManager(mf, userManager);
+        SubscriptionManager subscriptionManager = new 
JPASubscriptionManager(mf);
+        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, 
subscriptionManager);
         resetUserMetaData();
-        defaultImapProcessorFactory.configure(mailboxManager);
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),
                 new DefaultImapEncoderFactory().buildImapEncoder(),
-                defaultImapProcessorFactory.buildImapProcessor());
+                defaultImapProcessorFactory);
     }
 
     public boolean addUser(String user, String password) {

Modified: 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAStressTest.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAStressTest.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAStressTest.java 
(original)
+++ 
james/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/JPAStressTest.java 
Sat Aug 21 20:07:09 2010
@@ -71,7 +71,7 @@ public class JPAStressTest extends Abstr
        
         entityManagerFactory = 
OpenJPAPersistence.getEntityManagerFactory(properties);
         JPAMailboxSessionMapperFactory mf = new 
JPAMailboxSessionMapperFactory(entityManagerFactory);
-        mailboxManager = new OpenJPAMailboxManager(mf, null, new 
JPASubscriptionManager(mf));
+        mailboxManager = new OpenJPAMailboxManager(mf, null);
         
         // Set the lock timeout via SQL because of a bug in openJPA
         // https://issues.apache.org/jira/browse/OPENJPA-1656

Modified: 
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
 (original)
+++ 
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -19,7 +19,6 @@
 
 package org.apache.james.imap.mailbox;
 
-import java.util.Collection;
 import java.util.List;
 
 import org.apache.commons.logging.Log;
@@ -195,38 +194,8 @@ public interface MailboxManager {
      */
     void logout(MailboxSession session, boolean force) throws MailboxException;
 
-    /**
-     * Subscribes the user to the given mailbox.
-     * 
-     * @param session
-     *            the user name, not null
-     * @param mailbox
-     *            the mailbox name, not null
-     */
-    public void subscribe(MailboxSession session, String mailbox)
-            throws SubscriptionException;
-
-    /**
-     * Unsubscribes the user from the given mailbox.
-     * 
-     * @param session
-     *            the user name, not null
-     * @param mailbox
-     *            the mailbox name, not null
-     */
-    public void unsubscribe(MailboxSession session, String mailbox)
-            throws SubscriptionException;
 
     /**
-     * Lists current subscriptions for the given user.
-     * 
-     * @param session
-     *            the user name, not null
-     * @return a <code>Collection<String></code> of mailbox names
-     */
-    public Collection<String> subscriptions(MailboxSession session) throws 
SubscriptionException;
-    
-    /**
      * <p>Implementations of Mailbox may interpret the fact that someone is
      * listening and do some caching and even postpone persistence until
      * everyone has removed itself.

Copied: 
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/SubscriptionManager.java
 (from r987775, 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java)
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/SubscriptionManager.java?p2=james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/SubscriptionManager.java&p1=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java&r1=987775&r2=987821&rev=987821&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
 (original)
+++ 
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/SubscriptionManager.java
 Sat Aug 21 20:07:09 2010
@@ -17,17 +17,15 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.imap.store;
+package org.apache.james.imap.mailbox;
 
 import java.util.Collection;
 
-import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.mailbox.SubscriptionException;
 
 /**
  * Subscribes users.
  */
-public interface Subscriber {
+public interface SubscriptionManager{
     
     /**
      * Subscribes the user in the session to the given mailbox.

Modified: 
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirMailboxManager.java
 (original)
+++ 
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -27,7 +27,6 @@ import org.apache.james.imap.store.Authe
 import org.apache.james.imap.store.MailboxSessionMapperFactory;
 import org.apache.james.imap.store.StoreMailboxManager;
 import org.apache.james.imap.store.MapperStoreMessageManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.imap.store.mail.MailboxMapper;
 import org.apache.james.imap.store.mail.model.Mailbox;
 
@@ -35,8 +34,8 @@ public class MaildirMailboxManager exten
 
     public MaildirMailboxManager(
             MailboxSessionMapperFactory<Integer> mailboxSessionMapperFactory,
-            Authenticator authenticator, Subscriber subscriber) {
-        super(mailboxSessionMapperFactory, authenticator, subscriber);
+            Authenticator authenticator) {
+        super(mailboxSessionMapperFactory, authenticator);
     }
 
     @Override

Modified: 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirHostSystem.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirHostSystem.java
 (original)
+++ 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirHostSystem.java
 Sat Aug 21 20:07:09 2010
@@ -21,6 +21,7 @@ package org.apache.james.imap.functional
 import java.io.File;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.InMemoryUserManager;
@@ -48,13 +49,12 @@ public class MaildirHostSystem extends I
         userManager = new InMemoryUserManager();
         mailboxSessionMapperFactory = new 
MaildirMailboxSessionMapperFactory(MAILDIR_HOME + "/%user");
         MaildirSubscriptionManager sm = new 
MaildirSubscriptionManager(mailboxSessionMapperFactory);
-        mailboxManager = new 
MaildirMailboxManager(mailboxSessionMapperFactory, userManager, sm);
+        mailboxManager = new 
MaildirMailboxManager(mailboxSessionMapperFactory, userManager);
         
-        final DefaultImapProcessorFactory defaultImapProcessorFactory = new 
DefaultImapProcessorFactory();
-        defaultImapProcessorFactory.configure(mailboxManager);
+        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, sm);
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),
                 new DefaultImapEncoderFactory().buildImapEncoder(),
-                defaultImapProcessorFactory.buildImapProcessor());
+                defaultImapProcessorFactory);
         (new File(MAILDIR_HOME)).mkdirs();
     }
     

Modified: 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirStressTest.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirStressTest.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirStressTest.java
 (original)
+++ 
james/imap/trunk/maildir/src/test/java/org/apache/james/imap/functional/maildir/MaildirStressTest.java
 Sat Aug 21 20:07:09 2010
@@ -26,7 +26,6 @@ import org.apache.james.imap.functional.
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.maildir.MaildirMailboxManager;
 import org.apache.james.imap.maildir.MaildirMailboxSessionMapperFactory;
-import org.apache.james.imap.maildir.MaildirSubscriptionManager;
 import org.apache.james.imap.store.StoreMailboxManager;
 import org.junit.After;
 import org.junit.Before;
@@ -39,7 +38,7 @@ public class MaildirStressTest extends A
     @Before
     public void setUp() {
         MaildirMailboxSessionMapperFactory mf = new 
MaildirMailboxSessionMapperFactory(MAILDIR_HOME + "/%user");
-        mailboxManager = new MaildirMailboxManager(mf, null, new 
MaildirSubscriptionManager(mf));
+        mailboxManager = new MaildirMailboxManager(mf, null);
     }
     
     @After

Modified: 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
 (original)
+++ 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -29,13 +29,12 @@ import org.apache.james.imap.store.Authe
 import org.apache.james.imap.store.MailboxSessionMapperFactory;
 import org.apache.james.imap.store.StoreMailboxManager;
 import org.apache.james.imap.store.MapperStoreMessageManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.imap.store.mail.model.Mailbox;
 
 public class InMemoryMailboxManager extends StoreMailboxManager<Long> {
 
-    public InMemoryMailboxManager(MailboxSessionMapperFactory<Long> 
mapperFactory, Authenticator authenticator, Subscriber subscriber) {
-        super(mapperFactory, authenticator, subscriber);
+    public InMemoryMailboxManager(MailboxSessionMapperFactory<Long> 
mapperFactory, Authenticator authenticator) {
+        super(mapperFactory, authenticator);
     }
 
     @Override

Modified: 
james/imap/trunk/memory/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/memory/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
 (original)
+++ 
james/imap/trunk/memory/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
 Sat Aug 21 20:07:09 2010
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.functional.inmemory;
 
+import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.InMemoryUserManager;
@@ -42,12 +43,12 @@ public class InMemoryHostSystem extends 
     private InMemoryHostSystem() {
         userManager = new InMemoryUserManager();
         factory = new InMemoryMailboxSessionMapperFactory();
-        mailboxManager = new InMemoryMailboxManager(factory, userManager, new 
InMemorySubscriptionManager(factory));
-        final DefaultImapProcessorFactory defaultImapProcessorFactory = new 
DefaultImapProcessorFactory();
-        defaultImapProcessorFactory.configure(mailboxManager);
+        mailboxManager = new InMemoryMailboxManager(factory, userManager);
+        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new 
InMemorySubscriptionManager(factory));
+
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),
                 new DefaultImapEncoderFactory().buildImapEncoder(),
-                defaultImapProcessorFactory.buildImapProcessor());
+                defaultImapProcessorFactory);
     }
     
     public boolean addUser(String user, String password) throws Exception {

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=987821&r1=987820&r2=987821&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
 Sat Aug 21 20:07:09 2010
@@ -23,6 +23,7 @@ package org.apache.james.imap.processor;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.mailbox.MailboxManager;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.processor.fetch.FetchProcessor;
 
 /**
@@ -33,6 +34,7 @@ public class DefaultProcessorChain {
     public static final ImapProcessor createDefaultChain(
             final ImapProcessor chainEndProcessor,
             final MailboxManager mailboxManager,
+            final SubscriptionManager subscriptionManager,
             final StatusResponseFactory statusResponseFactory) {
         final SystemMessageProcessor systemProcessor = new 
SystemMessageProcessor(chainEndProcessor, mailboxManager);
         final LogoutProcessor logoutProcessor = new LogoutProcessor(
@@ -53,10 +55,10 @@ public class DefaultProcessorChain {
         final CloseProcessor closeProcessor = new CloseProcessor(
                 createProcessor, mailboxManager, statusResponseFactory);
         final UnsubscribeProcessor unsubscribeProcessor = new 
UnsubscribeProcessor(
-                closeProcessor, mailboxManager, statusResponseFactory);
+                closeProcessor, mailboxManager, subscriptionManager, 
statusResponseFactory);
         final SubscribeProcessor subscribeProcessor = new SubscribeProcessor(
                 unsubscribeProcessor, mailboxManager,
-                statusResponseFactory);
+                subscriptionManager, statusResponseFactory);
         final CopyProcessor copyProcessor = new CopyProcessor(
                 subscribeProcessor, mailboxManager,
                 statusResponseFactory);
@@ -76,7 +78,7 @@ public class DefaultProcessorChain {
         final StatusProcessor statusProcessor = new StatusProcessor(
                 noopProcessor, mailboxManager, statusResponseFactory);
         final LSubProcessor lsubProcessor = new LSubProcessor(statusProcessor,
-                mailboxManager, statusResponseFactory);
+                mailboxManager, subscriptionManager, statusResponseFactory);
         final ListProcessor listProcessor = new ListProcessor(lsubProcessor,
                 mailboxManager, statusResponseFactory);
         final SearchProcessor searchProcessor = new SearchProcessor(

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LSubProcessor.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
 Sat Aug 21 20:07:09 2010
@@ -37,16 +37,21 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxQuery;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.message.request.LsubRequest;
 import org.apache.james.imap.message.response.LSubResponse;
 import org.apache.james.imap.processor.base.ImapSessionUtils;
 
 public class LSubProcessor extends AbstractMailboxProcessor {
 
+    private final SubscriptionManager subscriptionManager;
+
     public LSubProcessor(final ImapProcessor next,
-            final MailboxManager mailboxManager,
+            final MailboxManager mailboxManager, 
+            final SubscriptionManager subscriptionManager,
             final StatusResponseFactory factory) {
         super(next, mailboxManager, factory);
+        this.subscriptionManager = subscriptionManager;
     }
 
     protected boolean isAcceptable(ImapMessage message) {
@@ -89,8 +94,7 @@ public class LSubProcessor extends Abstr
             final String referenceName, final String mailboxName)
             throws SubscriptionException, MailboxException {
         final MailboxSession mailboxSession = 
ImapSessionUtils.getMailboxSession(session);
-        final MailboxManager manager = getMailboxManager();
-        final Collection<String> mailboxes = 
manager.subscriptions(mailboxSession);
+        final Collection<String> mailboxes = 
subscriptionManager.subscriptions(mailboxSession);
         // If the mailboxName is fully qualified, ignore the reference name.
         String finalReferencename = referenceName;
         

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
 Sat Aug 21 20:07:09 2010
@@ -29,15 +29,20 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.message.request.SubscribeRequest;
 import org.apache.james.imap.processor.base.ImapSessionUtils;
 
 public class SubscribeProcessor extends AbstractMailboxProcessor {
 
+    private final SubscriptionManager subscriptionManager;
+
     public SubscribeProcessor(final ImapProcessor next,
             final MailboxManager mailboxManager,
+            final SubscriptionManager subscriptionManager,
             final StatusResponseFactory factory) {
         super(next, mailboxManager, factory);
+        this.subscriptionManager = subscriptionManager;
     }
 
     protected boolean isAcceptable(ImapMessage message) {
@@ -50,8 +55,7 @@ public class SubscribeProcessor extends 
         final String mailboxName = request.getMailboxName();
         final MailboxSession mailboxSession = 
ImapSessionUtils.getMailboxSession(session);
         try {
-            final MailboxManager manager = getMailboxManager();
-            manager.subscribe(mailboxSession, mailboxName);
+            subscriptionManager.subscribe(mailboxSession, mailboxName);
 
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
 Sat Aug 21 20:07:09 2010
@@ -29,15 +29,21 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.message.request.UnsubscribeRequest;
 import org.apache.james.imap.processor.base.ImapSessionUtils;
 
 public class UnsubscribeProcessor extends AbstractMailboxProcessor {
 
+    private final SubscriptionManager subscriptionManager;
+
+    
     public UnsubscribeProcessor(final ImapProcessor next,
             final MailboxManager mailboxManager,
+            final SubscriptionManager subscriptionManager,
             final StatusResponseFactory factory) {
         super(next, mailboxManager, factory);
+        this.subscriptionManager = subscriptionManager;
     }
 
     protected boolean isAcceptable(ImapMessage message) {
@@ -50,8 +56,7 @@ public class UnsubscribeProcessor extend
         final String mailboxName = request.getMailboxName();
         final MailboxSession mailboxSession = 
ImapSessionUtils.getMailboxSession(session);
         try {
-            final MailboxManager mailboxManager = getMailboxManager();
-            mailboxManager.unsubscribe(mailboxSession, mailboxName);
+            subscriptionManager.unsubscribe(mailboxSession, mailboxName);
 
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);

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=987821&r1=987820&r2=987821&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
 Sat Aug 21 20:07:09 2010
@@ -23,6 +23,7 @@ import org.apache.james.imap.api.message
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapProcessorFactory;
 import org.apache.james.imap.mailbox.MailboxManager;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.message.response.UnpooledStatusResponseFactory;
 import org.apache.james.imap.processor.DefaultProcessorChain;
 import org.apache.james.imap.processor.base.ImapResponseMessageProcessor;
@@ -33,13 +34,13 @@ import org.apache.james.imap.processor.b
  */
 public class DefaultImapProcessorFactory implements ImapProcessorFactory {
 
-    public static final ImapProcessor createDefaultProcessor(final 
MailboxManager mailboxManager) {
+    public static final ImapProcessor createDefaultProcessor(final 
MailboxManager mailboxManager, final SubscriptionManager subscriptionManager) {
         final StatusResponseFactory statusResponseFactory = new 
UnpooledStatusResponseFactory();
         final UnknownRequestProcessor unknownRequestImapProcessor = new 
UnknownRequestProcessor(
                 statusResponseFactory);
         final ImapProcessor imap4rev1Chain = DefaultProcessorChain
                 .createDefaultChain(unknownRequestImapProcessor,
-                        mailboxManager, statusResponseFactory);
+                        mailboxManager, subscriptionManager, 
statusResponseFactory);
         final ImapProcessor result = new ImapResponseMessageProcessor(
                 imap4rev1Chain);
         return result;
@@ -47,10 +48,6 @@ public class DefaultImapProcessorFactory
 
     private MailboxManager mailboxManager;
 
-    public final void configure(MailboxManager mailboxManager) {
-        setMailboxManager(mailboxManager);
-    }
-
     public final MailboxManager getMailboxManager() {
         return mailboxManager;
     }
@@ -59,11 +56,21 @@ public class DefaultImapProcessorFactory
         this.mailboxManager = mailboxManager;
     }
 
+    private SubscriptionManager subscriptionManager;
+
+    public final SubscriptionManager getSubscriptionManager() {
+        return subscriptionManager;
+    }
+
+    public final void setSubscriptionManager(SubscriptionManager 
subscriptionManager) {
+        this.subscriptionManager = subscriptionManager;
+    }
+    
     /*
      * (non-Javadoc)
      * @see 
org.apache.james.imap.api.process.ImapProcessorFactory#buildImapProcessor()
      */
     public ImapProcessor buildImapProcessor() {
-        return createDefaultProcessor(mailboxManager);
+        return createDefaultProcessor(mailboxManager, subscriptionManager);
     }
 }

Modified: 
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
 (original)
+++ 
james/imap/trunk/processor/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
 Sat Aug 21 20:07:09 2010
@@ -34,6 +34,7 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxMetaData;
 import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.message.request.LsubRequest;
 import org.apache.james.imap.message.response.LSubResponse;
 import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -71,7 +72,7 @@ public class LSubProcessorTest {
 
     ImapProcessor next;
 
-    MailboxManager manager;
+    SubscriptionManager manager;
 
     ImapProcessor.Responder responder;
 
@@ -104,9 +105,9 @@ public class LSubProcessorTest {
         result = mockery.mock(MailboxMetaData.class);
         statusResponse = mockery.mock(StatusResponse.class);
         responderImpl = responder;
-        manager = mockery. mock(MailboxManager.class);
+        manager = mockery. mock(SubscriptionManager.class);
         mailboxSession = mockery.mock(MailboxSession.class);
-        processor = new LSubProcessor(next, manager, serverResponseFactory);
+        processor = new LSubProcessor(next, 
mockery.mock(MailboxManager.class), manager, serverResponseFactory);
     }
 
     @Test

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/DelegatingMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/DelegatingMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/DelegatingMailboxManager.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/DelegatingMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -20,7 +20,6 @@
 package org.apache.james.imap.store;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Locale;
 import java.util.Random;
 
@@ -31,7 +30,6 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.mailbox.SubscriptionException;
 
 /**
  * Abstract {...@link MailboxManager} which delegates various stuff to the 
{...@link Authenticator} and {...@link Subscriber}
@@ -40,11 +38,9 @@ import org.apache.james.imap.mailbox.Sub
 public abstract class DelegatingMailboxManager implements MailboxManager {
 
     private final Authenticator authenticator;
-    private final Subscriber subscriper;
     private final static Random RANDOM = new Random();
 
-    public DelegatingMailboxManager(final Authenticator authenticator, final 
Subscriber subscriper) {
-        this.subscriper = subscriper;
+    public DelegatingMailboxManager(final Authenticator authenticator) {
         this.authenticator = authenticator;
     }
 
@@ -151,28 +147,4 @@ public abstract class DelegatingMailboxM
     }
 
 
-    /*
-     * (non-Javadoc)
-     * @see 
org.apache.james.imap.mailbox.MailboxManager#subscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
-     */
-    public void subscribe(MailboxSession session, String mailbox) throws 
SubscriptionException {
-        subscriper.subscribe(session, mailbox);
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see 
org.apache.james.imap.mailbox.MailboxManager#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
-     */
-    public Collection<String> subscriptions(MailboxSession session) throws 
SubscriptionException {
-        return subscriper.subscriptions(session);
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see 
org.apache.james.imap.mailbox.MailboxManager#unsubscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
-     */
-    public void unsubscribe(MailboxSession session, String mailbox) throws 
SubscriptionException {
-        subscriper.unsubscribe(session, mailbox);
-    }
-
 }

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -61,8 +61,8 @@ public abstract class StoreMailboxManage
     private final MailboxPathLock lock = new MailboxPathLock();
     protected final MailboxSessionMapperFactory<Id> 
mailboxSessionMapperFactory;    
     
-    public StoreMailboxManager(MailboxSessionMapperFactory<Id> 
mailboxSessionMapperFactory, final Authenticator authenticator, final 
Subscriber subscriber) {
-        super(authenticator, subscriber);
+    public StoreMailboxManager(MailboxSessionMapperFactory<Id> 
mailboxSessionMapperFactory, final Authenticator authenticator) {
+        super(authenticator);
         this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
         
         // The dispatcher need to have the delegating listener added

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
 Sat Aug 21 20:07:09 2010
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 import org.apache.james.imap.store.user.SubscriptionMapper;
 import org.apache.james.imap.store.user.model.Subscription;
@@ -32,7 +33,7 @@ import org.apache.james.imap.store.user.
 /**
  * Manages subscriptions.
  */
-public abstract class StoreSubscriptionManager<Id> implements Subscriber {
+public abstract class StoreSubscriptionManager<Id> implements 
SubscriptionManager {
 
     private static final int INITIAL_SIZE = 32;
     
@@ -44,7 +45,7 @@ public abstract class StoreSubscriptionM
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.imap.store.Subscriber#subscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
+     * @see 
org.apache.james.imap.mailbox.SubscriptionManager#subscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
      */
     public void subscribe(final MailboxSession session, final String mailbox) 
throws SubscriptionException {
         final SubscriptionMapper mapper = 
mapperFactory.getSubscriptionMapper(session);
@@ -74,9 +75,10 @@ public abstract class StoreSubscriptionM
      */
     protected abstract Subscription createSubscription(final MailboxSession 
session, final String mailbox);
 
+
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.imap.store.Subscriber#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
+     * @see 
org.apache.james.imap.mailbox.SubscriptionManager#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
      */
     public Collection<String> subscriptions(final MailboxSession session) 
throws SubscriptionException {
         final SubscriptionMapper mapper = 
mapperFactory.getSubscriptionMapper(session);
@@ -90,7 +92,7 @@ public abstract class StoreSubscriptionM
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.imap.store.Subscriber#unsubscribe(java.lang.String, 
java.lang.String)
+     * @see 
org.apache.james.imap.mailbox.SubscriptionManager#unsubscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
      */
     public void unsubscribe(final MailboxSession session, final String 
mailbox) throws SubscriptionException {
         final SubscriptionMapper mapper = 
mapperFactory.getSubscriptionMapper(session);

Modified: 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 (original)
+++ 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 Sat Aug 21 20:07:09 2010
@@ -44,7 +44,6 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.util.SimpleMailboxMetaData;
 import org.apache.james.imap.store.Authenticator;
 import org.apache.james.imap.store.DelegatingMailboxManager;
-import org.apache.james.imap.store.Subscriber;
 import org.apache.james.mailboxmanager.torque.om.MailboxRow;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.torque.TorqueException;
@@ -65,8 +64,8 @@ public class TorqueMailboxManager extend
     private final Map<String, TorqueMailbox> mailboxes;
 
     
-    public TorqueMailboxManager(final Authenticator authenticator, final 
Subscriber subscriper) {
-        super(authenticator, subscriper);
+    public TorqueMailboxManager(final Authenticator authenticator) {
+        super(authenticator);
         this.lock = new ReentrantReadWriteLock();
         mailboxes = new HashMap<String, TorqueMailbox>();
     }

Modified: 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
 (original)
+++ 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueHostSystemFactory.java
 Sat Aug 21 20:07:09 2010
@@ -22,6 +22,7 @@ package org.apache.james.mailboxmanager.
 import java.io.File;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
@@ -44,13 +45,14 @@ public class TorqueHostSystemFactory {
     public static HostSystem createStandardImap() throws Exception {
 
         ImapHostSystem host = TorqueMailboxManagerProviderSingleton.HOST;
-        final DefaultImapProcessorFactory defaultImapProcessorFactory = new 
DefaultImapProcessorFactory();
+        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(TorqueMailboxManagerProviderSingleton
+                .getTorqueMailboxManagerInstance(), 
TorqueMailboxManagerProviderSingleton.getSubscriptionManager());
+
         resetUserMetaData();
-        
defaultImapProcessorFactory.configure(TorqueMailboxManagerProviderSingleton
-                .getTorqueMailboxManagerInstance());
+
         host.configure(new DefaultImapDecoderFactory().buildImapDecoder(),
                 new DefaultImapEncoderFactory().buildImapEncoder(),
-                defaultImapProcessorFactory.buildImapProcessor());
+                defaultImapProcessorFactory);
         return host;
     }
 }

Modified: 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java?rev=987821&r1=987820&r2=987821&view=diff
==============================================================================
--- 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
 (original)
+++ 
james/imap/trunk/torque/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
 Sat Aug 21 20:07:09 2010
@@ -29,6 +29,7 @@ import org.apache.commons.configuration.
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.mailbox.MailboxManager;
+import org.apache.james.imap.mailbox.SubscriptionManager;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageFlagsPeer;
@@ -160,7 +161,8 @@ public class TorqueMailboxManagerProvide
 
     private static TorqueMailboxManager TORQUE_MAILBOX_MANAGER;
 
-    private static InMemoryUserManager USER_MANAGER;
+    private static InMemoryUserManager USER_MANAGER  = new 
InMemoryUserManager();
+
 
 
     public static final ImapHostSystem HOST = new TorqueHostSystem();
@@ -170,15 +172,19 @@ public class TorqueMailboxManagerProvide
         return getMailboxManager();
     }
 
+    
+    public synchronized static SubscriptionManager getSubscriptionManager(){
+        return USER_MANAGER;
+     }
+
     public static void addUser(String user, String password) {
         USER_MANAGER.addUser(user, password);
     }
 
     private static TorqueMailboxManager getMailboxManager() throws Exception {
         if (TORQUE_MAILBOX_MANAGER == null) {
-            USER_MANAGER = new InMemoryUserManager();
             initialize();
-            TORQUE_MAILBOX_MANAGER = new TorqueMailboxManager(USER_MANAGER, 
USER_MANAGER);
+            TORQUE_MAILBOX_MANAGER = new TorqueMailboxManager(USER_MANAGER);
         }
         return TORQUE_MAILBOX_MANAGER;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to