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/03/08 19:17:35 UTC
svn commit: r920430 - in /james/imap/trunk: jcr/
jcr/src/main/java/org/apache/james/imap/jcr/mail/
jcr/src/main/java/org/apache/james/imap/jcr/user/
jpa/src/main/java/org/apache/james/imap/jpa/
jpa/src/main/java/org/apache/james/imap/jpa/mail/ jpa/src/...
Author: norman
Date: Mon Mar 8 18:17:34 2010
New Revision: 920430
URL: http://svn.apache.org/viewvc?rev=920430&view=rev
Log:
reorganize code to share some more stuff between implementations
Added:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
- copied, changed from r918155, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPATransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java
- copied, changed from r918136, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/AbstractTransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java
- copied, changed from r920375, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/NonTransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
- copied, changed from r918136, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/TransactionalMapper.java
Removed:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPATransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/AbstractTransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/NonTransactionalMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/TransactionalMapper.java
Modified:
james/imap/trunk/jcr/pom.xml
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.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/mail/JPAMailboxMapper.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/user/JPASubscriptionMapper.java
james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirTransactionalMapper.java
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
james/imap/trunk/parent/pom.xml
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.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/user/SubscriptionMapper.java
Modified: james/imap/trunk/jcr/pom.xml
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/pom.xml?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jcr/pom.xml (original)
+++ james/imap/trunk/jcr/pom.xml Mon Mar 8 18:17:34 2010
@@ -21,7 +21,7 @@
<parent>
<artifactId>apache-james-imap-parent</artifactId>
<groupId>org.apache.james</groupId>
- <version>0.1-SNAPSHOT</version>
+ <version>0.1-M2-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java Mon Mar 8 18:17:34 2010
@@ -28,8 +28,8 @@
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.NonTransactionalMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
+import org.apache.james.imap.store.transaction.NonTransactionalMapper;
/**
* JCR implementation of a MailboxMapper
Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/user/JCRSubscriptionMapper.java Mon Mar 8 18:17:34 2010
@@ -29,7 +29,11 @@
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.jcr.user.model.JCRSubscription;
+import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.mailbox.SubscriptionException;
+import org.apache.james.imap.store.transaction.AbstractTransactionalMapper;
+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;
@@ -38,7 +42,7 @@
* support transactions. So very call on a method ends in a "real" action
*
*/
-public class JCRSubscriptionMapper implements SubscriptionMapper{
+public class JCRSubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper{
private final Session session;
private final static String PATH = "subscriptions";
@@ -47,20 +51,6 @@
this.session = session;
}
- /**
- * Transactions are not supported by most JCR implementations. So do nothing
- */
- public void begin() throws SubscriptionException {
- // Nothing todo
-
- }
-
- /**
- * Transactions are not supported by most JCR implementations. So do nothing
- */
- public void commit() throws SubscriptionException {
- // Nothing todo
- }
/*
* (non-Javadoc)
@@ -140,4 +130,5 @@
}
}
+
}
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -25,8 +25,8 @@
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.TransactionalMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
public abstract class JPAMailboxManager extends StoreMailboxManager {
Copied: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java (from r918155, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPATransactionalMapper.java)
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java?p2=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java&p1=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPATransactionalMapper.java&r1=918155&r2=920430&rev=920430&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPATransactionalMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java Mon Mar 8 18:17:34 2010
@@ -16,15 +16,16 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imap.jpa.mail;
+package org.apache.james.imap.jpa;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceException;
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.mail.AbstractTransactionalMapper;
+import org.apache.james.imap.store.transaction.AbstractTransactionalMapper;
/**
* JPA implementation of TransactionMapper
@@ -38,11 +39,12 @@
this.entityManager = entityManager;
}
+
/*
* (non-Javadoc)
- * @see org.apache.james.imap.store.mail.AbstractTransactionalMapper#begin()
+ * @see org.apache.james.imap.store.transaction.AbstractTransactionalMapper#begin()
*/
- protected void begin() throws StorageException {
+ protected void begin() throws MailboxException {
try {
entityManager.getTransaction().begin();
} catch (PersistenceException e) {
@@ -50,23 +52,24 @@
}
}
+
/*
* (non-Javadoc)
- * @see org.apache.james.imap.store.mail.AbstractTransactionalMapper#commit()
+ * @see org.apache.james.imap.store.transaction.AbstractTransactionalMapper#commit()
*/
- protected void commit() throws StorageException {
+ protected void commit() throws MailboxException {
try {
entityManager.getTransaction().commit();
} catch (PersistenceException e) {
throw new StorageException(HumanReadableText.COMMIT_TRANSACTION_FAILED, e);
}
}
-
+
/*
* (non-Javadoc)
- * @see org.apache.james.imap.store.mail.AbstractTransactionalMapper#rollback()
+ * @see org.apache.james.imap.store.transaction.AbstractTransactionalMapper#rollback()
*/
- protected void rollback() throws StorageException {
+ protected void rollback() throws MailboxException {
EntityTransaction transaction = entityManager.getTransaction();
// check if we have a transaction to rollback
if (transaction.isActive()) {
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java Mon Mar 8 18:17:34 2010
@@ -26,6 +26,7 @@
import javax.persistence.PersistenceException;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.jpa.JPATransactionalMapper;
import org.apache.james.imap.jpa.mail.model.JPAMailbox;
import org.apache.james.imap.mailbox.MailboxNotFoundException;
import org.apache.james.imap.mailbox.StorageException;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java Mon Mar 8 18:17:34 2010
@@ -24,6 +24,7 @@
import javax.persistence.PersistenceException;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.jpa.JPATransactionalMapper;
import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.SearchQuery;
import org.apache.james.imap.mailbox.StorageException;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/user/JPASubscriptionMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/user/JPASubscriptionMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/user/JPASubscriptionMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/user/JPASubscriptionMapper.java Mon Mar 8 18:17:34 2010
@@ -25,6 +25,7 @@
import javax.persistence.PersistenceException;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.jpa.JPATransactionalMapper;
import org.apache.james.imap.mailbox.SubscriptionException;
import org.apache.james.imap.store.user.SubscriptionMapper;
import org.apache.james.imap.store.user.model.Subscription;
@@ -32,36 +33,12 @@
/**
* Maps data access logic to JPA operations.
*/
-public class JPASubscriptionMapper implements SubscriptionMapper {
- private final EntityManager entityManager;
+public class JPASubscriptionMapper extends JPATransactionalMapper implements SubscriptionMapper {
public JPASubscriptionMapper(final EntityManager entityManager) {
- super();
- this.entityManager = entityManager;
+ super(entityManager);
}
- /**
- * @throws SubscriptionException
- * @see org.apache.james.imap.store.user.SubscriptionMapper#begin()
- */
- public void begin() throws SubscriptionException {
- try {
- entityManager.getTransaction().begin();
- } catch (PersistenceException e) {
- throw new SubscriptionException(HumanReadableText.START_TRANSACTION_FAILED, e);
- }
- }
-
- /**
- * @throws SubscriptionException
- */
- public void commit() throws SubscriptionException {
- try {
- entityManager.getTransaction().commit();
- } catch (PersistenceException e) {
- throw new SubscriptionException(HumanReadableText.COMMIT_TRANSACTION_FAILED, e);
- }
- }
/**
* @throws SubscriptionException
Modified: james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirTransactionalMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirTransactionalMapper.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirTransactionalMapper.java (original)
+++ james/imap/trunk/maildir/src/main/java/org/apache/james/imap/maildir/mail/MaildirTransactionalMapper.java Mon Mar 8 18:17:34 2010
@@ -23,7 +23,7 @@
import org.apache.commons.transaction.file.TxFileResourceManager;
import org.apache.james.imap.mailbox.StorageException;
-import org.apache.james.imap.store.mail.AbstractTransactionalMapper;
+import org.apache.james.imap.store.transaction.AbstractTransactionalMapper;
/**
* TransactionManager which supports Transactions for Maildir
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -25,6 +25,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.StoreSubscriptionManager;
import org.apache.james.imap.store.user.SubscriptionMapper;
import org.apache.james.imap.store.user.model.Subscription;
@@ -52,12 +53,6 @@
return new InMemorySubscription(mailbox, user);
}
- public void begin() {
- }
-
- public void commit() {
- }
-
public synchronized void delete(Subscription subscription) {
final String user = subscription.getUser();
final List<Subscription> subscriptions = subscriptionsByUser.get(user);
@@ -169,4 +164,8 @@
}
}
+
+ public void execute(Transaction transaction) throws MailboxException {
+ transaction.run();
+ }
}
Modified: james/imap/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/james/imap/trunk/parent/pom.xml?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/parent/pom.xml (original)
+++ james/imap/trunk/parent/pom.xml Mon Mar 8 18:17:34 2010
@@ -244,6 +244,11 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>apache-james-imap-jcr</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>apache-james-imap-memory</artifactId>
<version>${pom.version}</version>
</dependency>
Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=920430&r1=920429&r2=920430&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java Mon Mar 8 18:17:34 2010
@@ -50,11 +50,11 @@
import org.apache.james.imap.mailbox.util.UidChangeTracker;
import org.apache.james.imap.mailbox.util.UidRange;
import org.apache.james.imap.store.mail.MessageMapper;
-import org.apache.james.imap.store.mail.TransactionalMapper;
import org.apache.james.imap.store.mail.model.Header;
import org.apache.james.imap.store.mail.model.Mailbox;
import org.apache.james.imap.store.mail.model.MailboxMembership;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.descriptor.MaximalBodyDescriptor;
import org.apache.james.mime4j.parser.MimeTokenStream;
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -46,8 +46,8 @@
import org.apache.james.imap.mailbox.MailboxMetaData.Selectability;
import org.apache.james.imap.mailbox.util.SimpleMailboxMetaData;
import org.apache.james.imap.store.mail.MailboxMapper;
-import org.apache.james.imap.store.mail.TransactionalMapper;
import org.apache.james.imap.store.mail.model.Mailbox;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
public abstract class StoreMailboxManager extends AbstractLogEnabled implements MailboxManager {
public static final String USER_NAMESPACE_PREFIX = "#mail";
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -22,7 +22,9 @@
import java.util.HashSet;
import java.util.List;
+import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.SubscriptionException;
+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;
@@ -41,14 +43,23 @@
public void subscribe(final String user, final String mailbox) throws SubscriptionException {
final SubscriptionMapper mapper = createMapper();
- mapper.begin();
+ try {
+ mapper.execute(new TransactionalMapper.Transaction() {
- final Subscription subscription = mapper.findFindMailboxSubscriptionForUser(user, mailbox);
- if (subscription == null) {
- final Subscription newSubscription = createSubscription(user, mailbox);
- mapper.save(newSubscription);
- mapper.commit();
+ public void run() throws MailboxException {
+ final Subscription subscription = mapper.findFindMailboxSubscriptionForUser(user, mailbox);
+ if (subscription == null) {
+ final Subscription newSubscription = createSubscription(user, mailbox);
+ mapper.save(newSubscription);
+ }
+ }
+
+ });
+ } catch (MailboxException e) {
+ throw (SubscriptionException) e;
}
+
+
}
protected abstract Subscription createSubscription(final String user, final String mailbox);
@@ -65,12 +76,21 @@
public void unsubscribe(final String user, final String mailbox) throws SubscriptionException {
final SubscriptionMapper mapper = createMapper();
- mapper.begin();
+ try {
+ mapper.execute(new TransactionalMapper.Transaction() {
- final Subscription subscription = mapper.findFindMailboxSubscriptionForUser(user, mailbox);
- if (subscription != null) {
- mapper.delete(subscription);
- mapper.commit();
+ public void run() throws MailboxException {
+ final Subscription subscription = mapper.findFindMailboxSubscriptionForUser(user, mailbox);
+ if (subscription != null) {
+ mapper.delete(subscription);
+ }
+ }
+
+ });
+ } catch (MailboxException e) {
+ throw (SubscriptionException) e;
}
+
+
}
}
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -23,6 +23,7 @@
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;
public interface MailboxMapper extends TransactionalMapper{
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -24,6 +24,7 @@
import org.apache.james.imap.mailbox.SearchQuery;
import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.store.mail.model.MailboxMembership;
+import org.apache.james.imap.store.transaction.TransactionalMapper;
/**
* Maps messages in a mailbox.
Copied: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java (from r918136, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/AbstractTransactionalMapper.java)
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java?p2=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java&p1=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/AbstractTransactionalMapper.java&r1=918136&r2=920430&rev=920430&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/AbstractTransactionalMapper.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/AbstractTransactionalMapper.java Mon Mar 8 18:17:34 2010
@@ -17,10 +17,9 @@
* under the License. *
****************************************************************/
-package org.apache.james.imap.store.mail;
+package org.apache.james.imap.store.transaction;
import org.apache.james.imap.mailbox.MailboxException;
-import org.apache.james.imap.mailbox.StorageException;
/**
*
@@ -31,7 +30,7 @@
/*
* (non-Javadoc)
- * @see org.apache.james.imap.store.mail.TransactionalMapper#execute(org.apache.james.imap.store.mail.TransactionalMapper.Transaction)
+ * @see org.apache.james.imap.store.transaction.TransactionalMapper#execute(org.apache.james.imap.store.transaction.TransactionalMapper.Transaction)
*/
public final void execute(Transaction transaction) throws MailboxException {
begin();
@@ -50,14 +49,14 @@
*
* @throws StorageException
*/
- protected abstract void begin() throws StorageException;
+ protected abstract void begin() throws MailboxException;
/**
* Commit transaction
*
* @throws StorageException
*/
- protected abstract void commit() throws StorageException;
+ protected abstract void commit() throws MailboxException;
/**
@@ -65,7 +64,7 @@
*
* @throws StorageException
*/
- protected abstract void rollback() throws StorageException;
+ protected abstract void rollback() throws MailboxException;
}
Copied: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java (from r920375, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/NonTransactionalMapper.java)
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java?p2=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java&p1=james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/NonTransactionalMapper.java&r1=920375&r2=920430&rev=920430&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/NonTransactionalMapper.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/NonTransactionalMapper.java Mon Mar 8 18:17:34 2010
@@ -16,24 +16,44 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imap.store.mail;
+package org.apache.james.imap.store.transaction;
import org.apache.james.imap.mailbox.MailboxException;
/**
* Mapper which not do any real transaction handling. It just execute the execute() method
- * of the Transaction object without any special handling.
+ * of the Transaction object without any special handling.
*
- * This class is mostly usefull for Mapper implementations which not support Transactions
+ * This class is mostly useful for Mapper implementations which not support Transactions
*
*/
-public class NonTransactionalMapper implements TransactionalMapper {
+public class NonTransactionalMapper extends AbstractTransactionalMapper {
- /**
- * Just execute the Transaction object without any transaction support.
- */
- public void execute(Transaction transaction) throws MailboxException {
- transaction.run();
- }
+
+ /**
+ * 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
+
+ }
}
Copied: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java (from r918136, james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/TransactionalMapper.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/mail/TransactionalMapper.java&r1=918136&r2=920430&rev=920430&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/TransactionalMapper.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java Mon Mar 8 18:17:34 2010
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.imap.store.mail;
+package org.apache.james.imap.store.transaction;
import org.apache.james.imap.mailbox.MailboxException;
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=920430&r1=920429&r2=920430&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 Mon Mar 8 18:17:34 2010
@@ -21,28 +21,16 @@
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.user.model.Subscription;
/**
*
*
*/
-public interface SubscriptionMapper {
-
- /**
- * Begin transaction
- *
- * @throws SubscriptionException
- */
- public abstract void begin() throws SubscriptionException;
-
- /**
- * Commit transaction
- *
- * @throws SubscriptionException
- */
- public abstract void commit() throws SubscriptionException;
+public interface SubscriptionMapper extends TransactionalMapper{
+
/**
* Finds any subscriptions for a given user to the given mailbox.
* @param user not null
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org