JAMES-2186 MessageManager and MailboxManager should rely on RightManager
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/571b3b82 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/571b3b82 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/571b3b82 Branch: refs/heads/master Commit: 571b3b82d4ed7936b6121fc0d513e4d4e6f6a15b Parents: 010f4ef Author: Antoine Duprat <[email protected]> Authored: Fri Oct 20 16:50:50 2017 +0200 Committer: Raphael Ouazana <[email protected]> Committed: Wed Oct 25 17:40:11 2017 +0200 ---------------------------------------------------------------------- .../cassandra/CassandraMailboxManager.java | 25 ++- .../cassandra/CassandraMessageManager.java | 10 +- .../CassandraMailboxManagerProvider.java | 6 +- .../ElasticSearchIntegrationTest.java | 8 +- .../mailbox/hbase/HBaseMailboxManager.java | 31 ++-- .../mailbox/hbase/HBaseMessageManager.java | 23 ++- .../resources/META-INF/spring/mailbox-hbase.xml | 3 +- .../hbase/HBaseMailboxManagerStressTest.java | 7 +- .../mailbox/hbase/HBaseMailboxManagerTest.java | 7 +- .../james/mailbox/jcr/JCRMailboxManager.java | 31 ++-- .../james/mailbox/jcr/JCRMessageManager.java | 23 ++- .../resources/META-INF/spring/mailbox-jcr.xml | 3 +- .../mailbox/jcr/JCRMailboxManagerProvider.java | 6 +- .../james/mailbox/jpa/JPAMailboxManager.java | 30 ++-- .../james/mailbox/jpa/JPAMessageManager.java | 24 +-- .../jpa/openjpa/OpenJPAMailboxManager.java | 72 +++++---- .../jpa/openjpa/OpenJPAMessageManager.java | 33 ++-- .../resources/META-INF/spring/mailbox-jpa.xml | 8 +- .../mailbox/jpa/JpaMailboxManagerProvider.java | 6 +- .../search/LuceneMessageSearchIndexTest.java | 9 +- .../META-INF/spring/mailbox-maildir.xml | 11 +- .../maildir/MaildirMailboxManagerProvider.java | 6 +- .../inmemory/InMemoryMailboxManager.java | 29 ++-- .../inmemory/InMemoryMessageManager.java | 21 ++- .../META-INF/spring/mailbox-memory.xml | 11 +- .../inmemory/MemoryMailboxManagerProvider.java | 4 +- .../InMemoryMailboxManagerAttachmentTest.java | 9 +- .../manager/InMemoryIntegrationResources.java | 7 +- .../search/SimpleMessageSearchIndexTest.java | 10 +- .../META-INF/spring/spring-mailbox.xml | 7 + .../mailbox/store/StoreMessageManager.java | 40 +---- .../james/mailbox/store/StoreRightManager.java | 161 +++++++++++++++++++ .../StoreMailboxManagerAnnotationTest.java | 10 +- .../mailbox/store/StoreMailboxManagerTest.java | 4 +- .../mailbox/store/StoreMessageManagerTest.java | 68 -------- .../mailbox/store/StoreRightManagerTest.java | 68 ++++++++ .../james/mailbox/copier/MailboxCopierTest.java | 12 +- .../host/ElasticSearchHostSystem.java | 8 +- .../imapmailbox/hbase/host/HBaseHostSystem.java | 8 +- .../inmemory/host/InMemoryHostSystem.java | 4 +- .../mpt/imapmailbox/jcr/host/JCRHostSystem.java | 6 +- .../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 8 +- .../host/LuceneSearchHostSystem.java | 9 +- .../maildir/host/MaildirHostSystem.java | 6 +- .../adapter/mailbox/MailboxManagementTest.java | 11 +- .../transport/matchers/IsOverQuotaTest.java | 7 +- .../apache/james/pop3server/POP3ServerTest.java | 7 +- 47 files changed, 584 insertions(+), 333 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java index 57cfc9c..448c9d9 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java @@ -26,8 +26,6 @@ import javax.inject.Inject; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -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; @@ -39,6 +37,7 @@ import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.DelegatingMailboxListener; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; @@ -61,14 +60,13 @@ public class CassandraMailboxManager extends StoreMailboxManager { authenticator, authorizator, locker, - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), messageParser, messageIdFactory, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, mailboxEventDispatcher, - delegatingMailboxListener); + delegatingMailboxListener, + new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver())); this.locker = locker; this.mapperFactory = mapperFactory; } @@ -79,26 +77,24 @@ public class CassandraMailboxManager extends StoreMailboxManager { authenticator, authorizator, locker, - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), messageParser, - messageIdFactory); + messageIdFactory, + new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver())); this.locker = locker; this.mapperFactory = mapperFactory; } public CassandraMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, - MessageId.Factory messageIdFactory, int limitOfAnnotations, int limitAnnotationSize) { + MailboxPathLocker locker, MessageParser messageParser, + MessageId.Factory messageIdFactory, int limitOfAnnotations, int limitAnnotationSize, StoreRightManager storeRightManager) { super(mapperFactory, authenticator, authorizator, - aclResolver, - groupMembershipResolver, messageParser, messageIdFactory, limitOfAnnotations, - limitAnnotationSize); + limitAnnotationSize, + storeRightManager); this.locker = locker; this.mapperFactory = mapperFactory; } @@ -138,7 +134,8 @@ public class CassandraMailboxManager extends StoreMailboxManager { getMessageParser(), getMessageIdFactory(), getBatchSizes(), - getImmutableMailboxMessageFactory()); + getImmutableMailboxMessageFactory(), + getStoreRightManager()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java index 523cad8..31e7c17 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java @@ -25,8 +25,6 @@ import javax.mail.Flags; import org.apache.james.mailbox.MailboxPathLocker; 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.MailboxException; import org.apache.james.mailbox.model.MessageAttachment; import org.apache.james.mailbox.model.MessageId; @@ -35,6 +33,7 @@ import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -54,9 +53,10 @@ public class CassandraMessageManager extends StoreMessageManager { public CassandraMessageManager(CassandraMailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, - BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { + super(mapperFactory, index, dispatcher, locker, mailbox, + quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); this.mapperFactory = mapperFactory; } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java index 745d675..bc23445 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java @@ -29,6 +29,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.NoMailboxPathLocker; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import com.datastax.driver.core.Session; @@ -49,11 +50,12 @@ public class CassandraMailboxManagerProvider { MailboxACLResolver aclResolver = new UnionMailboxACLResolver(); GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); + StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver); Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; - CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(), aclResolver, groupMembershipResolver, - messageParser, messageIdFactory, LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE); + CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(), + messageParser, messageIdFactory, LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE, storeRightManager); try { manager.init(); } catch (MailboxException e) { http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java index 0b0013c..bb6adb8 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java @@ -55,6 +55,7 @@ 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.StoreMessageIdManager; +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; @@ -118,6 +119,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest MailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory(); InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory(); + StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver()); messageSearchIndex = new ElasticSearchListeningMessageSearchIndex(mapperFactory, new ElasticSearchIndexer(client, new DeleteByQueryPerformer(client, @@ -134,10 +136,9 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest new FakeAuthenticator(), FakeAuthorizator.defaultReject(), new JVMMailboxPathLocker(), - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), new MessageParser(), - messageIdFactory); + messageIdFactory, + storeRightManager); DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener(); MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener); storeMailboxManager.setDelegatingMailboxListener(delegatingListener); @@ -149,7 +150,6 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest messageIdFactory, new NoQuotaManager(), new DefaultQuotaRootResolver(mapperFactory)); - storeMailboxManager.setMessageSearchIndex(messageSearchIndex); storeMailboxManager.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java index 72889f1..be5d4d9 100644 --- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java +++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java @@ -22,8 +22,6 @@ import java.util.EnumSet; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.hbase.mail.HBaseMailboxMapper; import org.apache.james.mailbox.hbase.mail.model.HBaseMailbox; @@ -34,6 +32,7 @@ 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.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; 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; @@ -44,16 +43,23 @@ import org.apache.james.mailbox.store.transaction.Mapper; */ public class HBaseMailboxManager extends StoreMailboxManager { - public HBaseMailboxManager(HBaseMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + public HBaseMailboxManager(HBaseMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + super(mapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory, storeRightManager); } - public HBaseMailboxManager(HBaseMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + public HBaseMailboxManager(HBaseMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + super(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), messageParser, messageIdFactory, storeRightManager); } @Override @@ -87,13 +93,12 @@ public class HBaseMailboxManager extends StoreMailboxManager { getEventDispatcher(), getLocker(), mailboxRow, - getAclResolver(), - getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(), - getImmutableMailboxMessageFactory()); + getImmutableMailboxMessageFactory(), + getStoreRightManager()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMessageManager.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMessageManager.java index 0b1c054..076aa21 100644 --- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMessageManager.java +++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMessageManager.java @@ -22,8 +22,6 @@ import javax.mail.Flags; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.quota.QuotaManager; @@ -32,6 +30,7 @@ import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -43,12 +42,20 @@ import org.apache.james.mailbox.store.search.MessageSearchIndex; */ public class HBaseMessageManager extends StoreMessageManager { - public HBaseMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, - MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, QuotaManager quotaManager, - QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, - quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + public HBaseMessageManager(MailboxSessionMapperFactory mapperFactory, + MessageSearchIndex index, + MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, + Mailbox mailbox, + QuotaManager quotaManager, + QuotaRootResolver quotaRootResolver, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { + super(mapperFactory, index, dispatcher, locker, mailbox, quotaManager, + quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml b/mailbox/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml index 315a1b5..426ae6b 100644 --- a/mailbox/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml +++ b/mailbox/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml @@ -42,8 +42,7 @@ <constructor-arg index="1" ref="authenticator"/> <constructor-arg index="2" ref="authorizator"/> <constructor-arg index="3" ref="hbase-locker"/> - <constructor-arg index="4" ref="aclResolver"/> - <constructor-arg index="5" ref="groupMembershipResolver"/> + <constructor-arg index="4" ref="storeRightManager"/> <property name="quotaManager" ref="quotaManager"/> <property name="maxQuotaManager" ref="maxQuotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerStressTest.java b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerStressTest.java index b90ab27..4fb2025 100644 --- a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerStressTest.java +++ b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerStressTest.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.hbase.mail.HBaseUidProvider; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.After; @@ -61,16 +62,16 @@ public class HBaseMailboxManagerStressTest extends MailboxManagerStressTest { MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); HBaseMailboxSessionMapperFactory mapperFactory = new HBaseMailboxSessionMapperFactory(CLUSTER.getConf(), uidProvider, modSeqProvider, messageIdFactory); + StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver()); Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; HBaseMailboxManager manager = new HBaseMailboxManager(mapperFactory, noAuthenticator, noAuthorizator, - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), new MessageParser(), - messageIdFactory + messageIdFactory, + storeRightManager ); try { http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerTest.java b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerTest.java index 2bbaac5..f6f8ad2 100644 --- a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerTest.java +++ b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseMailboxManagerTest.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.hbase.mail.HBaseUidProvider; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.After; @@ -61,16 +62,16 @@ public class HBaseMailboxManagerTest extends MailboxManagerTest { MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); HBaseMailboxSessionMapperFactory mapperFactory = new HBaseMailboxSessionMapperFactory(CLUSTER.getConf(), uidProvider, modSeqProvider, messageIdFactory); + StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver()); Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; HBaseMailboxManager manager = new HBaseMailboxManager(mapperFactory, noAuthenticator, noAuthorizator, - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), new MessageParser(), - messageIdFactory + messageIdFactory, + storeRightManager ); try { http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java index 7ab1b4f..fb13206 100644 --- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java +++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java @@ -22,8 +22,6 @@ import java.util.EnumSet; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jcr.mail.model.JCRMailbox; import org.apache.james.mailbox.model.MailboxPath; @@ -33,6 +31,7 @@ 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.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -42,16 +41,23 @@ import org.apache.james.mailbox.store.mail.model.impl.MessageParser; */ public class JCRMailboxManager extends StoreMailboxManager implements JCRImapConstants { - public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), messageParser, messageIdFactory, storeRightManager); } - public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + public JCRMailboxManager(JCRMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + super(mapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory, storeRightManager); } @Override @@ -66,14 +72,13 @@ public class JCRMailboxManager extends StoreMailboxManager implements JCRImapCon getEventDispatcher(), getLocker(), (JCRMailbox) mailboxEntity, - getAclResolver(), - getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(), - getImmutableMailboxMessageFactory()); + getImmutableMailboxMessageFactory(), + getStoreRightManager()); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java index 08b4688..46e81a9 100644 --- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java +++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java @@ -26,8 +26,6 @@ import javax.mail.internet.SharedInputStream; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jcr.mail.model.JCRMailbox; import org.apache.james.mailbox.jcr.mail.model.JCRMailboxMessage; @@ -39,6 +37,7 @@ import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -51,13 +50,21 @@ import org.apache.james.mailbox.store.search.MessageSearchIndex; */ public class JCRMessageManager extends StoreMessageManager { - public JCRMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, - final MailboxEventDispatcher dispatcher, MailboxPathLocker locker, JCRMailbox mailbox, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) + public JCRMessageManager(MailboxSessionMapperFactory mapperFactory, + MessageSearchIndex index, + MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, + JCRMailbox mailbox, + QuotaManager quotaManager, + QuotaRootResolver quotaRootResolver, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, - quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + super(mapperFactory, index, dispatcher, locker, mailbox, quotaManager, + quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml b/mailbox/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml index ccc7451..4aff1cb 100644 --- a/mailbox/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml +++ b/mailbox/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml @@ -32,8 +32,7 @@ <constructor-arg index="1" ref="authenticator"/> <constructor-arg index="2" ref="authorizator"/> <constructor-arg index="3" ref="jcr-locker"/> - <constructor-arg index="4" ref="aclResolver"/> - <constructor-arg index="5" ref="groupMembershipResolver"/> + <constructor-arg index="4" ref="storeRightManager"/> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> <property name="quotaUpdater" ref="quotaUpdater"/> http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerProvider.java b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerProvider.java index e043676..09ed47a 100644 --- a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerProvider.java +++ b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerProvider.java @@ -31,6 +31,7 @@ import org.apache.james.mailbox.jcr.mail.JCRUidProvider; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.xml.sax.InputSource; @@ -64,8 +65,9 @@ public class JCRMailboxManagerProvider { Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; - JCRMailboxManager manager = new JCRMailboxManager(mf, noAuthenticator, noAuthorizator, locker, aclResolver, groupMembershipResolver, - messageParser, new DefaultMessageId.Factory()); + StoreRightManager storeRightManager = new StoreRightManager(mf, aclResolver, groupMembershipResolver); + JCRMailboxManager manager = new JCRMailboxManager(mf, noAuthenticator, noAuthorizator, locker, + messageParser, new DefaultMessageId.Factory(), storeRightManager); try { manager.init(); http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java index a3d4f16..2c61935 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java @@ -22,8 +22,6 @@ import java.util.EnumSet; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jpa.mail.JPAMailboxMapper; import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; @@ -32,6 +30,7 @@ import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.StoreMailboxManager; +import org.apache.james.mailbox.store.StoreRightManager; 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; @@ -42,18 +41,27 @@ import org.apache.james.mailbox.store.transaction.Mapper; public abstract class JPAMailboxManager extends StoreMailboxManager { public JPAMailboxManager(JPAMailboxSessionMapperFactory mailboxSessionMapperFactory, - Authenticator authenticator, Authorizator authorizator, MailboxPathLocker locker, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mailboxSessionMapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, - messageParser, messageIdFactory); + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + super(mailboxSessionMapperFactory, authenticator, authorizator, locker, + messageParser, messageIdFactory, storeRightManager); } public JPAMailboxManager(JPAMailboxSessionMapperFactory mailboxSessionMapperFactory, - Authenticator authenticator, Authorizator authorizator, MailboxPathLocker locker, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, - int limitAnnotation, int limitAnnotationSize) { - super(mailboxSessionMapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, - messageParser, messageIdFactory, limitAnnotation, limitAnnotationSize); + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + int limitAnnotation, + int limitAnnotationSize, + StoreRightManager storeRightManager) { + super(mailboxSessionMapperFactory, authenticator, authorizator, locker, + messageParser, messageIdFactory, limitAnnotation, limitAnnotationSize, storeRightManager); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMessageManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMessageManager.java index ee023ac..f5faca7 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMessageManager.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMessageManager.java @@ -26,8 +26,6 @@ import javax.mail.internet.SharedInputStream; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage; @@ -39,6 +37,7 @@ import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -51,14 +50,21 @@ import org.apache.james.mailbox.store.search.MessageSearchIndex; */ public class JPAMessageManager extends StoreMessageManager { - public JPAMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, - final MailboxEventDispatcher dispatcher, MailboxPathLocker locker, - final Mailbox mailbox, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, QuotaManager quotaManager, - QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { + public JPAMessageManager(MailboxSessionMapperFactory mapperFactory, + MessageSearchIndex index, + final MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, + final Mailbox mailbox, + QuotaManager quotaManager, + QuotaRootResolver quotaRootResolver, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, - quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + super(mapperFactory, index, dispatcher, locker, mailbox, + quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java index 7944ec4..52dc140 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java @@ -24,8 +24,6 @@ import javax.inject.Inject; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jpa.JPAMailboxManager; import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory; @@ -37,6 +35,7 @@ import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -48,12 +47,18 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { private final AdvancedFeature feature; - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, boolean useStreaming, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, - int annotationLimit, int annotationLimitSize) { - super(mapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, - messageIdFactory, annotationLimit, annotationLimitSize); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + boolean useStreaming, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + int annotationLimit, + int annotationLimitSize, + StoreRightManager storeRightManager) { + super(mapperFactory, authenticator, authorizator, locker, messageParser, + messageIdFactory, annotationLimit, annotationLimitSize, storeRightManager); if (useStreaming) { feature = AdvancedFeature.Streaming; } else { @@ -61,11 +66,16 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { } } - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, String encryptPass, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, - messageIdFactory); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MailboxPathLocker locker, + String encryptPass, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + super(mapperFactory, authenticator, authorizator, locker, messageParser, + messageIdFactory, storeRightManager); if (encryptPass != null) { EncryptDecryptHelper.init(encryptPass); feature = AdvancedFeature.Encryption; @@ -75,20 +85,27 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { } @Inject - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), false, aclResolver, - groupMembershipResolver, messageParser, messageIdFactory, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, - MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + StoreRightManager storeRightManager) { + this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), false, + messageParser, messageIdFactory, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, + MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, storeRightManager); } - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory, int annotationLimit, - int annotationLimitSize) { - this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), false, aclResolver, - groupMembershipResolver, messageParser, messageIdFactory, annotationLimit, annotationLimitSize); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, + Authenticator authenticator, + Authorizator authorizator, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + int annotationLimit, + int annotationLimitSize, + StoreRightManager storeRightManager) { + this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), false, + messageParser, messageIdFactory, annotationLimit, annotationLimitSize, storeRightManager); } @Override @@ -99,13 +116,12 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { getLocker(), mailboxRow, feature, - getAclResolver(), - getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(), - getImmutableMailboxMessageFactory()); + getImmutableMailboxMessageFactory(), + getStoreRightManager()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java index ca545d5..e02ce9e 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java @@ -26,8 +26,6 @@ import javax.mail.Flags; import javax.mail.internet.SharedInputStream; import org.apache.james.mailbox.MailboxPathLocker; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jpa.JPAMessageManager; import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; @@ -40,6 +38,7 @@ import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -61,23 +60,25 @@ public class OpenJPAMessageManager extends JPAMessageManager { } public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory, - MessageSearchIndex index,MailboxEventDispatcher dispatcher, - MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, - GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, - MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { - this(mapperFactory, index, dispatcher, locker, mailbox, AdvancedFeature.None, aclResolver, - groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + MessageSearchIndex index,MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, Mailbox mailbox, + QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, + MessageId.Factory messageIdFactory, BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { + this(mapperFactory, index, dispatcher, locker, mailbox, AdvancedFeature.None, + quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); } - public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory, - MessageSearchIndex index, MailboxEventDispatcher dispatcher, - MailboxPathLocker locker, Mailbox mailbox, AdvancedFeature f, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, - MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { + public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory, + MessageSearchIndex index, MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, Mailbox mailbox, AdvancedFeature f, + QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, + MessageId.Factory messageIdFactory, BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, StoreRightManager storeRightManager) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + super(mapperFactory, index, dispatcher, locker, mailbox, quotaManager, quotaRootResolver, + messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); this.feature = f; } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml index f8d4dd0..86d3966 100644 --- a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml +++ b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml @@ -31,14 +31,14 @@ <bean id="jpa-mailboxIdFactory" class="org.apache.james.mailbox.jpa.JPAId.Factory" /> + <bean id="jpa-mailboxmanager" class="org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager" init-method="init"> <constructor-arg index="0" ref="jpa-sessionMapperFactory"/> <constructor-arg index="1" ref="authenticator"/> <constructor-arg index="2" ref="authorizator"/> - <constructor-arg index="3" ref="aclResolver"/> - <constructor-arg index="4" ref="groupMembershipResolver"/> - <constructor-arg index="5" ref="messageParser"/> - <constructor-arg index="6" ref="messageIdFactory"/> + <constructor-arg index="3" ref="messageParser"/> + <constructor-arg index="4" ref="messageIdFactory"/> + <constructor-arg index="5" ref="storeRightManager" /> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> <property name="quotaUpdater" ref="quotaUpdater"/> http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java index a96995a..a9a0180 100644 --- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java +++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java @@ -33,6 +33,7 @@ import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -54,9 +55,10 @@ public class JpaMailboxManagerProvider { Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; + StoreRightManager storeRightManager = new StoreRightManager(mf, aclResolver, groupMembershipResolver); OpenJPAMailboxManager openJPAMailboxManager = new OpenJPAMailboxManager(mf, noAuthenticator, noAuthorizator, - aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory(), LIMIT_ANNOTATIONS, - LIMIT_ANNOTATION_SIZE); + messageParser, new DefaultMessageId.Factory(), LIMIT_ANNOTATIONS, + LIMIT_ANNOTATION_SIZE, storeRightManager); try { openJPAMailboxManager.init(); http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java ---------------------------------------------------------------------- diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java index a60994b..c66bd57 100644 --- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java +++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java @@ -31,6 +31,7 @@ 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.StoreMessageIdManager; +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; @@ -50,15 +51,17 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest protected void initializeMailboxManager() throws Exception { TestMessageId.Factory messageIdFactory = new TestMessageId.Factory(); MailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory(); + UnionMailboxACLResolver aclResolver = new UnionMailboxACLResolver(); + SimpleGroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); + StoreRightManager storeRightManager = new StoreRightManager(mapperFactory, aclResolver, groupMembershipResolver); storeMailboxManager = new InMemoryMailboxManager( mapperFactory, new FakeAuthenticator(), FakeAuthorizator.defaultReject(), new JVMMailboxPathLocker(), - new UnionMailboxACLResolver(), - new SimpleGroupMembershipResolver(), new MessageParser(), - messageIdFactory); + messageIdFactory, + storeRightManager); DefaultDelegatingMailboxListener delegatingListener = new DefaultDelegatingMailboxListener(); MailboxEventDispatcher mailboxEventDispatcher = new MailboxEventDispatcher(delegatingListener); storeMailboxManager.setDelegatingMailboxListener(delegatingListener); http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml b/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml index b943781..ebbdd03 100644 --- a/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml +++ b/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml @@ -39,12 +39,11 @@ <constructor-arg index="1" ref="authenticator"/> <constructor-arg index="2" ref="authorizator"/> <constructor-arg index="3" ref="maildir-locker"/> - <constructor-arg index="4" ref="aclResolver"/> - <constructor-arg index="5" ref="groupMembershipResolver"/> - <constructor-arg index="6" ref="messageParser"/> - <constructor-arg index="7" ref="messageIdFactory" /> - <constructor-arg index="8" ref="dispatcher" /> - <constructor-arg index="9" ref="delegating-listener" /> + <constructor-arg index="4" ref="messageParser"/> + <constructor-arg index="5" ref="messageIdFactory" /> + <constructor-arg index="6" ref="dispatcher" /> + <constructor-arg index="7" ref="delegating-listener" /> + <constructor-arg index="8" ref="storeRightManager" /> <!-- <property name="messageSearchIndex" ref="lazyIndex"/> --> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java index cfe91bb..e36e020 100644 --- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java +++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerProvider.java @@ -30,6 +30,7 @@ import org.apache.james.mailbox.store.Authenticator; 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.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.rules.TemporaryFolder; @@ -42,11 +43,12 @@ public class MaildirMailboxManagerProvider { MailboxACLResolver aclResolver = new UnionMailboxACLResolver(); GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); + StoreRightManager storeRightManager = new StoreRightManager(mf, aclResolver, groupMembershipResolver); Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; - StoreMailboxManager manager = new StoreMailboxManager(mf, noAuthenticator, noAuthorizator, new JVMMailboxPathLocker(), aclResolver, - groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); + StoreMailboxManager manager = new StoreMailboxManager(mf, noAuthenticator, noAuthorizator, new JVMMailboxPathLocker(), + messageParser, new DefaultMessageId.Factory(), storeRightManager); manager.init(); return manager; http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java index 9aca010..99dffd2 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java @@ -25,8 +25,6 @@ import javax.inject.Inject; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MessageId; @@ -35,6 +33,7 @@ import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.DelegatingMailboxListener; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; @@ -45,24 +44,23 @@ public class InMemoryMailboxManager extends StoreMailboxManager { @Inject public InMemoryMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory, MailboxEventDispatcher dispatcher, - DelegatingMailboxListener delegatingMailboxListener) { - super(mailboxSessionMapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory, + MailboxPathLocker locker, MessageParser messageParser, MessageId.Factory messageIdFactory, MailboxEventDispatcher dispatcher, + DelegatingMailboxListener delegatingMailboxListener, StoreRightManager storeRightManager) { + super(mailboxSessionMapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, dispatcher, - delegatingMailboxListener); + delegatingMailboxListener, storeRightManager); } public InMemoryMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - MessageParser messageParser, MessageId.Factory messageIdFactory) { - super(mailboxSessionMapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + MailboxPathLocker locker, MessageParser messageParser, MessageId.Factory messageIdFactory, StoreRightManager storeRightManager) { + super(mailboxSessionMapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory, storeRightManager); } public InMemoryMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator, - MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, - MessageId.Factory messageIdFactory, int limitOfAnnotations, int limitAnnotationSize) { - super(mailboxSessionMapperFactory, authenticator, authorizator, aclResolver, groupMembershipResolver, messageParser, messageIdFactory, limitOfAnnotations, limitAnnotationSize); + MessageParser messageParser, MessageId.Factory messageIdFactory, + int limitOfAnnotations, int limitAnnotationSize, + StoreRightManager storeRightManager) { + super(mailboxSessionMapperFactory, authenticator, authorizator, messageParser, messageIdFactory, limitOfAnnotations, limitAnnotationSize, storeRightManager); } @Override @@ -92,13 +90,12 @@ public class InMemoryMailboxManager extends StoreMailboxManager { getEventDispatcher(), getLocker(), mailbox, - getAclResolver(), - getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(), - getImmutableMailboxMessageFactory()); + getImmutableMailboxMessageFactory(), + getStoreRightManager()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java index 6732816..21b9479 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java @@ -6,8 +6,6 @@ import javax.mail.Flags; import org.apache.james.mailbox.MailboxPathLocker; import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.acl.GroupMembershipResolver; -import org.apache.james.mailbox.acl.MailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MessageAttachment; import org.apache.james.mailbox.model.MessageId; @@ -17,6 +15,7 @@ import org.apache.james.mailbox.store.BatchSizes; import org.apache.james.mailbox.store.ImmutableMailboxMessage; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMessageManager; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -29,10 +28,20 @@ public class InMemoryMessageManager extends StoreMessageManager { private InMemoryMailboxSessionMapperFactory mapperFactory; - public InMemoryMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, - MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory, BatchSizes batchSizes, ImmutableMailboxMessage.Factory immutableMailboxMessageFactory) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory); + public InMemoryMessageManager(MailboxSessionMapperFactory mapperFactory, + MessageSearchIndex index, + MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, + Mailbox mailbox, + QuotaManager quotaManager, + QuotaRootResolver quotaRootResolver, + MessageParser messageParser, + MessageId.Factory messageIdFactory, + BatchSizes batchSizes, + ImmutableMailboxMessage.Factory immutableMailboxMessageFactory, + StoreRightManager storeRightManager) throws MailboxException { + super(mapperFactory, index, dispatcher, locker, mailbox, quotaManager, quotaRootResolver, + messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager); this.mapperFactory = (InMemoryMailboxSessionMapperFactory) mapperFactory; } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml index d75ced9..0e3d011 100644 --- a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml +++ b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml @@ -36,12 +36,11 @@ <constructor-arg index="1" ref="authenticator"/> <constructor-arg index="2" ref="authorizator"/> <constructor-arg index="3" ref="memory-locker"/> - <constructor-arg index="4" ref="aclResolver"/> - <constructor-arg index="5" ref="groupMembershipResolver"/> - <constructor-arg index="6" ref="messageParser"/> - <constructor-arg index="7" ref="messageIdFactory" /> - <constructor-arg index="8" ref="dispatcher" /> - <constructor-arg index="9" ref="delegating-listener" /> + <constructor-arg index="4" ref="messageParser"/> + <constructor-arg index="5" ref="messageIdFactory" /> + <constructor-arg index="6" ref="dispatcher" /> + <constructor-arg index="7" ref="delegating-listener" /> + <constructor-arg index="8" ref="storeRightManager" /> <!-- <property name="messageSearchIndex" ref="lazyIndex"/> --> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java index 5cb7e2f..7438442 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java @@ -28,6 +28,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.FakeAuthenticator; import org.apache.james.mailbox.store.FakeAuthorizator; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import com.google.common.base.Throwables; @@ -42,9 +43,10 @@ public class MemoryMailboxManagerProvider { MessageParser messageParser = new MessageParser(); InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); + StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver); MessageId.Factory messageIdFactory = new InMemoryMessageId.Factory(); InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, new FakeAuthenticator(), FakeAuthorizator.defaultReject(), - aclResolver, groupMembershipResolver, messageParser, messageIdFactory, LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE); + messageParser, messageIdFactory, LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE, storeRightManager); try { mailboxManager.init(); http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java index d67f276..92bc78d 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java @@ -26,6 +26,7 @@ import static org.mockito.Mockito.when; import java.io.InputStream; import org.apache.james.mailbox.MailboxManager; +import org.apache.james.mailbox.acl.GroupMembershipResolver; import org.apache.james.mailbox.acl.UnionMailboxACLResolver; import org.apache.james.mailbox.inmemory.InMemoryMailboxManager; import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory; @@ -36,6 +37,7 @@ import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.NoMailboxPathLocker; +import org.apache.james.mailbox.store.StoreRightManager; import org.apache.james.mailbox.store.mail.AttachmentMapperFactory; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.Before; @@ -53,14 +55,17 @@ public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManager Authenticator noAuthenticator = null; Authorizator noAuthorizator = null; MessageId.Factory messageIdFactory = new InMemoryMessageId.Factory(); + GroupMembershipResolver groupMembershipResolver = null; + UnionMailboxACLResolver aclResolver = new UnionMailboxACLResolver(); + StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, aclResolver, groupMembershipResolver); mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(), - new UnionMailboxACLResolver(), null, new MessageParser(), messageIdFactory); + new MessageParser(), messageIdFactory, storeRightManager); mailboxManager.init(); MessageParser failingMessageParser = mock(MessageParser.class); when(failingMessageParser.retrieveAttachments(any(InputStream.class))) .thenThrow(new RuntimeException("Message parser set to fail")); parseFailingMailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(), - new UnionMailboxACLResolver(), null, failingMessageParser, messageIdFactory); + failingMessageParser, messageIdFactory, storeRightManager); parseFailingMailboxManager.init(); super.setUp(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/571b3b82/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java index 07e592f..f560727 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java @@ -39,6 +39,7 @@ import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.NoMailboxPathLocker; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreMessageIdManager; +import org.apache.james.mailbox.store.StoreRightManager; 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; @@ -56,15 +57,15 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM fakeAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS); fakeAuthenticator.addUser(ManagerTestResources.OTHER_USER, ManagerTestResources.OTHER_USER_PASS); InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); + StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), groupMembershipResolver); final StoreMailboxManager manager = new InMemoryMailboxManager( mailboxSessionMapperFactory, fakeAuthenticator, FakeAuthorizator.defaultReject(), new NoMailboxPathLocker(), - new UnionMailboxACLResolver(), - groupMembershipResolver, new MessageParser(), - new InMemoryMessageId.Factory()); + new InMemoryMessageId.Factory(), + storeRightManager); manager.init(); return manager; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
