Author: norman
Date: Sat Aug 21 08:21:29 2010
New Revision: 987709
URL: http://svn.apache.org/viewvc?rev=987709&view=rev
Log:
Deprecate Subscriper interface so we can remove it once torque impl is removed
(IMAP-205)
Removed:
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
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
Modified:
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxSessionMapperFactory.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
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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -23,15 +23,16 @@ 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
@@ -42,12 +43,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;
}
@@ -69,5 +70,15 @@ 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/main/java/org/apache/james/imap/jcr/JCRMailboxSessionMapperFactory.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxSessionMapperFactory.java?rev=987709&r1=987708&r2=987709&view=diff
==============================================================================
---
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxSessionMapperFactory.java
(original)
+++
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxSessionMapperFactory.java
Sat Aug 21 08:21:29 2010
@@ -52,7 +52,7 @@ public class JCRMailboxSessionMapperFact
public JCRMailboxSessionMapperFactory(final MailboxSessionJCRRepository
repository, final NodeLocker locker, final int scaling, final int
messageScaling) {
this.repository = repository;
- this.logger = LogFactory.getLog(JCRSubscriptionManager.class);
+ this.logger = LogFactory.getLog(JCRMailboxSessionMapperFactory.class);
this.locker = locker;
this.scaling = scaling;
this.messageScaling = messageScaling;
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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -30,7 +30,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.mailbox.MailboxSession;
@@ -72,7 +71,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, new
JCRSubscriptionManager(mf));
+ mailboxManager = new JCRMailboxManager(mf, userManager);
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=987709&r1=987708&r2=987709&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 08:21:29 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -20,14 +20,15 @@ package org.apache.james.imap.jpa;
import org.apache.james.imap.api.MailboxPath;
import org.apache.james.imap.jpa.mail.model.JPAMailbox;
+import org.apache.james.imap.jpa.user.model.JPASubscription;
import org.apache.james.imap.mailbox.MailboxException;
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;
+import org.apache.james.imap.store.user.model.Subscription;
/**
* JPA implementation of {...@link StoreMailboxManager}
@@ -35,8 +36,8 @@ import org.apache.james.imap.store.trans
public abstract class JPAMailboxManager extends StoreMailboxManager<Long> {
public JPAMailboxManager(JPAMailboxSessionMapperFactory
mailboxSessionMapperFactory,
- final Authenticator authenticator, final Subscriber subscriber) {
- super(mailboxSessionMapperFactory, authenticator, subscriber);
+ final Authenticator authenticator) {
+ super(mailboxSessionMapperFactory, authenticator);
}
@Override
@@ -68,5 +69,14 @@ public abstract class JPAMailboxManager
});
}
+
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.imap.store.StoreMailboxManager#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=987709&r1=987708&r2=987709&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 08:21:29 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 subscriber, boolean useStreaming) {
- super(mapperFactory, authenticator, subscriber);
+ public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory,
Authenticator authenticator, boolean useStreaming) {
+ super(mapperFactory, authenticator);
this.useStreaming = useStreaming;
}
- public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory,
Authenticator authenticator, Subscriber subscriber) {
- this(mapperFactory, authenticator, subscriber, 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -30,7 +30,6 @@ import org.apache.james.imap.encode.main
import org.apache.james.imap.functional.ImapHostSystem;
import org.apache.james.imap.functional.InMemoryUserManager;
import org.apache.james.imap.jpa.JPAMailboxSessionMapperFactory;
-import org.apache.james.imap.jpa.JPASubscriptionManager;
import org.apache.james.imap.jpa.mail.model.JPAMailbox;
import org.apache.james.imap.jpa.mail.model.JPAProperty;
import
org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMailboxMembership;
@@ -76,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, new
JPASubscriptionManager(mf));
+ mailboxManager = new OpenJPAMailboxManager(mf, userManager);
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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -26,7 +26,6 @@ import javax.persistence.EntityManagerFa
import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.imap.functional.AbstractStressTest;
import org.apache.james.imap.jpa.JPAMailboxSessionMapperFactory;
-import org.apache.james.imap.jpa.JPASubscriptionManager;
import org.apache.james.imap.jpa.mail.model.JPAMailbox;
import org.apache.james.imap.jpa.mail.model.JPAProperty;
import
org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMailboxMembership;
@@ -72,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/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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -23,20 +23,21 @@ 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, Subscriber subscriber) {
- super(mailboxSessionMapperFactory, authenticator, subscriber);
+ Authenticator authenticator) {
+ super(mailboxSessionMapperFactory, authenticator);
}
@Override
@@ -52,5 +53,11 @@ 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -26,7 +26,6 @@ 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;
@@ -47,8 +46,7 @@ public class MaildirHostSystem extends I
public MaildirHostSystem() {
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);
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=987709&r1=987708&r2=987709&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 08:21:29 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -21,6 +21,7 @@ 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;
@@ -29,13 +30,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, Subscriber subscriber) {
- super(mapperFactory, authenticator, subscriber);
+ public InMemoryMailboxManager(MailboxSessionMapperFactory<Long>
mapperFactory, Authenticator authenticator) {
+ super(mapperFactory, authenticator);
}
@Override
@@ -61,7 +62,11 @@ 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -24,7 +24,6 @@ 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;
@@ -42,7 +41,7 @@ public class InMemoryHostSystem extends
private InMemoryHostSystem() {
userManager = new InMemoryUserManager();
factory = new InMemoryMailboxSessionMapperFactory();
- mailboxManager = new InMemoryMailboxManager(factory, userManager, new
InMemorySubscriptionManager(factory));
+ mailboxManager = new InMemoryMailboxManager(factory, userManager);
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=987709&r1=987708&r2=987709&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 08:21:29 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;
}
@@ -149,30 +145,4 @@ 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -20,7 +20,9 @@
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;
@@ -36,12 +38,15 @@ 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
@@ -61,8 +66,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
@@ -307,5 +312,75 @@ 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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -21,12 +21,16 @@ 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 {
/**
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=987709&r1=987708&r2=987709&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 08:21:29 2010
@@ -20,6 +20,7 @@
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;
@@ -40,6 +41,7 @@ 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;
@@ -63,11 +65,14 @@ public class TorqueMailboxManager extend
private final ReentrantReadWriteLock lock;
private final Map<String, TorqueMailbox> mailboxes;
+
+ private Subscriber subscriper;
public TorqueMailboxManager(final Authenticator authenticator, final
Subscriber subscriper) {
- super(authenticator, subscriper);
+ super(authenticator);
this.lock = new ReentrantReadWriteLock();
mailboxes = new HashMap<String, TorqueMailbox>();
+ this.subscriper = subscriper;
}
public Mailbox getMailbox(MailboxPath path, MailboxSession session)
@@ -370,4 +375,16 @@ 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: [email protected]
For additional commands, e-mail: [email protected]