Author: norman
Date: Sun Aug 22 12:13:40 2010
New Revision: 987884
URL: http://svn.apache.org/viewvc?rev=987884&view=rev
Log:
Straighten Non-/TransactionalMapper Hierarchy (IMAP-206). Thx to Tim-Christian
Mundt for the patch :)
Added:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/Mapper.java
- copied, changed from r987768,
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
- copied, changed from r987768,
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java
Removed:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java
Modified:
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMailboxMapper.java
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMessageMapper.java
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/user/MaildirSubscriptionMapper.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxSessionMapperFactory.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMailboxMapper.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMessageMapper.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/user/InMemorySubscriptionMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MapperStoreMessageManager.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/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/user/SubscriptionMapper.java
Modified:
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
(original)
+++
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
Sun Aug 22 12:13:40 2010
@@ -25,7 +25,7 @@ import org.apache.commons.logging.Log;
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.store.transaction.AbstractTransactionalMapper;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
/**
* Abstract Mapper base class for Level 1 Implementations of JCR. So no real
transaction management is used.
@@ -33,7 +33,7 @@ import org.apache.james.imap.store.trans
* The Session.save() will get called on commit() method,
session.refresh(false) on rollback, and session.refresh(true) on begin()
*
*/
-public abstract class AbstractJCRMapper extends AbstractTransactionalMapper
implements JCRImapConstants {
+public abstract class AbstractJCRMapper extends TransactionalMapper implements
JCRImapConstants {
public final static String MAILBOXES_PATH = "mailboxes";
private final Log logger;
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=987884&r1=987883&r2=987884&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
Sun Aug 22 12:13:40 2010
@@ -30,7 +30,7 @@ import org.apache.james.imap.store.Authe
import org.apache.james.imap.store.StoreMailboxManager;
import org.apache.james.imap.store.MapperStoreMessageManager;
import org.apache.james.imap.store.mail.model.Mailbox;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
/**
* JCR implementation of a MailboxManager
@@ -60,7 +60,7 @@ public class JCRMailboxManager extends S
protected void doCreateMailbox(MailboxPath path, MailboxSession session)
throws MailboxException {
final Mailbox<String> mailbox = new
org.apache.james.imap.jcr.mail.model.JCRMailbox(path, randomUidValidity(),
logger);
final JCRMailboxMapper mapper = (JCRMailboxMapper)
mapperFactory.getMailboxMapper(session);
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
mapper.save(mailbox);
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
Sun Aug 22 12:13:40 2010
@@ -26,13 +26,13 @@ import javax.persistence.PersistenceExce
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.StorageException;
-import org.apache.james.imap.store.transaction.AbstractTransactionalMapper;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
/**
* JPA implementation of TransactionMapper. This class is not thread-safe!
*
*/
-public abstract class JPATransactionalMapper extends
AbstractTransactionalMapper {
+public abstract class JPATransactionalMapper extends TransactionalMapper {
protected EntityManagerFactory entityManagerFactory;
protected EntityManager entityManager;
Modified:
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMailboxMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMailboxMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMailboxMapper.java
(original)
+++
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMailboxMapper.java
Sun Aug 22 12:13:40 2010
@@ -29,7 +29,6 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.NotImplementedException;
import org.apache.james.imap.api.MailboxPath;
import org.apache.james.imap.api.display.HumanReadableText;
-import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxNotFoundException;
import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.maildir.MaildirFolder;
@@ -38,8 +37,9 @@ import org.apache.james.imap.maildir.Mai
import org.apache.james.imap.maildir.mail.model.MaildirMailbox;
import org.apache.james.imap.store.mail.MailboxMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
-public class MaildirMailboxMapper implements MailboxMapper<Integer> {
+public class MaildirMailboxMapper extends NonTransactionalMapper implements
MailboxMapper<Integer> {
/**
* The {...@link MaildirStore} the mailboxes reside in
@@ -210,15 +210,6 @@ public class MaildirMailboxMapper implem
public void endRequest() {
mailboxCache.clear();
}
-
- /*
- * (non-Javadoc)
- * @see
org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- // no transactions used
- return transaction.run();
- }
/**
* Stores a copy of a mailbox in a cache valid for one request. This is to
enable
Modified:
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMessageMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMessageMapper.java
(original)
+++
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirMessageMapper.java
Sun Aug 22 12:13:40 2010
@@ -57,12 +57,13 @@ import org.apache.james.imap.store.mail.
import org.apache.james.imap.store.mail.model.PropertyBuilder;
import org.apache.james.imap.store.streaming.ConfigurableMimeTokenStream;
import org.apache.james.imap.store.streaming.CountingInputStream;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.descriptor.MaximalBodyDescriptor;
import org.apache.james.mime4j.parser.MimeEntityConfig;
import org.apache.james.mime4j.parser.MimeTokenStream;
-public class MaildirMessageMapper implements MessageMapper<Integer> {
+public class MaildirMessageMapper extends NonTransactionalMapper implements
MessageMapper<Integer> {
private final MaildirStore maildirStore;
private final int BUF_SIZE = 2048;
@@ -443,15 +444,6 @@ public class MaildirMessageMapper implem
// not used
}
-
- /*
- * (non-Javadoc)
- * @see
org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- // no transactions used
- return transaction.run();
- }
/**
* Creates a {...@link MaildirMessage} object with data loaded from the
repository.
Modified:
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/user/MaildirSubscriptionMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/user/MaildirSubscriptionMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/user/MaildirSubscriptionMapper.java
(original)
+++
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/user/MaildirSubscriptionMapper.java
Sun Aug 22 12:13:40 2010
@@ -34,10 +34,11 @@ import org.apache.james.imap.api.display
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.SubscriptionException;
import org.apache.james.imap.maildir.user.model.MaildirSubscription;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
import org.apache.james.imap.store.user.SubscriptionMapper;
import org.apache.james.imap.store.user.model.Subscription;
-public class MaildirSubscriptionMapper implements SubscriptionMapper {
+public class MaildirSubscriptionMapper extends NonTransactionalMapper
implements SubscriptionMapper {
private static final String PATH_USER = "%user";
private static final String FILE_SUBSCRIPTION = "subscriptions";
@@ -118,14 +119,6 @@ public class MaildirSubscriptionMapper i
public void endRequest() {
// nothing to do
}
-
- /*
- * (non-Javadoc)
- * @see
org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- return transaction.run();
- }
/**
* Get the folder name of the folder containing the user's mailboxes
Modified:
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxSessionMapperFactory.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxSessionMapperFactory.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxSessionMapperFactory.java
(original)
+++
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxSessionMapperFactory.java
Sun Aug 22 12:13:40 2010
@@ -28,7 +28,7 @@ import org.apache.james.imap.mailbox.Sub
import org.apache.james.imap.store.MailboxSessionMapperFactory;
import org.apache.james.imap.store.mail.MailboxMapper;
import org.apache.james.imap.store.mail.MessageMapper;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
import org.apache.james.imap.store.user.SubscriptionMapper;
public class InMemoryMailboxSessionMapperFactory extends
MailboxSessionMapperFactory<Long> {
@@ -64,7 +64,7 @@ public class InMemoryMailboxSessionMappe
public void deleteAll() throws MailboxException {
final MailboxMapper<Long> mapper = mailboxMapper;
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
mapper.deleteAll();
Modified:
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
(original)
+++
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
Sun Aug 22 12:13:40 2010
@@ -23,7 +23,7 @@ import org.apache.james.imap.mailbox.Mai
import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.store.MailboxSessionMapperFactory;
import org.apache.james.imap.store.StoreSubscriptionManager;
-import org.apache.james.imap.store.transaction.TransactionalMapper.Transaction;
+import org.apache.james.imap.store.transaction.Mapper.Transaction;
import org.apache.james.imap.store.user.model.Subscription;
/**
Modified:
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMailboxMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMailboxMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMailboxMapper.java
(original)
+++
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMailboxMapper.java
Sun Aug 22 12:13:40 2010
@@ -25,13 +25,13 @@ import java.util.concurrent.ConcurrentHa
import org.apache.james.imap.api.MailboxPath;
import org.apache.james.imap.inmemory.mail.model.InMemoryMailbox;
-import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxNotFoundException;
import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.store.mail.MailboxMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
-public class InMemoryMailboxMapper implements MailboxMapper<Long> {
+public class InMemoryMailboxMapper extends NonTransactionalMapper implements
MailboxMapper<Long> {
private static final int INITIAL_SIZE = 128;
private final Map<Long, InMemoryMailbox> mailboxesById;
@@ -115,14 +115,6 @@ public class InMemoryMailboxMapper imple
mailboxesById.put(mailbox.getMailboxId(), (InMemoryMailbox) mailbox);
}
- /*
- * (non-Javadoc)
- * @see
org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- return transaction.run();
- }
-
/**
* Do nothing
*/
Modified:
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMessageMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMessageMapper.java
(original)
+++
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/mail/InMemoryMessageMapper.java
Sun Aug 22 12:13:40 2010
@@ -9,7 +9,6 @@ import java.util.concurrent.ConcurrentHa
import org.apache.james.imap.inmemory.mail.model.InMemoryMailbox;
import org.apache.james.imap.inmemory.mail.model.SimpleMailboxMembership;
-import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.SearchQuery;
import org.apache.james.imap.mailbox.StorageException;
@@ -18,8 +17,9 @@ import org.apache.james.imap.store.Searc
import org.apache.james.imap.store.mail.MessageMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
import org.apache.james.imap.store.mail.model.MailboxMembership;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
-public class InMemoryMessageMapper implements MessageMapper<Long> {
+public class InMemoryMessageMapper extends NonTransactionalMapper implements
MessageMapper<Long> {
private Map<Long, Map<Long, MailboxMembership<Long>>> mailboxByUid;
private static final int INITIAL_SIZE = 256;
@@ -179,13 +179,6 @@ public class InMemoryMessageMapper imple
return new SearchQueryIterator(memberships.iterator(), query);
}
-
- /**
- * There is no really Transaction handling here.. Just run it
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- return transaction.run();
- }
public void deleteAll() {
mailboxByUid.clear();
Modified:
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/user/InMemorySubscriptionMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/user/InMemorySubscriptionMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/user/InMemorySubscriptionMapper.java
(original)
+++
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/user/InMemorySubscriptionMapper.java
Sun Aug 22 12:13:40 2010
@@ -24,11 +24,11 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
import org.apache.james.imap.store.user.SubscriptionMapper;
import org.apache.james.imap.store.user.model.Subscription;
-public class InMemorySubscriptionMapper implements SubscriptionMapper {
+public class InMemorySubscriptionMapper extends NonTransactionalMapper
implements SubscriptionMapper {
private static final int INITIAL_SIZE = 64;
private final Map<String, List<Subscription>> subscriptionsByUser;
@@ -99,14 +99,6 @@ public class InMemorySubscriptionMapper
subscriptions.add(subscription);
}
}
-
- /*
- * (non-Javadoc)
- * @see
org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
- */
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
- return transaction.run();
- }
public void deleteAll() {
subscriptionsByUser.clear();
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MapperStoreMessageManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MapperStoreMessageManager.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MapperStoreMessageManager.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MapperStoreMessageManager.java
Sun Aug 22 12:13:40 2010
@@ -39,7 +39,7 @@ import org.apache.james.imap.mailbox.uti
import org.apache.james.imap.store.mail.MessageMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
import org.apache.james.imap.store.mail.model.MailboxMembership;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
/**
* Abstract base class for {...@link org.apache.james.imap.mailbox.Mailbox}
implementations.
@@ -63,7 +63,7 @@ public abstract class MapperStoreMessage
@Override
protected long appendMessageToStore(final MailboxMembership<Id> message,
MailboxSession session) throws MailboxException {
final MessageMapper<Id> mapper =
mapperFactory.getMessageMapper(session);
- return mapperFactory.getMessageMapper(session).execute(new
TransactionalMapper.Transaction<Long>() {
+ return mapperFactory.getMessageMapper(session).execute(new
Mapper.Transaction<Long>() {
public Long run() throws MailboxException {
return mapper.save(getMailboxEntity(), message);
@@ -105,7 +105,7 @@ public abstract class MapperStoreMessage
protected List<Long> recent(final boolean reset, MailboxSession
mailboxSession) throws MailboxException {
final MessageMapper<Id> messageMapper =
mapperFactory.getMessageMapper(mailboxSession);
- return messageMapper.execute(new
TransactionalMapper.Transaction<List<Long>>() {
+ return messageMapper.execute(new Mapper.Transaction<List<Long>>() {
public List<Long> run() throws MailboxException {
final List<MailboxMembership<Id>> members =
messageMapper.findRecentMessagesInMailbox(getMailboxEntity(), -1);
@@ -131,7 +131,7 @@ public abstract class MapperStoreMessage
protected Iterator<Long> deleteMarkedInMailbox(final MessageRange range,
final MailboxSession session) throws MailboxException {
final MessageMapper<Id> messageMapper =
mapperFactory.getMessageMapper(session);
- return messageMapper.execute(new
TransactionalMapper.Transaction<Iterator<Long>>() {
+ return messageMapper.execute(new Mapper.Transaction<Iterator<Long>>() {
public Iterator<Long> run() throws MailboxException {
final Collection<Long> uids = new TreeSet<Long>();
@@ -158,7 +158,7 @@ public abstract class MapperStoreMessage
final MessageRange set, MailboxSession mailboxSession) throws
MailboxException {
final MessageMapper<Id> messageMapper =
mapperFactory.getMessageMapper(mailboxSession);
- return messageMapper.execute(new
TransactionalMapper.Transaction<Iterator<UpdatedFlag>>(){
+ return messageMapper.execute(new
Mapper.Transaction<Iterator<UpdatedFlag>>(){
public Iterator<UpdatedFlag> run() throws MailboxException {
final List<UpdatedFlag> updatedFlags = new
ArrayList<UpdatedFlag>();
@@ -207,7 +207,7 @@ public abstract class MapperStoreMessage
final MessageMapper<Id> messageMapper =
mapperFactory.getMessageMapper(session);
for (final MailboxMembership<Id> originalMessage:originalRows) {
- copiedRows.add(messageMapper.execute(new
TransactionalMapper.Transaction<Long>() {
+ copiedRows.add(messageMapper.execute(new
Mapper.Transaction<Long>() {
public Long run() throws MailboxException {
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=987884&r1=987883&r2=987884&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
Sun Aug 22 12:13:40 2010
@@ -41,7 +41,7 @@ import org.apache.james.imap.mailbox.uti
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.transaction.Mapper;
/**
* This abstract base class of an {...@link MailboxManager} implementation
provides a high-level api for writing your own
@@ -143,7 +143,7 @@ public abstract class StoreMailboxManage
session.getLog().info("deleteMailbox " + mailboxPath);
final MailboxMapper<Id> mapper =
mailboxSessionMapperFactory.getMailboxMapper(session);
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
Mailbox<Id> mailbox = mapper.findMailboxByPath(mailboxPath);
@@ -172,7 +172,7 @@ public abstract class StoreMailboxManage
}
final MailboxMapper<Id> mapper =
mailboxSessionMapperFactory.getMailboxMapper(session);
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
// TODO put this into a serilizable transaction
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=987884&r1=987883&r2=987884&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
Sun Aug 22 12:13:40 2010
@@ -26,7 +26,7 @@ import org.apache.james.imap.mailbox.Mai
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.transaction.Mapper;
import org.apache.james.imap.store.user.SubscriptionMapper;
import org.apache.james.imap.store.user.model.Subscription;
@@ -50,7 +50,7 @@ public abstract class StoreSubscriptionM
public void subscribe(final MailboxSession session, final String mailbox)
throws SubscriptionException {
final SubscriptionMapper mapper =
mapperFactory.getSubscriptionMapper(session);
try {
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
final Subscription subscription =
mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
@@ -97,7 +97,7 @@ public abstract class StoreSubscriptionM
public void unsubscribe(final MailboxSession session, final String
mailbox) throws SubscriptionException {
final SubscriptionMapper mapper =
mapperFactory.getSubscriptionMapper(session);
try {
- mapper.execute(new TransactionalMapper.VoidTransaction() {
+ mapper.execute(new Mapper.VoidTransaction() {
public void runVoid() throws MailboxException {
final Subscription subscription =
mapper.findMailboxSubscriptionForUser(session.getUser().getUserName(), mailbox);
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
Sun Aug 22 12:13:40 2010
@@ -24,14 +24,14 @@ import org.apache.james.imap.api.Mailbox
import org.apache.james.imap.mailbox.MailboxNotFoundException;
import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.store.mail.model.Mailbox;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
/**
* Mapper for {...@link Mailbox} actions. A {...@link MailboxMapper} has a
lifecycle from the start of a request
* to the end of the request.
*
*/
-public interface MailboxMapper<Id> extends TransactionalMapper {
+public interface MailboxMapper<Id> extends Mapper {
/**
* Save the give {...@link Mailbox} to the underlying storage
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
Sun Aug 22 12:13:40 2010
@@ -27,13 +27,13 @@ import org.apache.james.imap.mailbox.Sto
import org.apache.james.imap.store.mail.model.Document;
import org.apache.james.imap.store.mail.model.Mailbox;
import org.apache.james.imap.store.mail.model.MailboxMembership;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
/**
* Maps {...@link Document} in a {...@link
org.apache.james.imap.mailbox.Mailbox}. A {...@link MessageMapper} has a
lifecycle from the start of a request
* to the end of the request.
*/
-public interface MessageMapper<Id> extends TransactionalMapper {
+public interface MessageMapper<Id> extends Mapper {
/**
* Return a List of {...@link MailboxMembership} which represent the given
{...@link MessageRange}
Copied:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/Mapper.java
(from r987768,
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java)
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/Mapper.java?p2=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/Mapper.java&p1=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java&r1=987768&r2=987884&rev=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/Mapper.java
Sun Aug 22 12:13:40 2010
@@ -25,7 +25,7 @@ import org.apache.james.imap.mailbox.Mai
* Mapper which execute units of work in a {...@link Transaction}
*
*/
-public interface TransactionalMapper {
+public interface Mapper {
/**
* IMAP Request was complete. Cleanup all Request scoped stuff
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java
Sun Aug 22 12:13:40 2010
@@ -21,39 +21,18 @@ package org.apache.james.imap.store.tran
import org.apache.james.imap.mailbox.MailboxException;
/**
- * Mapper which not do any real transaction handling. It just execute the
execute() method
+ * A Mapper which does no transaction handling. It just executes the execute()
method
* of the Transaction object without any special handling.
*
- * This class is mostly useful for Mapper implementations which not support
Transactions
- *
+ * This class is mostly useful for Mapper implementations which do not support
Transactions
*/
-public abstract class NonTransactionalMapper extends
AbstractTransactionalMapper {
+public abstract class NonTransactionalMapper implements Mapper {
-
- /**
- * Do nothing because we don't support transaction
- */
- protected void begin() throws MailboxException {
- // do nothing
-
- }
-
-
- /**
- * Do nothing because we don't support transaction
- */
- protected void commit() throws MailboxException {
- // do nothing
-
- }
-
-
- /**
- * Do nothing because we don't support transaction
- */
- protected void rollback() throws MailboxException {
- // do nothing
-
+ /* (non-Javadoc)
+ * @see
org.apache.james.imap.store.transaction.Mapper#execute(org.apache.james.imap.store.transaction.Mapper.Transaction)
+ */
+ public final <T> T execute(Transaction<T> transaction) throws
MailboxException {
+ return transaction.run();
}
}
Copied:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
(from r987768,
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java)
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java?p2=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java&p1=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java&r1=987768&r2=987884&rev=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
Sun Aug 22 12:13:40 2010
@@ -26,7 +26,7 @@ import org.apache.james.imap.mailbox.Mai
* Run Transaction and handle begin, commit and rollback in the right order
*
*/
-public abstract class AbstractTransactionalMapper implements
TransactionalMapper {
+public abstract class TransactionalMapper implements Mapper {
/*
* (non-Javadoc)
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/user/SubscriptionMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/user/SubscriptionMapper.java?rev=987884&r1=987883&r2=987884&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/user/SubscriptionMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/user/SubscriptionMapper.java
Sun Aug 22 12:13:40 2010
@@ -21,14 +21,14 @@ package org.apache.james.imap.store.user
import java.util.List;
import org.apache.james.imap.mailbox.SubscriptionException;
-import org.apache.james.imap.store.transaction.TransactionalMapper;
+import org.apache.james.imap.store.transaction.Mapper;
import org.apache.james.imap.store.user.model.Subscription;
/**
* Mapper for {...@link Subscription}
*
*/
-public interface SubscriptionMapper extends TransactionalMapper{
+public interface SubscriptionMapper extends Mapper {
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]