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 2010/08/21 17:54:57 UTC

svn commit: r987775 - in /james/imap/trunk: jcr/src/main/java/org/apache/james/imap/jcr/ jcr/src/test/java/org/apache/james/imap/jcr/ jpa/src/main/java/org/apache/james/imap/jpa/ jpa/src/main/java/org/apache/james/imap/jpa/openjpa/ jpa/src/test/java/or...

Author: norman
Date: Sat Aug 21 15:54:56 2010
New Revision: 987775

URL: http://svn.apache.org/viewvc?rev=987775&view=rev
Log:
Remove the changes introduces before. We will move the Subscriper to the mailbox api and rename it SubscriptionManager (IMAP-205)

Added:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
      - copied unchanged from r987708, james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
    james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirSubscriptionManager.java
      - copied unchanged from r987708, james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/MaildirSubscriptionManager.java
    james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
      - copied unchanged from r987708, james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
      - copied unchanged from r987708, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
Modified:
    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/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/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/Subscriber.java   (contents, props changed)
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -23,16 +23,15 @@ import org.apache.commons.logging.LogFac
 import org.apache.james.imap.api.MailboxPath;
 import org.apache.james.imap.jcr.mail.JCRMailboxMapper;
 import org.apache.james.imap.jcr.mail.model.JCRMailbox;
-import org.apache.james.imap.jcr.user.model.JCRSubscription;
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.util.MailboxEventDispatcher;
 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;
-import org.apache.james.imap.store.user.model.Subscription;
 
 /**
  * JCR implementation of a MailboxManager
@@ -43,12 +42,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) {
-	    this(mapperFactory, authenticator, new JCRVmNodeLocker());
+    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, final Authenticator authenticator, final Subscriber subscriber) {
+	    this(mapperFactory, authenticator, subscriber, new JCRVmNodeLocker());
     }
 
-    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, final Authenticator authenticator, final NodeLocker locker) {
-        super(mapperFactory, authenticator);
+    public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, final Authenticator authenticator, final Subscriber subscriber, final NodeLocker locker) {
+        super(mapperFactory, authenticator, subscriber);
         this.mapperFactory = mapperFactory;
     }
 
@@ -70,15 +69,5 @@ public class JCRMailboxManager extends S
 
         });
     }
-    
-
-   
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.StoreMailboxManager#createSubscription(org.apache.james.imap.mailbox.MailboxSession, java.lang.String)
-     */
-    protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new JCRSubscription(session.getUser().getUserName(), mailbox, logger);
-    }
 
 }

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -30,6 +30,7 @@ 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.mailbox.MailboxSession;
@@ -71,7 +72,7 @@ public class JCRHostSystem extends ImapH
             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);
