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 bt...@apache.org on 2017/11/03 02:33:29 UTC
[12/15] james-project git commit: MAILBOX-317 Add a
MailboxAnnotationManager
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index dadc77c..c53da61 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -30,6 +30,7 @@ import java.util.stream.Stream;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
+import org.apache.james.mailbox.MailboxAnnotationManager;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxPathLocker;
@@ -40,7 +41,6 @@ import org.apache.james.mailbox.MailboxSessionIdGenerator;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.RequestAware;
import org.apache.james.mailbox.StandardMailboxMetaDataComparator;
-import org.apache.james.mailbox.exception.AnnotationException;
import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -69,7 +69,6 @@ import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
-import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
@@ -108,6 +107,7 @@ public class StoreMailboxManager implements MailboxManager {
private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
private final Authenticator authenticator;
+ private final MailboxAnnotationManager annotationManager;
private Authorizator authorizator;
@@ -135,23 +135,15 @@ public class StoreMailboxManager implements MailboxManager {
private final MessageParser messageParser;
private final Factory messageIdFactory;
- private final int limitOfAnnotations;
- private final int limitAnnotationSize;
private final ImmutableMailboxMessage.Factory immutableMailboxMessageFactory;
@Inject
- public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator,
- MailboxPathLocker locker, MessageParser messageParser, MessageId.Factory messageIdFactory, MailboxEventDispatcher mailboxEventDispatcher,
- DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager) {
- this(mailboxSessionMapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory,
- MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, mailboxEventDispatcher,
- delegatingListener, storeRightManager);
- }
-
public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator,
MailboxPathLocker locker, MessageParser messageParser,
- MessageId.Factory messageIdFactory, int limitOfAnnotations, int limitAnnotationSize, MailboxEventDispatcher mailboxEventDispatcher,
+ MessageId.Factory messageIdFactory, MailboxAnnotationManager annotationManager,
+ MailboxEventDispatcher mailboxEventDispatcher,
DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager) {
+ this.annotationManager = annotationManager;
Preconditions.checkNotNull(delegatingListener);
Preconditions.checkNotNull(mailboxEventDispatcher);
this.authenticator = authenticator;
@@ -160,15 +152,13 @@ public class StoreMailboxManager implements MailboxManager {
this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
this.messageParser = messageParser;
this.messageIdFactory = messageIdFactory;
- this.limitOfAnnotations = limitOfAnnotations;
- this.limitAnnotationSize = limitAnnotationSize;
this.delegatingListener = delegatingListener;
this.dispatcher = mailboxEventDispatcher;
this.immutableMailboxMessageFactory = new ImmutableMailboxMessage.Factory(this);
this.storeRightManager = storeRightManager;
}
- protected Factory getMessageIdFactory() {
+ public Factory getMessageIdFactory() {
return messageIdFactory;
}
@@ -819,50 +809,21 @@ public class StoreMailboxManager implements MailboxManager {
@Override
public List<MailboxAnnotation> getAllAnnotations(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
- final AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(session);
- final MailboxId mailboxId = getMailbox(mailboxPath, session).getId();
-
- return annotationMapper.execute(
- () -> annotationMapper.getAllAnnotations(mailboxId));
+ return annotationManager.getAllAnnotations(mailboxPath, session);
}
@Override
- public List<MailboxAnnotation> getAnnotationsByKeys(MailboxPath mailboxPath, MailboxSession session, final Set<MailboxAnnotationKey> keys)
+ public List<MailboxAnnotation> getAnnotationsByKeys(MailboxPath mailboxPath, MailboxSession session, Set<MailboxAnnotationKey> keys)
throws MailboxException {
- final AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(session);
- final MailboxId mailboxId = getMailbox(mailboxPath, session).getId();
-
- return annotationMapper.execute(
- () -> annotationMapper.getAnnotationsByKeys(mailboxId, keys));
+ return annotationManager.getAnnotationsByKeys(mailboxPath, session, keys);
}
@Override
- public void updateAnnotations(MailboxPath mailboxPath, MailboxSession session, final List<MailboxAnnotation> mailboxAnnotations)
+ public void updateAnnotations(MailboxPath mailboxPath, MailboxSession session, List<MailboxAnnotation> mailboxAnnotations)
throws MailboxException {
- final AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(session);
- final MailboxId mailboxId = getMailbox(mailboxPath, session).getId();
-
- annotationMapper.execute(Mapper.toTransaction(() -> {
- for (MailboxAnnotation annotation : mailboxAnnotations) {
- if (annotation.isNil()) {
- annotationMapper.deleteAnnotation(mailboxId, annotation.getKey());
- } else if (canInsertOrUpdate(mailboxId, annotation, annotationMapper)) {
- annotationMapper.insertAnnotation(mailboxId, annotation);
- }
- }
- }));
+ annotationManager.updateAnnotations(mailboxPath, session, mailboxAnnotations);
}
- private boolean canInsertOrUpdate(MailboxId mailboxId, MailboxAnnotation annotation, AnnotationMapper annotationMapper) throws AnnotationException {
- if (annotation.size() > limitAnnotationSize) {
- throw new AnnotationException("annotation too big.");
- }
- if (!annotationMapper.exist(mailboxId, annotation)
- && annotationMapper.countAnnotations(mailboxId) >= limitOfAnnotations) {
- throw new AnnotationException("too many annotations.");
- }
- return true;
- }
@Override
public boolean hasCapability(MailboxCapabilities capability) {
@@ -871,22 +832,14 @@ public class StoreMailboxManager implements MailboxManager {
@Override
public List<MailboxAnnotation> getAnnotationsByKeysWithOneDepth(MailboxPath mailboxPath, MailboxSession session,
- final Set<MailboxAnnotationKey> keys) throws MailboxException {
- final AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(session);
- final MailboxId mailboxId = getMailbox(mailboxPath, session).getId();
-
- return annotationMapper.execute(
- () -> annotationMapper.getAnnotationsByKeysWithOneDepth(mailboxId, keys));
+ Set<MailboxAnnotationKey> keys) throws MailboxException {
+ return annotationManager.getAnnotationsByKeysWithOneDepth(mailboxPath, session, keys);
}
@Override
public List<MailboxAnnotation> getAnnotationsByKeysWithAllDepth(MailboxPath mailboxPath, MailboxSession session,
- final Set<MailboxAnnotationKey> keys) throws MailboxException {
- final AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(session);
- final MailboxId mailboxId = getMailbox(mailboxPath, session).getId();
-
- return annotationMapper.execute(
- () -> annotationMapper.getAnnotationsByKeysWithAllDepth(mailboxId, keys));
+ Set<MailboxAnnotationKey> keys) throws MailboxException {
+ return annotationManager.getAnnotationsByKeysWithAllDepth(mailboxPath, session, keys);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
index ccf2304..46d4a0d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
@@ -32,21 +32,17 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
-import org.apache.james.mailbox.acl.GroupMembershipResolver;
-import org.apache.james.mailbox.acl.MailboxACLResolver;
+import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxAnnotation;
import org.apache.james.mailbox.model.MailboxAnnotationKey;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.transaction.Mapper;
import org.junit.Before;
import org.junit.Test;
@@ -68,20 +64,15 @@ public class StoreMailboxManagerAnnotationTest {
private static final List<MailboxAnnotation> ANNOTATIONS_WITH_NIL_ENTRY = ImmutableList.of(PRIVATE_ANNOTATION, MailboxAnnotation.nil(SHARED_KEY));
@Mock private MailboxSessionMapperFactory mailboxSessionMapperFactory;
- @Mock private Authenticator authenticator;
- @Mock private Authorizator authorizator;
- @Mock private MailboxACLResolver aclResolver;
- @Mock private GroupMembershipResolver groupMembershipResolver;
+ @Mock private StoreRightManager storeRightManager;
@Mock private MailboxMapper mailboxMapper;
@Mock private AnnotationMapper annotationMapper;
@Mock private MailboxPath mailboxPath;
@Mock private Mailbox mailbox;
- @Mock private MessageParser messageParser;
@Mock private MailboxId mailboxId;
- @Mock private MessageId.Factory messageIdFactory;
private MockMailboxSession session;
- private StoreMailboxManager storeMailboxManager;
+ private StoreMailboxAnnotationManager annotationManager;
@SuppressWarnings("unchecked")
@@ -100,30 +91,23 @@ public class StoreMailboxManagerAnnotationTest {
Mapper.Transaction<?> transaction = (Mapper.Transaction<?>) invocationOnMock.getArguments()[0];
return transaction.run();
});
+ when(storeRightManager.hasRight(any(Mailbox.class), any(MailboxACL.Right.class), any(MailboxSession.class)))
+ .thenReturn(true);
- StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver,
- groupMembershipResolver);
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- storeMailboxManager = spy(new StoreMailboxManager(mailboxSessionMapperFactory, authenticator, authorizator,
- new JVMMailboxPathLocker(), messageParser, messageIdFactory,
- mailboxEventDispatcher,
- delegatingListener,
- storeRightManager));
- storeMailboxManager.init();
+ annotationManager = spy(new StoreMailboxAnnotationManager(mailboxSessionMapperFactory,
+ storeRightManager));
}
@Test(expected = MailboxException.class)
public void updateAnnotationsShouldThrowExceptionWhenDoesNotLookupMailbox() throws Exception {
doThrow(MailboxException.class).when(mailboxMapper).findMailboxByPath(eq(mailboxPath));
- storeMailboxManager.updateAnnotations(mailboxPath, session, ImmutableList.of(PRIVATE_ANNOTATION));
+ annotationManager.updateAnnotations(mailboxPath, session, ImmutableList.of(PRIVATE_ANNOTATION));
}
@Test
public void updateAnnotationsShouldCallAnnotationMapperToInsertAnnotation() throws Exception {
when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox);
- storeMailboxManager.updateAnnotations(mailboxPath, session, ANNOTATIONS);
+ annotationManager.updateAnnotations(mailboxPath, session, ANNOTATIONS);
verify(annotationMapper, times(2)).insertAnnotation(eq(mailboxId), any(MailboxAnnotation.class));
}
@@ -131,7 +115,7 @@ public class StoreMailboxManagerAnnotationTest {
@Test
public void updateAnnotationsShouldCallAnnotationMapperToDeleteAnnotation() throws Exception {
when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox);
- storeMailboxManager.updateAnnotations(mailboxPath, session, ANNOTATIONS_WITH_NIL_ENTRY);
+ annotationManager.updateAnnotations(mailboxPath, session, ANNOTATIONS_WITH_NIL_ENTRY);
verify(annotationMapper, times(1)).insertAnnotation(eq(mailboxId), eq(PRIVATE_ANNOTATION));
verify(annotationMapper, times(1)).deleteAnnotation(eq(mailboxId), eq(SHARED_KEY));
@@ -140,7 +124,7 @@ public class StoreMailboxManagerAnnotationTest {
@Test(expected = MailboxException.class)
public void getAllAnnotationsShouldThrowExceptionWhenDoesNotLookupMailbox() throws Exception {
doThrow(MailboxException.class).when(mailboxMapper).findMailboxByPath(eq(mailboxPath));
- storeMailboxManager.getAllAnnotations(mailboxPath, session);
+ annotationManager.getAllAnnotations(mailboxPath, session);
}
@Test
@@ -148,7 +132,7 @@ public class StoreMailboxManagerAnnotationTest {
when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox);
when(annotationMapper.getAllAnnotations(eq(mailboxId))).thenReturn(Collections.<MailboxAnnotation> emptyList());
- assertThat(storeMailboxManager.getAllAnnotations(mailboxPath, session)).isEmpty();
+ assertThat(annotationManager.getAllAnnotations(mailboxPath, session)).isEmpty();
}
@Test
@@ -156,13 +140,13 @@ public class StoreMailboxManagerAnnotationTest {
when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox);
when(annotationMapper.getAllAnnotations(eq(mailboxId))).thenReturn(ANNOTATIONS);
- assertThat(storeMailboxManager.getAllAnnotations(mailboxPath, session)).isEqualTo(ANNOTATIONS);
+ assertThat(annotationManager.getAllAnnotations(mailboxPath, session)).isEqualTo(ANNOTATIONS);
}
@Test(expected = MailboxException.class)
public void getAnnotationsByKeysShouldThrowExceptionWhenDoesNotLookupMailbox() throws Exception {
doThrow(MailboxException.class).when(mailboxMapper).findMailboxByPath(eq(mailboxPath));
- storeMailboxManager.getAnnotationsByKeys(mailboxPath, session, KEYS);
+ annotationManager.getAnnotationsByKeys(mailboxPath, session, KEYS);
}
@Test
@@ -170,6 +154,6 @@ public class StoreMailboxManagerAnnotationTest {
when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox);
when(annotationMapper.getAnnotationsByKeys(eq(mailboxId), eq(KEYS))).thenReturn(ANNOTATIONS);
- assertThat(storeMailboxManager.getAnnotationsByKeys(mailboxPath, session, KEYS)).isEqualTo(ANNOTATIONS);
+ assertThat(annotationManager.getAnnotationsByKeys(mailboxPath, session, KEYS)).isEqualTo(ANNOTATIONS);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index 846cfb0..33f9efd 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -79,8 +79,10 @@ public class StoreMailboxManagerTest {
DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mockedMapperFactory, storeRightManager);
storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, authenticator, FakeAuthorizator.forUserAndAdmin(ADMIN, CURRENT_USER),
- new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory, mailboxEventDispatcher, delegatingListener, storeRightManager);
+ new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
+ annotationManager, mailboxEventDispatcher, delegatingListener, storeRightManager);
storeMailboxManager.init();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mailbox/tool/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/tool/pom.xml b/mailbox/tool/pom.xml
index d6460fe..73550d8 100644
--- a/mailbox/tool/pom.xml
+++ b/mailbox/tool/pom.xml
@@ -48,10 +48,22 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-memory</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-memory</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-store</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
index 27f5187..0bf9ec4 100644
--- a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
+++ b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
@@ -27,23 +27,13 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
-import org.apache.james.mailbox.acl.GroupMembershipResolver;
-import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.mock.MockMailboxManager;
import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.store.Authorizator;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.StoreMailboxManager;
-import org.apache.james.mailbox.store.StoreRightManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
-import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.junit.Before;
import org.junit.Test;
@@ -55,8 +45,6 @@ import org.junit.Test;
*
*/
public class MailboxCopierTest {
-
- public static final boolean AUTHENTIC = true;
/**
* The instance for the test mailboxCopier.
*/
@@ -155,26 +143,9 @@ public class MailboxCopierTest {
*
* @return a new InMemoryMailboxManager
*/
- private MailboxManager newInMemoryMailboxManager() {
- MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
- GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
- MessageParser messageParser = new MessageParser();
- InMemoryMailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory();
- StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver);
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- return new StoreMailboxManager(
- mapperFactory,
- (userid, passwd) -> AUTHENTIC,
- (userId, otherUserId) -> Authorizator.AuthorizationState.NOT_ADMIN,
- new JVMMailboxPathLocker(),
- messageParser,
- new DefaultMessageId.Factory(),
- mailboxEventDispatcher,
- delegatingListener,
- storeRightManager);
-
+ private MailboxManager newInMemoryMailboxManager() throws MailboxException {
+ return new InMemoryIntegrationResources()
+ .createMailboxManager(new SimpleGroupMembershipResolver());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
index ff17399..93fc95e 100644
--- a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
+++ b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
@@ -52,6 +52,7 @@ import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
@@ -115,9 +116,11 @@ public class CassandraHostSystem extends JamesImapHostSystem {
DefaultDelegatingMailboxListener delegatingMailboxListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingMailboxListener);
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver());
+
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
mailboxManager = new CassandraMailboxManager(mapperFactory, authenticator, authorizator,
new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
- mailboxEventDispatcher, delegatingMailboxListener, storeRightManager);
+ mailboxEventDispatcher, delegatingMailboxListener, annotationManager, storeRightManager);
QuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(mapperFactory);
perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager(session);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/pom.xml b/mpt/impl/imap-mailbox/elasticsearch/pom.xml
index 762f5a7..1add2e2 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/pom.xml
+++ b/mpt/impl/imap-mailbox/elasticsearch/pom.xml
@@ -47,6 +47,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-elasticsearch</artifactId>
</dependency>
<dependency>
@@ -55,6 +60,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-memory</artifactId>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-store</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
index 369492f..9b36b88 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java
@@ -37,10 +37,7 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.acl.GroupMembershipResolver;
-import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.elasticsearch.IndexAttachments;
import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
import org.apache.james.mailbox.elasticsearch.MailboxMappingFactory;
@@ -53,14 +50,11 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
import org.apache.james.mailbox.inmemory.InMemoryMessageId;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
+import org.apache.james.mailbox.mock.MockMailboxSession;
import org.apache.james.mailbox.store.StoreMailboxManager;
-import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
import org.apache.james.mailbox.store.quota.NoQuotaManager;
import org.apache.james.metrics.logger.DefaultMetricFactory;
@@ -69,8 +63,6 @@ import org.apache.james.mpt.api.ImapFeatures.Feature;
import org.apache.james.mpt.host.JamesImapHostSystem;
import org.elasticsearch.client.Client;
-import com.google.common.base.Throwables;
-
public class ElasticSearchHostSystem extends JamesImapHostSystem {
private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT);
@@ -95,7 +87,7 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
FileUtils.deleteDirectory(tempDirectory.toFile());
}
- private void initFields() {
+ private void initFields() throws MailboxException {
Client client = NodeMappingFactory.applyMapping(
new IndexCreationFactory()
.useIndex(MailboxElasticSearchConstants.DEFAULT_MAILBOX_INDEX)
@@ -120,26 +112,13 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem {
MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS, MailboxElasticSearchConstants.MESSAGE_TYPE),
new MessageToElasticSearchJson(new DefaultTextExtractor(), ZoneId.systemDefault(), IndexAttachments.YES));
- MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
- GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
- MessageParser messageParser = new MessageParser();
-
- StoreRightManager storeRightManager = new StoreRightManager(factory, aclResolver, groupMembershipResolver);
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- mailboxManager = new StoreMailboxManager(factory, authenticator, authorizator, new JVMMailboxPathLocker(),
- messageParser, messageIdFactory, mailboxEventDispatcher, delegatingListener, storeRightManager);
- mailboxManager.setMessageSearchIndex(searchIndex);
-
- try {
- mailboxManager.init();
- } catch (MailboxException e) {
- throw Throwables.propagate(e);
- }
+ InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
+ this.mailboxManager = inMemoryIntegrationResources.createMailboxManager(new SimpleGroupMembershipResolver());
+ this.mailboxManager.setMessageSearchIndex(searchIndex);
+ this.mailboxManager.removeGlobalListener(searchIndex, new MockMailboxSession("admin"));
final ImapProcessor defaultImapProcessorFactory =
- DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager,
+ DefaultImapProcessorFactory.createDefaultProcessor(this.mailboxManager,
new StoreSubscriptionManager(factory),
new NoQuotaManager(),
new DefaultQuotaRootResolver(factory),
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
index 1b0cacd..aa1c82b 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
@@ -42,6 +42,7 @@ import org.apache.james.mailbox.hbase.HBaseMailboxSessionMapperFactory;
import org.apache.james.mailbox.hbase.mail.HBaseModSeqProvider;
import org.apache.james.mailbox.hbase.mail.HBaseUidProvider;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
@@ -109,9 +110,11 @@ public class HBaseHostSystem extends JamesImapHostSystem {
DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
mailboxManager = new HBaseMailboxManager(mapperFactory, authenticator, authorizator,
new JVMMailboxPathLocker(), messageParser,
- messageIdFactory, mailboxEventDispatcher, delegatingListener, storeRightManager);
+ messageIdFactory, mailboxEventDispatcher, delegatingListener,
+ annotationManager, storeRightManager);
mailboxManager.init();
SubscriptionManager subscriptionManager = new StoreSubscriptionManager(mapperFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/inmemory/pom.xml
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/pom.xml b/mpt/impl/imap-mailbox/inmemory/pom.xml
index dfed496..996ca9e 100644
--- a/mpt/impl/imap-mailbox/inmemory/pom.xml
+++ b/mpt/impl/imap-mailbox/inmemory/pom.xml
@@ -33,8 +33,20 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-memory</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-memory</artifactId>
<scope>test</scope>
+ <type>test-jar</type>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
index 0cac457..9f3f26e 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
@@ -24,23 +24,15 @@ import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.acl.GroupMembershipResolver;
-import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
-import org.apache.james.mailbox.inmemory.InMemoryMessageId;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
+import org.apache.james.mailbox.mock.MockMailboxSession;
import org.apache.james.mailbox.quota.QuotaRootResolver;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
-import org.apache.james.mailbox.store.StoreRightManager;
+import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
@@ -58,7 +50,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
Feature.QUOTA_SUPPORT,
Feature.ANNOTATION_SUPPORT);
- private InMemoryMailboxManager mailboxManager;
+ private StoreMailboxManager mailboxManager;
private InMemoryPerUserMaxQuotaManager perUserMaxQuotaManager;
public static JamesImapHostSystem build() throws Exception {
@@ -68,18 +60,8 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
@Override
public void beforeTest() throws Exception {
super.beforeTest();
- MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
- GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
- MessageParser messageParser = new MessageParser();
-
- InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory();
- StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver);
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, authenticator, authorizator,
- new JVMMailboxPathLocker(), messageParser, new InMemoryMessageId.Factory(),
- mailboxEventDispatcher, delegatingListener, storeRightManager);
+ this.mailboxManager = new InMemoryIntegrationResources()
+ .createMailboxManager(new SimpleGroupMembershipResolver(), authenticator, authorizator);
QuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(mailboxManager.getMapperFactory());
perUserMaxQuotaManager = new InMemoryPerUserMaxQuotaManager();
@@ -95,8 +77,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
mailboxManager.setQuotaRootResolver(quotaRootResolver);
mailboxManager.setQuotaManager(quotaManager);
mailboxManager.setQuotaUpdater(quotaUpdater);
-
- mailboxManager.init();
+ mailboxManager.addGlobalListener(quotaUpdater, new MockMailboxSession("admin"));
final ImapProcessor defaultImapProcessorFactory = DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new StoreSubscriptionManager(mailboxManager.getMapperFactory()), quotaManager, quotaRootResolver, new DefaultMetricFactory());
configure(new DefaultImapDecoderFactory().buildImapDecoder(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
index 01a286b..7702d20 100644
--- a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
+++ b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
@@ -42,6 +42,7 @@ import org.apache.james.mailbox.jcr.JCRUtils;
import org.apache.james.mailbox.jcr.mail.JCRModSeqProvider;
import org.apache.james.mailbox.jcr.mail.JCRUidProvider;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
@@ -97,8 +98,10 @@ public class JCRHostSystem extends JamesImapHostSystem {
StoreRightManager storeRightManager = new StoreRightManager(mf, aclResolver, groupMembershipResolver);
DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mf, storeRightManager);
mailboxManager = new JCRMailboxManager(mf, authenticator, authorizator, new JVMMailboxPathLocker(), messageParser,
- new DefaultMessageId.Factory(), mailboxEventDispatcher, delegatingListener, storeRightManager);
+ new DefaultMessageId.Factory(), mailboxEventDispatcher, delegatingListener,
+ annotationManager, storeRightManager);
mailboxManager.init();
final ImapProcessor defaultImapProcessorFactory =
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
index 1dbfbab..f6468d2 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
@@ -45,9 +45,11 @@ import org.apache.james.mailbox.jpa.mail.JPAUidProvider;
import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
import org.apache.james.mailbox.jpa.quota.JPAPerUserMaxQuotaManager;
import org.apache.james.mailbox.jpa.quota.JpaCurrentQuotaManager;
-import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
+import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
@@ -95,11 +97,12 @@ public class JPAHostSystem extends JamesImapHostSystem {
MessageParser messageParser = new MessageParser();
StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver);
- boolean useStreaming = false;
- mailboxManager = new OpenJPAMailboxManager(mapperFactory, authenticator, authorizator, locker, useStreaming,
- messageParser, new DefaultMessageId.Factory(),
- MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX,
- MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, storeRightManager);
+ DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
+ MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
+ mailboxManager = new OpenJPAMailboxManager(mapperFactory, authenticator, authorizator,
+ messageParser, new DefaultMessageId.Factory(), delegatingListener,
+ mailboxEventDispatcher, annotationManager, storeRightManager);
DefaultQuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(mapperFactory);
JpaCurrentQuotaManager currentQuotaManager = new JpaCurrentQuotaManager(entityManagerFactory);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
index 794a163..d9a21e2 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
@@ -48,10 +48,12 @@ import org.apache.james.mailbox.jpa.mail.JPAModSeqProvider;
import org.apache.james.mailbox.jpa.mail.JPAUidProvider;
import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex;
-import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreRightManager;
+import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
@@ -118,12 +120,13 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
MessageParser messageParser = new MessageParser();
StoreRightManager storeRightManager = new StoreRightManager(factory, aclResolver, groupMembershipResolver);
- boolean useStreaming = false;
- mailboxManager = new OpenJPAMailboxManager(factory, authenticator, authorizator, locker, useStreaming,
- messageParser, messageIdFactory,
- MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX,
- MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE,
- storeRightManager);
+
+ DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
+ MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(factory, storeRightManager);
+ mailboxManager = new OpenJPAMailboxManager(factory, authenticator, authorizator,
+ messageParser, new DefaultMessageId.Factory(), delegatingListener,
+ mailboxEventDispatcher, annotationManager, storeRightManager);
LuceneMessageSearchIndex searchIndex = new LuceneMessageSearchIndex(factory, mailboxIdFactory, fsDirectory, messageIdFactory);
searchIndex.setEnableSuffixMatch(true);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
index 6f7799e..3730ee7 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.maildir.MaildirMailboxSessionMapperFactory;
import org.apache.james.mailbox.maildir.MaildirStore;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreRightManager;
import org.apache.james.mailbox.store.StoreSubscriptionManager;
@@ -75,9 +76,10 @@ public class MaildirHostSystem extends JamesImapHostSystem {
DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver);
+ StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mailboxSessionMapperFactory, storeRightManager);
mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, authenticator, authorizator, locker,
- messageParser, new DefaultMessageId.Factory(), mailboxEventDispatcher,
- delegatingListener, storeRightManager);
+ messageParser, new DefaultMessageId.Factory(), annotationManager,
+ mailboxEventDispatcher, delegatingListener, storeRightManager);
mailboxManager.init();
final ImapProcessor defaultImapProcessorFactory =
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/server/container/mailbox-adapter/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/pom.xml b/server/container/mailbox-adapter/pom.xml
index 08a39a8..1d17b85 100644
--- a/server/container/mailbox-adapter/pom.xml
+++ b/server/container/mailbox-adapter/pom.xml
@@ -39,6 +39,12 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-maildir</artifactId>
</dependency>
<dependency>
@@ -48,6 +54,12 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-memory</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-store</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
index 380a09f..7fc5e45 100644
--- a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
+++ b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
@@ -29,24 +29,16 @@ import java.util.Iterator;
import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.exception.MailboxExistsException;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
-import org.apache.james.mailbox.store.FakeAuthenticator;
-import org.apache.james.mailbox.store.FakeAuthorizator;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.StoreMailboxManager;
-import org.apache.james.mailbox.store.StoreRightManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.mail.MessageMapper;
-import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
import org.junit.Before;
import org.junit.Test;
@@ -60,31 +52,15 @@ public class MailboxManagementTest {
public static final int LIMIT = 1;
private MailboxManagerManagement mailboxManagerManagement;
- private InMemoryMailboxSessionMapperFactory inMemoryMapperFactory;
+ private MailboxSessionMapperFactory mapperFactory;
private MailboxSession session;
@Before
public void setUp() throws Exception {
- inMemoryMapperFactory = new InMemoryMailboxSessionMapperFactory();
- StoreRightManager storeRightManager = new StoreRightManager(inMemoryMapperFactory,
- new UnionMailboxACLResolver(),
- new SimpleGroupMembershipResolver());
-
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- StoreMailboxManager mailboxManager = new StoreMailboxManager(
- inMemoryMapperFactory,
- new FakeAuthenticator(),
- FakeAuthorizator.defaultReject(),
- new JVMMailboxPathLocker(),
- new MessageParser(),
- new DefaultMessageId.Factory(),
- mailboxEventDispatcher,
- delegatingListener,
- storeRightManager);
-
- mailboxManager.init();
+ StoreMailboxManager mailboxManager = new InMemoryIntegrationResources()
+ .createMailboxManager(new SimpleGroupMembershipResolver());
+ mapperFactory = mailboxManager.getMapperFactory();
+
mailboxManagerManagement = new MailboxManagerManagement();
mailboxManagerManagement.setMailboxManager(mailboxManager);
session = mailboxManager.createSystemSession("TEST");
@@ -92,46 +68,46 @@ public class MailboxManagementTest {
@Test
public void deleteMailboxesShouldDeleteMailboxes() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
public void deleteMailboxesShouldDeleteInbox() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
public void deleteMailboxesShouldDeleteMailboxesChildren() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
public void deleteMailboxesShouldNotDeleteMailboxesBelongingToNotPrivateNamespace() throws Exception {
Mailbox mailbox = new SimpleMailbox(new MailboxPath("#top", USER, "name"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
}
@Test
public void deleteMailboxesShouldNotDeleteMailboxesBelongingToOtherUsers() throws Exception {
Mailbox mailbox = new SimpleMailbox(MailboxPath.forUser("userbis", "name"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
}
@Test
public void deleteMailboxesShouldDeleteMailboxesWithEmptyNames() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, ""), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, ""), UID_VALIDITY));
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test(expected = NullPointerException.class)
@@ -146,25 +122,25 @@ public class MailboxManagementTest {
@Test
public void deleteMailboxesShouldDeleteMultipleMailboxes() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
mailboxManagerManagement.deleteMailboxes(USER);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
public void createMailboxShouldCreateAMailbox() throws Exception {
mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).hasSize(1);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).findMailboxByPath(MailboxPath.forUser(USER, "name"))).isNotNull();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).hasSize(1);
+ assertThat(mapperFactory.createMailboxMapper(session).findMailboxByPath(MailboxPath.forUser(USER, "name"))).isNotNull();
}
@Test
public void createMailboxShouldThrowIfMailboxAlreadyExists() throws Exception {
MailboxPath path = MailboxPath.forUser(USER, "name");
Mailbox mailbox = new SimpleMailbox(path, UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
assertThatThrownBy(() -> mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER, "name"))
.isInstanceOf(RuntimeException.class)
@@ -175,9 +151,9 @@ public class MailboxManagementTest {
public void createMailboxShouldNotCreateAdditionalMailboxesIfMailboxAlreadyExists() throws Exception {
MailboxPath path = MailboxPath.forUser(USER, "name");
Mailbox mailbox = new SimpleMailbox(path, UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
}
@Test(expected = NullPointerException.class)
@@ -218,12 +194,12 @@ public class MailboxManagementTest {
Mailbox mailbox4 = new SimpleMailbox(MailboxPath.forUser(USER, "name4"), UID_VALIDITY);
Mailbox mailbox5 = new SimpleMailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY);
Mailbox mailbox6 = new SimpleMailbox(MailboxPath.forUser(USER, "INBOX.toto"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox1);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox2);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox3);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox4);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox5);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox6);
+ mapperFactory.createMailboxMapper(session).save(mailbox1);
+ mapperFactory.createMailboxMapper(session).save(mailbox2);
+ mapperFactory.createMailboxMapper(session).save(mailbox3);
+ mapperFactory.createMailboxMapper(session).save(mailbox4);
+ mapperFactory.createMailboxMapper(session).save(mailbox5);
+ mapperFactory.createMailboxMapper(session).save(mailbox6);
assertThat(mailboxManagerManagement.listMailboxes(USER)).containsOnly("name2", "name4", "INBOX", "INBOX.toto");
}
@@ -239,45 +215,45 @@ public class MailboxManagementTest {
@Test
public void deleteMailboxShouldDeleteGivenMailbox() throws Exception {
- inMemoryMapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
+ mapperFactory.createMailboxMapper(session).save(new SimpleMailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).isEmpty();
+ assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
public void deleteMailboxShouldNotDeleteGivenMailboxIfWrongNamespace() throws Exception {
Mailbox mailbox = new SimpleMailbox(new MailboxPath("#top", USER, "name"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@Test
public void deleteMailboxShouldNotDeleteGivenMailboxIfWrongUser() throws Exception {
Mailbox mailbox = new SimpleMailbox(MailboxPath.forUser("userbis", "name"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@Test
public void deleteMailboxShouldNotDeleteGivenMailboxIfWrongName() throws Exception {
Mailbox mailbox = new SimpleMailbox(MailboxPath.forUser(USER, "wrong_name"), UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
- assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
+ assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@Test
public void importEmlFileToMailboxShouldImportEmlFileToGivenMailbox() throws Exception {
Mailbox mailbox = new SimpleMailbox(MailboxPath.forUser(USER, "name"),
UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", emlpath);
- assertThat(inMemoryMapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(1);
- Iterator<MailboxMessage> iterator = inMemoryMapperFactory.getMessageMapper(session).findInMailbox(mailbox,
+ assertThat(mapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(1);
+ Iterator<MailboxMessage> iterator = mapperFactory.getMessageMapper(session).findInMailbox(mailbox,
MessageRange.all(), MessageMapper.FetchType.Full, LIMIT);
MailboxMessage mailboxMessage = iterator.next();
@@ -289,12 +265,12 @@ public class MailboxManagementTest {
public void importEmlFileToMailboxShouldNotImportEmlFileWithWrongPathToGivenMailbox() throws Exception {
Mailbox mailbox = new SimpleMailbox(MailboxPath.forUser(USER, "name"),
UID_VALIDITY);
- inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ mapperFactory.createMailboxMapper(session).save(mailbox);
String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", "wrong_path" + emlpath);
- assertThat(inMemoryMapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(0);
- Iterator<MailboxMessage> iterator = inMemoryMapperFactory.getMessageMapper(session).findInMailbox(mailbox,
+ assertThat(mapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(0);
+ Iterator<MailboxMessage> iterator = mapperFactory.getMessageMapper(session).findInMailbox(mailbox,
MessageRange.all(), MessageMapper.FetchType.Full, LIMIT);
assertThat(iterator.hasNext()).isFalse();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
index c18771b..200ca0d 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
@@ -27,21 +27,12 @@ import java.util.Collection;
import org.apache.james.core.MailAddress;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
-import org.apache.james.mailbox.inmemory.InMemoryMessageId;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.QuotaRoot;
-import org.apache.james.mailbox.store.FakeAuthenticator;
-import org.apache.james.mailbox.store.FakeAuthorizator;
-import org.apache.james.mailbox.store.NoMailboxPathLocker;
-import org.apache.james.mailbox.store.StoreRightManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
import org.apache.james.mailbox.store.quota.StoreQuotaManager;
@@ -56,31 +47,23 @@ public class IsOverQuotaTest {
private IsOverQuota testee;
private InMemoryPerUserMaxQuotaManager maxQuotaManager;
private DefaultQuotaRootResolver quotaRootResolver;
- private InMemoryMailboxManager mailboxManager;
+ private StoreMailboxManager mailboxManager;
private UsersRepository usersRepository;
@Before
public void setUp() throws Exception {
- InMemoryMailboxSessionMapperFactory factory = new InMemoryMailboxSessionMapperFactory();
- StoreRightManager storeRightManager = new StoreRightManager(factory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver());
+ mailboxManager = new InMemoryIntegrationResources().createMailboxManager(new SimpleGroupMembershipResolver());
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- mailboxManager = new InMemoryMailboxManager(factory, new FakeAuthenticator(), FakeAuthorizator.defaultReject(),
- new NoMailboxPathLocker(), new MessageParser(),
- new InMemoryMessageId.Factory(), mailboxEventDispatcher,
- delegatingListener, storeRightManager);
-
- quotaRootResolver = new DefaultQuotaRootResolver(factory);
+ quotaRootResolver = new DefaultQuotaRootResolver(mailboxManager.getMapperFactory());
maxQuotaManager = new InMemoryPerUserMaxQuotaManager();
- InMemoryCurrentQuotaManager currentQuotaManager = new InMemoryCurrentQuotaManager(new CurrentQuotaCalculator(factory, quotaRootResolver), mailboxManager);
+ CurrentQuotaCalculator quotaCalculator = new CurrentQuotaCalculator(mailboxManager.getMapperFactory(), quotaRootResolver);
+ InMemoryCurrentQuotaManager currentQuotaManager = new InMemoryCurrentQuotaManager(quotaCalculator, mailboxManager);
StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
usersRepository = mock(UsersRepository.class);
testee = new IsOverQuota(quotaRootResolver, quotaManager, mailboxManager, usersRepository);
mailboxManager.setQuotaRootResolver(quotaRootResolver);
mailboxManager.setQuotaManager(quotaManager);
- mailboxManager.init();
testee.init(FakeMatcherConfig.builder().matcherName("IsOverQuota").build());
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/server/protocols/protocols-pop3/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/pom.xml b/server/protocols/protocols-pop3/pom.xml
index c0fd0a5..be675b2 100644
--- a/server/protocols/protocols-pop3/pom.xml
+++ b/server/protocols/protocols-pop3/pom.xml
@@ -39,11 +39,23 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-api</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-memory</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>apache-james-mailbox-memory</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>apache-james-mailbox-store</artifactId>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9e7abcbe/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
index a0ff351..361a5bf 100644
--- a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
+++ b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
@@ -42,21 +42,12 @@ import org.apache.james.filesystem.api.mock.MockFileSystem;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.acl.GroupMembershipResolver;
-import org.apache.james.mailbox.acl.MailboxACLResolver;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.store.Authorizator;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.FakeAuthorizator;
import org.apache.james.mailbox.store.StoreMailboxManager;
-import org.apache.james.mailbox.store.StoreRightManager;
-import org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener;
-import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
-import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.pop3server.netty.POP3Server;
import org.apache.james.protocols.api.utils.ProtocolServerUtils;
import org.apache.james.protocols.lib.POP3BeforeSMTPHelper;
@@ -718,30 +709,17 @@ public class POP3ServerTest {
protected void setUpServiceManager() throws Exception {
protocolHandlerChain = new MockProtocolHandlerLoader();
protocolHandlerChain.put("usersrepository", UsersRepository.class, usersRepository);
-
- InMemoryMailboxSessionMapperFactory factory = new InMemoryMailboxSessionMapperFactory();
- MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
- GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
- MessageParser messageParser = new MessageParser();
- StoreRightManager storeRightManager = new StoreRightManager(factory, aclResolver, groupMembershipResolver);
-
- DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener();
- MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener);
- mailboxManager = new StoreMailboxManager(factory, (userid, passwd) -> {
- try {
- return usersRepository.test(userid, passwd.toString());
- } catch (UsersRepositoryException e) {
- e.printStackTrace();
- return false;
- }
- }, (userId, otherUserId) -> Authorizator.AuthorizationState.NOT_ADMIN,
- new JVMMailboxPathLocker(),
- messageParser,
- new DefaultMessageId.Factory(),
- mailboxEventDispatcher,
- delegatingListener,
- storeRightManager);
- mailboxManager.init();
+
+ mailboxManager = new InMemoryIntegrationResources()
+ .createMailboxManager(new SimpleGroupMembershipResolver(),
+ (userid, passwd) -> {
+ try {
+ return usersRepository.test(userid, passwd.toString());
+ } catch (UsersRepositoryException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }, FakeAuthorizator.defaultReject());
protocolHandlerChain.put("mailboxmanager", MailboxManager.class, mailboxManager);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org