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 ro...@apache.org on 2016/12/15 13:11:05 UTC
[3/5] james-project git commit: JAMES-1887:
MailboxSessionMapperFactory support more mapper for MessageIdMapper
JAMES-1887: MailboxSessionMapperFactory support more mapper for MessageIdMapper
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/67cdbd68
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/67cdbd68
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/67cdbd68
Branch: refs/heads/master
Commit: 67cdbd685ab71b57bc822d423f1b92821ef86fdf
Parents: d383e21
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Tue Dec 13 11:31:11 2016 +0700
Committer: Quynh Nguyen <qn...@linagora.com>
Committed: Thu Dec 15 16:00:44 2016 +0700
----------------------------------------------------------------------
.../CachingMailboxSessionMapperFactory.java | 6 ++++++
.../CassandraMailboxSessionMapperFactory.java | 7 +++++++
.../hbase/HBaseMailboxSessionMapperFactory.java | 6 ++++++
.../jcr/JCRMailboxSessionMapperFactory.java | 6 ++++++
.../jpa/JPAMailboxSessionMapperFactory.java | 7 +++++++
.../MaildirMailboxSessionMapperFactory.java | 7 +++++++
.../InMemoryMailboxSessionMapperFactory.java | 8 +++++++-
.../store/MailboxSessionMapperFactory.java | 21 +++++++++++++++++++-
8 files changed, 66 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxSessionMapperFactory.java b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxSessionMapperFactory.java
index 5ebc0a5..5206275 100644
--- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxSessionMapperFactory.java
+++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxSessionMapperFactory.java
@@ -8,6 +8,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.NoopAttachmentMapper;
@@ -71,4 +72,9 @@ public class CachingMailboxSessionMapperFactory extends
public ModSeqProvider getModSeqProvider() {
return underlying.getModSeqProvider();
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
index 4a0aaef..cafe7e2 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.cassandra;
import javax.inject.Inject;
+import org.apache.commons.lang.NotImplementedException;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.cassandra.mail.CassandraAnnotationMapper;
@@ -35,6 +36,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.UidProvider;
import org.apache.james.mailbox.store.user.SubscriptionMapper;
@@ -108,4 +110,9 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa
throws MailboxException {
return new CassandraAnnotationMapper(session);
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
index ecb3296..b724813 100644
--- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
+++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
@@ -49,6 +49,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.NoopAttachmentMapper;
@@ -182,4 +183,9 @@ public class HBaseMailboxSessionMapperFactory extends MailboxSessionMapperFactor
throws MailboxException {
throw new NotImplementedException();
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxSessionMapperFactory.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxSessionMapperFactory.java
index 5cde7e2..6263068 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxSessionMapperFactory.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxSessionMapperFactory.java
@@ -29,6 +29,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.NoopAttachmentMapper;
@@ -100,4 +101,9 @@ public class JCRMailboxSessionMapperFactory extends MailboxSessionMapperFactory
public ModSeqProvider getModSeqProvider() {
return modSeqProvider;
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java
index bb9b7f5..2bced8a 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+import org.apache.commons.lang.NotImplementedException;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.jpa.mail.JPAAnnotationMapper;
@@ -32,6 +33,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.NoopAttachmentMapper;
@@ -100,4 +102,9 @@ public class JPAMailboxSessionMapperFactory extends MailboxSessionMapperFactory
public ModSeqProvider getModSeqProvider() {
return modSeqProvider;
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
index 3b60788..fef737c 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
@@ -29,6 +29,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.NoopAttachmentMapper;
@@ -86,4 +87,10 @@ public class MaildirMailboxSessionMapperFactory extends
public ModSeqProvider getModSeqProvider() {
throw new NotImplementedException();
}
+
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java
index 8c67457..29c3493 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mailbox.inmemory;
+import org.apache.commons.lang.NotImplementedException;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.SubscriptionException;
@@ -32,6 +33,7 @@ import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
import org.apache.james.mailbox.store.mail.UidProvider;
@@ -40,7 +42,6 @@ import org.apache.james.mailbox.store.user.SubscriptionMapper;
public class InMemoryMailboxSessionMapperFactory extends MailboxSessionMapperFactory {
private final MailboxMapper mailboxMapper;
- private final InMemoryModSeqProvider modSeqProvider;
private final MessageMapper messageMapper;
private final SubscriptionMapper subscriptionMapper;
private final AttachmentMapper attachmentMapper;
@@ -99,4 +100,9 @@ public class InMemoryMailboxSessionMapperFactory extends MailboxSessionMapperFac
public ModSeqProvider getModSeqProvider() {
return modSeqProvider;
}
+
+ @Override
+ public MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException {
+ throw new NotImplementedException();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/67cdbd68/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java
index 33bcd0f..5f84299 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java
@@ -27,8 +27,11 @@ import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
+import org.apache.james.mailbox.store.mail.MessageIdMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.MessageMapperFactory;
+import org.apache.james.mailbox.store.mail.ModSeqProvider;
+import org.apache.james.mailbox.store.mail.UidProvider;
import org.apache.james.mailbox.store.transaction.Mapper;
import org.apache.james.mailbox.store.user.SubscriptionMapper;
import org.apache.james.mailbox.store.user.SubscriptionMapperFactory;
@@ -37,10 +40,11 @@ import org.apache.james.mailbox.store.user.SubscriptionMapperFactory;
* Maintain mapper instances by {@link MailboxSession}. So only one mapper instance is used
* in a {@link MailboxSession}
*/
-public abstract class MailboxSessionMapperFactory implements RequestAware, MailboxMapperFactory, MessageMapperFactory, AttachmentMapperFactory, SubscriptionMapperFactory{
+public abstract class MailboxSessionMapperFactory implements RequestAware, MailboxMapperFactory, MessageMapperFactory, AttachmentMapperFactory, SubscriptionMapperFactory {
protected final static String ATTACHMENTMAPPER = "ATTACHMENTMAPPER";
protected final static String MESSAGEMAPPER ="MESSAGEMAPPER";
+ protected final static String MESSAGEIDMAPPER ="MESSAGEIDMAPPER";
protected final static String MAILBOXMAPPER ="MAILBOXMAPPER";
protected final static String SUBSCRIPTIONMAPPER ="SUBSCRIPTIONMAPPER";
protected final static String ANNOTATIONMAPPER = "ANNOTATIONMAPPER";
@@ -125,6 +129,17 @@ public abstract class MailboxSessionMapperFactory implements RequestAware, Mailb
}
return mapper;
}
+
+ public abstract MessageIdMapper createMessageIdMapper(MailboxSession session) throws MailboxException;
+
+ public MessageIdMapper getMessageIdMapper(MailboxSession session) throws MailboxException {
+ MessageIdMapper mapper = (MessageIdMapper) session.getAttributes().get(MESSAGEIDMAPPER);
+ if (mapper == null) {
+ mapper = createMessageIdMapper(session);
+ session.getAttributes().put(MESSAGEIDMAPPER, mapper);
+ }
+ return mapper;
+ }
/**
* Create a {@link SubscriptionMapper} instance which will get reused during the whole {@link MailboxSession}
@@ -134,6 +149,10 @@ public abstract class MailboxSessionMapperFactory implements RequestAware, Mailb
*/
public abstract SubscriptionMapper createSubscriptionMapper(MailboxSession session) throws SubscriptionException;
+ public abstract UidProvider getUidProvider();
+
+ public abstract ModSeqProvider getModSeqProvider();
+
/**
* Call endRequest on {@link Mapper} instances
*
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org