+            mailboxManager = new JCRMailboxManager(mf, userManager, new JCRSubscriptionManager(mf));
             final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
             resetUserMetaData();
             MailboxSession session = mailboxManager.createSystemSession("test", new SimpleLog("TestLog"));

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -29,6 +29,7 @@ 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;
@@ -63,7 +64,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);
+        mailboxManager = new JCRMailboxManager(mf, null, new JCRSubscriptionManager(mf));
 
     }
     

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -25,6 +25,7 @@ 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;
@@ -36,8 +37,8 @@ import org.apache.james.imap.store.user.
 public abstract class JPAMailboxManager extends StoreMailboxManager<Long> {
     
     public JPAMailboxManager(JPAMailboxSessionMapperFactory mailboxSessionMapperFactory,
-            final Authenticator authenticator) {
-        super(mailboxSessionMapperFactory, authenticator);
+            final Authenticator authenticator, Subscriber subscripter) {
+        super(mailboxSessionMapperFactory, authenticator, subscripter);
     }
     
     @Override

Added: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java?rev=987775&view=auto
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java (added)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java Sat Aug 21 15:54:56 2010
@@ -0,0 +1,44 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.imap.jpa;
+
+import org.apache.james.imap.jpa.user.model.JPASubscription;
+import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.store.StoreSubscriptionManager;
+import org.apache.james.imap.store.user.model.Subscription;
+
+/**
+ * JPA implementation of {@link StoreSubscriptionManager}
+ *
+ */
+public class JPASubscriptionManager extends StoreSubscriptionManager<Long> {
+    
+    public JPASubscriptionManager(final JPAMailboxSessionMapperFactory mapperFactory) {
+        super(mapperFactory);
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.store.StoreSubscriptionManager#createSubscription(org.apache.james.imap.mailbox.MailboxSession, java.lang.String)
+     */
+    protected Subscription createSubscription(final MailboxSession session, final String mailbox) {
+        final Subscription newSubscription = new JPASubscription(session.getUser().getUserName(), mailbox);
+        return newSubscription;
+    }
+}

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -27,6 +27,7 @@ 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;
 
 /**
@@ -37,13 +38,13 @@ public class OpenJPAMailboxManager exten
 
     private boolean useStreaming;
 
-    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, boolean useStreaming) {
-        super(mapperFactory, authenticator);
+    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Subscriber subscripter, boolean useStreaming) {
+        super(mapperFactory, authenticator, subscripter);
         this.useStreaming = useStreaming;
     }
 
-    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator) {
-        this(mapperFactory, authenticator, false);
+    public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Subscriber subscripter) {
+        this(mapperFactory, authenticator, subscripter, 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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -75,7 +75,7 @@ public class JPAHostSystem extends ImapH
         userManager = new InMemoryUserManager();
         entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties);
         JPAMailboxSessionMapperFactory mf = new JPAMailboxSessionMapperFactory(entityManagerFactory);
-        mailboxManager = new OpenJPAMailboxManager(mf, userManager);
+        mailboxManager = new OpenJPAMailboxManager(mf, userManager, new JPASubscriptionManager(mf));
         
         final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
         resetUserMetaData();

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -71,7 +71,7 @@ public class JPAStressTest extends Abstr
        
         entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties);
         JPAMailboxSessionMapperFactory mf = new JPAMailboxSessionMapperFactory(entityManagerFactory);
-        mailboxManager = new OpenJPAMailboxManager(mf, null);
+        mailboxManager = new OpenJPAMailboxManager(mf, null, new JPASubscriptionManager(mf));
         
         // Set the lock timeout via SQL because of a bug in openJPA
         // https://issues.apache.org/jira/browse/OPENJPA-1656

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -23,21 +23,20 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.util.MailboxEventDispatcher;
 import org.apache.james.imap.maildir.mail.model.MaildirMailbox;
-import org.apache.james.imap.maildir.user.model.MaildirSubscription;
 import org.apache.james.imap.store.Authenticator;
 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;
-import org.apache.james.imap.store.user.model.Subscription;
 
 public class MaildirMailboxManager extends StoreMailboxManager<Integer> {
 
     public MaildirMailboxManager(
             MailboxSessionMapperFactory<Integer> mailboxSessionMapperFactory,
-            Authenticator authenticator) {
-        super(mailboxSessionMapperFactory, authenticator);
+            Authenticator authenticator, Subscriber subscriber) {
+        super(mailboxSessionMapperFactory, authenticator, subscriber);
     }
 
     @Override
@@ -53,11 +52,5 @@ public class MaildirMailboxManager exten
         final MailboxMapper<Integer> mapper = mailboxSessionMapperFactory.getMailboxMapper(session);
         mapper.save(mailbox);
     }
-    
-    @Override
-    protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new MaildirSubscription(session.getUser().getUserName(), mailbox);
-    }
-
 
 }

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -26,6 +26,7 @@ import org.apache.james.imap.functional.
 import org.apache.james.imap.functional.InMemoryUserManager;
 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.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.test.functional.HostSystem;
@@ -46,7 +47,8 @@ public class MaildirHostSystem extends I
     public MaildirHostSystem() {
         userManager = new InMemoryUserManager();
         mailboxSessionMapperFactory = new MaildirMailboxSessionMapperFactory(MAILDIR_HOME + "/%user");
-        mailboxManager = new MaildirMailboxManager(mailboxSessionMapperFactory, userManager);
+        MaildirSubscriptionManager sm = new MaildirSubscriptionManager(mailboxSessionMapperFactory);
+        mailboxManager = new MaildirMailboxManager(mailboxSessionMapperFactory, userManager, sm);
         
         final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
         defaultImapProcessorFactory.configure(mailboxManager);

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -26,6 +26,7 @@ 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;
@@ -38,7 +39,7 @@ public class MaildirStressTest extends A
     @Before
     public void setUp() {
         MaildirMailboxSessionMapperFactory mf = new MaildirMailboxSessionMapperFactory(MAILDIR_HOME + "/%user");
-        mailboxManager = new MaildirMailboxManager(mf, null);
+        mailboxManager = new MaildirMailboxManager(mf, null, new MaildirSubscriptionManager(mf));
     }
     
     @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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -21,7 +21,6 @@ package org.apache.james.imap.inmemory;
 
 import org.apache.james.imap.api.MailboxPath;
 import org.apache.james.imap.inmemory.mail.model.InMemoryMailbox;
-import org.apache.james.imap.inmemory.user.model.InMemorySubscription;
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.StorageException;
@@ -30,13 +29,13 @@ 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;
-import org.apache.james.imap.store.user.model.Subscription;
 
 public class InMemoryMailboxManager extends StoreMailboxManager<Long> {
 
-    public InMemoryMailboxManager(MailboxSessionMapperFactory<Long> mapperFactory, Authenticator authenticator) {
-        super(mapperFactory, authenticator);
+    public InMemoryMailboxManager(MailboxSessionMapperFactory<Long> mapperFactory, Authenticator authenticator, Subscriber subscriber) {
+        super(mapperFactory, authenticator, subscriber);
     }
 
     @Override
@@ -62,11 +61,7 @@ public class InMemoryMailboxManager exte
     public synchronized void deleteEverything() throws MailboxException {
         ((InMemoryMailboxSessionMapperFactory) mailboxSessionMapperFactory).deleteAll();
     }
-    
-    @Override
-    protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new InMemorySubscription(mailbox, session.getUser());
-    }
+
 
     
 }

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -24,6 +24,7 @@ import org.apache.james.imap.functional.
 import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.inmemory.InMemoryMailboxManager;
 import org.apache.james.imap.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.imap.inmemory.InMemorySubscriptionManager;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;
 import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
 import org.apache.james.test.functional.HostSystem;
@@ -41,7 +42,7 @@ public class InMemoryHostSystem extends 
     private InMemoryHostSystem() {
         userManager = new InMemoryUserManager();
         factory = new InMemoryMailboxSessionMapperFactory();
-        mailboxManager = new InMemoryMailboxManager(factory, userManager);
+        mailboxManager = new InMemoryMailboxManager(factory, userManager, new InMemorySubscriptionManager(factory));
         final DefaultImapProcessorFactory defaultImapProcessorFactory = new DefaultImapProcessorFactory();
         defaultImapProcessorFactory.configure(mailboxManager);
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -20,6 +20,7 @@
 package org.apache.james.imap.store;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Locale;
 import java.util.Random;
 
@@ -30,6 +31,7 @@ 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}
@@ -38,9 +40,11 @@ import org.apache.james.imap.mailbox.Mai
 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) {
+    public DelegatingMailboxManager(final Authenticator authenticator, final Subscriber subscriper) {
+        this.subscriper = subscriper;
         this.authenticator = authenticator;
     }
 
@@ -145,4 +149,30 @@ public abstract class DelegatingMailboxM
         // Default do nothing
         
     }
+
+
+    /*
+     * (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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -20,9 +20,7 @@
 package org.apache.james.imap.store;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 
 import org.apache.commons.logging.Log;
@@ -38,15 +36,12 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.MessageRange;
 import org.apache.james.imap.mailbox.StandardMailboxMetaDataComparator;
-import org.apache.james.imap.mailbox.SubscriptionException;
 import org.apache.james.imap.mailbox.MailboxMetaData.Selectability;
 import org.apache.james.imap.mailbox.util.MailboxEventDispatcher;
 import org.apache.james.imap.mailbox.util.SimpleMailboxMetaData;
 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;
-import org.apache.james.imap.store.user.SubscriptionMapper;
-import org.apache.james.imap.store.user.model.Subscription;
 
 /**
  * This abstract base class of an {@link MailboxManager} implementation provides a high-level api for writing your own
@@ -66,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) {
-        super(authenticator);
+    public StoreMailboxManager(MailboxSessionMapperFactory<Id> mailboxSessionMapperFactory, final Authenticator authenticator, final Subscriber subscriber) {
+        super(authenticator, subscriber);
         this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
         
         // The dispatcher need to have the delegating listener added
@@ -312,75 +307,5 @@ public abstract class StoreMailboxManage
     public void endProcessingRequest(MailboxSession session) {
         mailboxSessionMapperFactory.endRequest(session);
     }
-    
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.Subscriber#subscribe(org.apache.james.imap.mailbox.MailboxSession, java.lang.String)
-     */
-    public void subscribe(final MailboxSession session, final String mailbox) throws SubscriptionException {
-        final SubscriptionMapper mapper = mailboxSessionMapperFactory.getSubscriptionMapper(session);
-        try {
-            mapper.execute(new TransactionalMapper.VoidTransaction() {
-
-                public void runVoid() throws MailboxException {
-                    final Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
-                    if (subscription == null) {
-                        final Subscription newSubscription = createSubscription(session, mailbox);
-                        mapper.save(newSubscription);
-                    }
-                }
-                
-            });
-        } catch (MailboxException e) {
-            throw new SubscriptionException(e.getKey(), (Exception) e.getCause());
-        }
-    }
-
-    /**
-     * Create Subscription for the given user and mailbox
-     * 
-     * @param session
-     * @param mailbox
-     * @return subscription 
-     */
-    protected abstract Subscription createSubscription(final MailboxSession session, final String mailbox);
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.mailbox.MailboxManager#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
-     */
-    public Collection<String> subscriptions(final MailboxSession session) throws SubscriptionException {
-        final SubscriptionMapper mapper = mailboxSessionMapperFactory.getSubscriptionMapper(session);
-        final List<Subscription> subscriptions = mapper.findSubscriptionsForUser(session.getUser().getUserName());
-        final Collection<String> results = new HashSet<String>();
-        for (Subscription subscription:subscriptions) {
-            results.add(subscription.getMailbox());
-        }        
-        return results;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.mailbox.MailboxManager#unsubscribe(org.apache.james.imap.mailbox.MailboxSession, java.lang.String)
-     */
-    public void unsubscribe(final MailboxSession session, final String mailbox) throws SubscriptionException {
-        final SubscriptionMapper mapper = mailboxSessionMapperFactory.getSubscriptionMapper(session);
-        try {
-            mapper.execute(new TransactionalMapper.VoidTransaction() {
-
-                public void runVoid() throws MailboxException {
-                    final Subscription subscription = mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
-                    if (subscription != null) {
-                        mapper.delete(subscription);
-                    }
-                }
-
-            });
-        } catch (MailboxException e) {
-            throw new SubscriptionException(e.getKey(), (Exception)e.getCause());
-        }
-    }
 
 }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java?rev=987775&r1=987774&r2=987775&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java Sat Aug 21 15:54:56 2010
@@ -21,16 +21,12 @@ package org.apache.james.imap.store;
 
 import java.util.Collection;
 
-import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
 
 /**
  * Subscribes users.
- * 
- * @deprecated Use {@link MailboxManager}
  */
-@Deprecated
 public interface Subscriber {
     
     /**

Propchange: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
            ('svn:mergeinfo' removed)

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=987775&r1=987774&r2=987775&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 15:54:56 2010
@@ -20,7 +20,6 @@
 package org.apache.james.mailboxmanager.torque;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -41,7 +40,6 @@ import org.apache.james.imap.mailbox.Mai
 import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.MessageRange;
 import org.apache.james.imap.mailbox.StandardMailboxMetaDataComparator;
-import org.apache.james.imap.mailbox.SubscriptionException;
 import org.apache.james.imap.mailbox.MailboxMetaData.Selectability;
 import org.apache.james.imap.mailbox.util.SimpleMailboxMetaData;
 import org.apache.james.imap.store.Authenticator;
@@ -66,13 +64,11 @@ public class TorqueMailboxManager extend
 
     private final Map<String, TorqueMailbox> mailboxes;
 
-    private Subscriber subscriper;
     
     public TorqueMailboxManager(final Authenticator authenticator, final Subscriber subscriper) {
-        super(authenticator);
+        super(authenticator, subscriper);
         this.lock = new ReentrantReadWriteLock();
         mailboxes = new HashMap<String, TorqueMailbox>();
-        this.subscriper = subscriper;
     }
 
     public Mailbox getMailbox(MailboxPath path, MailboxSession session)
@@ -375,16 +371,5 @@ public class TorqueMailboxManager extend
         mailbox.addListener(listener);
     }
 
-    public void subscribe(MailboxSession session, String mailbox) throws SubscriptionException {
-        subscriper.subscribe(session, mailbox);
-    }
-
-    public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
-        return subscriper.subscriptions(session);
-    }
-
-    public void unsubscribe(MailboxSession session, String mailbox) throws SubscriptionException {
-        subscriper.unsubscribe(session, mailbox);
-    }
 
 }



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