http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java index 79786c1..ce48e91 100644 --- a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java +++ b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java @@ -38,6 +38,7 @@ import org.apache.james.mailbox.exception.MailboxException; 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.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.runner.RunWith; import org.xenei.junit.contract.Contract; @@ -87,7 +88,8 @@ public class JCRMailboxManagerTest extends MailboxManagerTest<JCRMailboxManager> GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - JCRMailboxManager manager = new JCRMailboxManager(mf, null, locker, aclResolver, groupMembershipResolver, messageParser); + JCRMailboxManager manager = new JCRMailboxManager(mf, null, locker, aclResolver, groupMembershipResolver, + messageParser, new DefaultMessageId.Factory()); try { manager.init();
http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 626f7dc..e2e8f68 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 @@ -28,6 +28,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.jpa.mail.JPAMailboxMapper; import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; import org.apache.james.mailbox.model.MailboxPath; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.mail.model.Mailbox; @@ -40,8 +41,9 @@ import org.apache.james.mailbox.store.transaction.TransactionalMapper; public abstract class JPAMailboxManager extends StoreMailboxManager { public JPAMailboxManager(JPAMailboxSessionMapperFactory mailboxSessionMapperFactory, - final Authenticator authenticator, MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - super(mailboxSessionMapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser); + final Authenticator authenticator, MailboxPathLocker locker, MailboxACLResolver aclResolver, + GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) { + super(mailboxSessionMapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 dbe718e..8f3c800 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 @@ -32,6 +32,7 @@ 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; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.quota.QuotaManager; import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; @@ -52,10 +53,10 @@ public class JPAMessageManager extends StoreMessageManager { final MailboxEventDispatcher dispatcher, MailboxPathLocker locker, final Mailbox mailbox, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, QuotaManager quotaManager, - QuotaRootResolver quotaRootResolver, MessageParser messageParser) throws MailboxException { + QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) throws MailboxException { super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, - quotaManager, quotaRootResolver, messageParser); + quotaManager, quotaRootResolver, messageParser, messageIdFactory); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java index f797157..37c6ed0 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java @@ -491,7 +491,7 @@ public abstract class AbstractJPAMailboxMessage implements MailboxMessage { @Override public MessageId getMessageId() { - return new DefaultMessageId(getMailboxId(), getUid()); + return new DefaultMessageId(); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 377d29d..637731c 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 @@ -29,6 +29,7 @@ import org.apache.james.mailbox.jpa.JPAMailboxManager; import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory; import org.apache.james.mailbox.jpa.mail.model.openjpa.EncryptDecryptHelper; import org.apache.james.mailbox.jpa.openjpa.OpenJPAMessageManager.AdvancedFeature; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreMessageManager; @@ -43,8 +44,10 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { private final AdvancedFeature feature; - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, MailboxPathLocker locker, boolean useStreaming, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - super(mapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, + MailboxPathLocker locker, boolean useStreaming, MailboxACLResolver aclResolver, + GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) { + super(mapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); if (useStreaming) { feature = AdvancedFeature.Streaming; } else { @@ -52,8 +55,10 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { } } - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, MailboxPathLocker locker, String encryptPass, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - super(mapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, + MailboxPathLocker locker, String encryptPass, MailboxACLResolver aclResolver, + GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) { + super(mapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); if (encryptPass != null) { EncryptDecryptHelper.init(encryptPass); feature = AdvancedFeature.Encryption; @@ -62,8 +67,10 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { } } - public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - this(mapperFactory, authenticator, new JVMMailboxPathLocker(), false, aclResolver, groupMembershipResolver, messageParser); + public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, + MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, + MessageParser messageParser, MessageId.Factory messageIdFactory) { + this(mapperFactory, authenticator, new JVMMailboxPathLocker(), false, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); } @Override @@ -78,6 +85,7 @@ public class OpenJPAMailboxManager extends JPAMailboxManager { getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), - getMessageParser()); + getMessageParser(), + getMessageIdFactory()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 7b60d43..cde1305 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 @@ -34,6 +34,7 @@ import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAEncryptedMailboxMessage; import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAStreamingMailboxMessage; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.quota.QuotaManager; import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; @@ -61,17 +62,20 @@ public class OpenJPAMessageManager extends JPAMessageManager { MessageSearchIndex index,MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser) throws MailboxException { - this(mapperFactory, index, dispatcher, locker, mailbox, AdvancedFeature.None, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser); + QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, + MessageId.Factory messageIdFactory) throws MailboxException { + this(mapperFactory, index, dispatcher, locker, mailbox, AdvancedFeature.None, aclResolver, + groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory); } public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, AdvancedFeature f, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, - QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser) throws MailboxException { + QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, + MessageId.Factory messageIdFactory) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser); + super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory); this.feature = f; } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 21caf57..ecb471f 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 @@ -37,11 +37,15 @@ <constructor-arg index="4" ref="aclResolver"/> <constructor-arg index="5" ref="groupMembershipResolver"/> <constructor-arg index="6" ref="messageParser"/> + <constructor-arg index="7" ref="jpa-messageIdFactory" /> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> <property name="quotaUpdater" ref="quotaUpdater"/> <property name="delegatingMailboxListener" ref="delegating-listener"/> </bean> + + <bean id="jpa-messageIdFactory" class="org.apache.james.mailbox.store.mail.model.DefaultMessageId.Factory" /> + <bean id ="jpa-subscriptionManager" class="org.apache.james.mailbox.jpa.JPASubscriptionManager"> <constructor-arg index="0" ref="jpa-sessionMapperFactory"/> </bean> http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java index b8c583a..c496704 100644 --- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java +++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java @@ -38,6 +38,7 @@ import org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage; import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager; import org.apache.james.mailbox.jpa.user.model.JPASubscription; import org.apache.james.mailbox.store.JVMMailboxPathLocker; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.apache.openjpa.persistence.OpenJPAPersistence; import org.junit.runner.RunWith; @@ -86,7 +87,7 @@ public class JPAMailboxManagerTest { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - openJPAMailboxManager = new OpenJPAMailboxManager(mf, null, aclResolver, groupMembershipResolver, messageParser); + openJPAMailboxManager = new OpenJPAMailboxManager(mf, null, aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); try { openJPAMailboxManager.init(); http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java ---------------------------------------------------------------------- diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java index a45e9fc..cc3e1b4 100644 --- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java +++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java @@ -47,6 +47,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL; import org.apache.james.mailbox.store.MessageBuilder; import org.apache.james.mailbox.store.SimpleMailboxMembership; import org.apache.james.mailbox.store.TestId; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.lucene.store.RAMDirectory; import org.junit.Before; @@ -106,23 +107,23 @@ public class LuceneMailboxMessageSearchIndexTest { headersTestSubject.put("Cc", "test211 <test21@localhost>, test6 <test6@foobar>"); uid1 = MessageUid.of(1); - SimpleMailboxMembership m = new SimpleMailboxMembership(mailbox.getMailboxId(), uid1, 0, new Date(), 200, new Flags(Flag.ANSWERED), "My Body".getBytes(), headersSubject); + SimpleMailboxMembership m = new SimpleMailboxMembership(new DefaultMessageId(), mailbox.getMailboxId(), uid1, 0, new Date(), 200, new Flags(Flag.ANSWERED), "My Body".getBytes(), headersSubject); index.add(null, mailbox, m); uid2 = MessageUid.of(1); - SimpleMailboxMembership m2 = new SimpleMailboxMembership(mailbox2.getMailboxId(), uid2, 0, new Date(), 20, new Flags(Flag.ANSWERED), "My Body".getBytes(), headersSubject); + SimpleMailboxMembership m2 = new SimpleMailboxMembership(new DefaultMessageId(), mailbox2.getMailboxId(), uid2, 0, new Date(), 20, new Flags(Flag.ANSWERED), "My Body".getBytes(), headersSubject); index.add(null, mailbox2, m2); uid3 = MessageUid.of(2); Calendar cal = Calendar.getInstance(); cal.set(1980, 2, 10); - SimpleMailboxMembership m3 = new SimpleMailboxMembership(mailbox.getMailboxId(), uid3, 0, cal.getTime(), 20, new Flags(Flag.DELETED), "My Otherbody".getBytes(), headersTest); + SimpleMailboxMembership m3 = new SimpleMailboxMembership(new DefaultMessageId(), mailbox.getMailboxId(), uid3, 0, cal.getTime(), 20, new Flags(Flag.DELETED), "My Otherbody".getBytes(), headersTest); index.add(null, mailbox, m3); uid4 = MessageUid.of(3); Calendar cal2 = Calendar.getInstance(); cal2.set(8000, 2, 10); - SimpleMailboxMembership m4 = new SimpleMailboxMembership(mailbox.getMailboxId(), uid4, 0, cal2.getTime(), 20, new Flags(Flag.DELETED), "My Otherbody2".getBytes(), headersTestSubject); + SimpleMailboxMembership m4 = new SimpleMailboxMembership(new DefaultMessageId(), mailbox.getMailboxId(), uid4, 0, cal2.getTime(), 20, new Flags(Flag.DELETED), "My Otherbody2".getBytes(), headersTestSubject); index.add(null, mailbox, m4); uid5 = MessageUid.of(10); http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 dd3bd62..0551ae8 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 @@ -25,9 +25,11 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.inmemory.InMemoryId; import org.apache.james.mailbox.inmemory.InMemoryMailboxManager; import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.FakeAuthenticator; +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.search.AbstractMessageSearchIndexTest; import org.apache.lucene.store.RAMDirectory; @@ -43,13 +45,15 @@ public class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest protected void initializeMailboxManager() throws Exception { MailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory(); messageSearchIndex = new LuceneMessageSearchIndex(mapperFactory, new InMemoryId.Factory(), new RAMDirectory()); + MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); storeMailboxManager = new InMemoryMailboxManager( mapperFactory, new FakeAuthenticator(), new JVMMailboxPathLocker(), new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), - new MessageParser()); + new MessageParser(), + messageIdFactory); storeMailboxManager.setMessageSearchIndex(messageSearchIndex); storeMailboxManager.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 5e369f8..aaa1062 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 @@ -40,12 +40,16 @@ <constructor-arg index="3" ref="aclResolver"/> <constructor-arg index="4" ref="groupMembershipResolver"/> <constructor-arg index="5" ref="messageParser"/> + <constructor-arg index="6" ref="maildir-messageIdFactory" /> <!-- <property name="messageSearchIndex" ref="lazyIndex"/> --> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> <property name="quotaUpdater" ref="quotaUpdater"/> <property name="delegatingMailboxListener" ref="delegating-listener"/> </bean> + + <bean id="maildir-messageIdFactory" class="org.apache.james.mailbox.store.mail.model.DefaultMessageId.Factory" /> + <bean id ="maildir-subscriptionManager" class="org.apache.james.mailbox.store.StoreSubscriptionManager"> <constructor-arg index="0" ref="maildir-sessionMapperFactory"/> </bean> http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTests.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTests.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTests.java index 1369f64..2c3a13d 100644 --- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTests.java +++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTests.java @@ -29,6 +29,7 @@ import org.apache.james.mailbox.acl.UnionMailboxACLResolver; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreMailboxManager; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.Ignore; import org.junit.Rule; @@ -58,7 +59,8 @@ public class MaildirMailboxManagerTests { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - StoreMailboxManager manager = new StoreMailboxManager(mf, null, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser); + StoreMailboxManager manager = new StoreMailboxManager(mf, null, new JVMMailboxPathLocker(), aclResolver, + groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); manager.init(); return manager; http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 78bac42..4f77b52 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 @@ -28,6 +28,7 @@ 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.store.Authenticator; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.StoreMailboxManager; @@ -38,8 +39,10 @@ import org.apache.james.mailbox.store.mail.model.impl.MessageParser; public class InMemoryMailboxManager extends StoreMailboxManager { @Inject - public InMemoryMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - super(mailboxSessionMapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser); + public InMemoryMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, + MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, + MessageParser messageParser, MessageId.Factory messageIdFactory) { + super(mailboxSessionMapperFactory, authenticator, locker, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); } @Override @@ -63,6 +66,7 @@ public class InMemoryMailboxManager extends StoreMailboxManager { getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), - getMessageParser()); + getMessageParser(), + getMessageIdFactory()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 667948a..a9448b6 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 @@ -7,6 +7,7 @@ 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; import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; @@ -18,8 +19,10 @@ import org.apache.james.mailbox.store.search.MessageSearchIndex; public class InMemoryMessageManager extends StoreMessageManager { - public InMemoryMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser) throws MailboxException { - super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser); + 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) throws MailboxException { + super(mapperFactory, index, dispatcher, locker, mailbox, aclResolver, groupMembershipResolver, quotaManager, quotaRootResolver, messageParser, messageIdFactory); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 5da789a..8789871 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,15 @@ <constructor-arg index="3" ref="aclResolver"/> <constructor-arg index="4" ref="groupMembershipResolver"/> <constructor-arg index="5" ref="messageParser"/> + <constructor-arg index="6" ref="memory-messageIdFactory" /> <!-- <property name="messageSearchIndex" ref="lazyIndex"/> --> <property name="quotaManager" ref="quotaManager"/> <property name="quotaRootResolver" ref="quotaRootResolver"/> <property name="quotaUpdater" ref="quotaUpdater"/> </bean> + <bean id="memory-messageIdFactory" class="org.apache.james.mailbox.store.mail.model.DefaultMessageId.Factory" /> + <bean id ="memory-subscriptionManager" class="org.apache.james.mailbox.store.StoreSubscriptionManager"> <constructor-arg index="0" ref="memory-sessionMapperFactory"/> </bean> http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java index 40de979..b3c8d19 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java @@ -24,8 +24,10 @@ 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.model.MessageId; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.FakeAuthenticator; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.runner.RunWith; import org.xenei.junit.contract.Contract; @@ -48,7 +50,9 @@ public class InMemoryMailboxManagerTest { MessageParser messageParser = new MessageParser(); InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); - InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, new FakeAuthenticator(), new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser); + MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); + InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, new FakeAuthenticator(), + new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser, messageIdFactory); try { mailboxManager.init(); http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 db95b61..f862e53 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 @@ -29,10 +29,12 @@ import org.apache.james.mailbox.MailboxManager; 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.model.MessageId; import org.apache.james.mailbox.store.AbstractMailboxManagerAttachmentTest; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.NoMailboxPathLocker; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManagerAttachmentTest { @@ -44,12 +46,15 @@ public class InMemoryMailboxManagerAttachmentTest extends AbstractMailboxManager public InMemoryMailboxManagerAttachmentTest() throws Exception { mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); Authenticator noAuthenticator = null; - mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, new NoMailboxPathLocker(), new UnionMailboxACLResolver(), null, new MessageParser()); + MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); + mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, new NoMailboxPathLocker(), + new UnionMailboxACLResolver(), null, new MessageParser(), messageIdFactory); 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, new NoMailboxPathLocker(), new UnionMailboxACLResolver(), null, failingMessageParser); + parseFailingMailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, noAuthenticator, new NoMailboxPathLocker(), + new UnionMailboxACLResolver(), null, failingMessageParser, messageIdFactory); parseFailingMailboxManager.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java index cc50512..815744c 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java @@ -6,18 +6,22 @@ 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.mock.MockMailboxSession; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.mail.AnnotationMapper; import org.apache.james.mailbox.store.mail.AttachmentMapper; import org.apache.james.mailbox.store.mail.MailboxMapper; import org.apache.james.mailbox.store.mail.MessageMapper; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.MapperProvider; public class InMemoryMapperProvider implements MapperProvider { private final Random random; + private MessageId.Factory messageIdFactory; public InMemoryMapperProvider() { random = new Random(); + messageIdFactory = new DefaultMessageId.Factory(); } @Override @@ -59,4 +63,9 @@ public class InMemoryMapperProvider implements MapperProvider { public AnnotationMapper createAnnotationMapper() throws MailboxException { return new InMemoryMailboxSessionMapperFactory().createAnnotationMapper(new MockMailboxSession("user")); } + + @Override + public MessageId generateMessageId() { + return messageIdFactory.generate(); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 a47965f..508f2d7 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 @@ -47,6 +47,7 @@ import org.apache.james.mailbox.quota.QuotaRootResolver; import org.apache.james.mailbox.store.FakeAuthenticator; import org.apache.james.mailbox.store.NoMailboxPathLocker; import org.apache.james.mailbox.store.StoreMailboxManager; +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.CurrentQuotaCalculator; import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver; @@ -63,13 +64,15 @@ public class InMemoryIntegrationResources implements IntegrationResources { FakeAuthenticator mockAuthenticator = new FakeAuthenticator(); mockAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS); InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); + MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); final StoreMailboxManager manager = new InMemoryMailboxManager( mailboxSessionMapperFactory, mockAuthenticator, new NoMailboxPathLocker(), new UnionMailboxACLResolver(), groupMembershipResolver, - new MessageParser()); + new MessageParser(), + messageIdFactory); manager.init(); return manager; } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java ---------------------------------------------------------------------- diff --git a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java index 34e351d..b104f7a 100644 --- a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java +++ b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java @@ -24,9 +24,11 @@ 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.model.MessageId; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; import org.apache.james.mailbox.store.FakeAuthenticator; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; import org.junit.Ignore; @@ -40,13 +42,15 @@ public class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest protected void initializeMailboxManager() throws Exception { MailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory(); messageSearchIndex = new SimpleMessageSearchIndex(mapperFactory, mapperFactory); + MessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); storeMailboxManager = new InMemoryMailboxManager( mapperFactory, new FakeAuthenticator(), new JVMMailboxPathLocker(), new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), - new MessageParser()); + new MessageParser(), + messageIdFactory); storeMailboxManager.setMessageSearchIndex(messageSearchIndex); storeMailboxManager.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java index 6b79611..4b8d7d7 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java @@ -34,6 +34,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.Content; import org.apache.james.mailbox.model.Headers; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageResult; import org.apache.james.mailbox.model.MimeDescriptor; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -72,6 +73,11 @@ public class MessageResultImpl implements MessageResult { } @Override + public MessageId getMessageId() { + return message.getMessageId(); + } + + @Override public Date getInternalDate() { return message.getInternalDate(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java index 7f01b2c..19ad052 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java @@ -24,6 +24,7 @@ import java.util.Date; import javax.mail.Flags; import org.apache.james.mailbox.MessageUid; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageMetaData; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -36,17 +37,19 @@ public class SimpleMessageMetaData implements MessageMetaData{ private final long size; private final Date internalDate; private final long modSeq; + private final MessageId messageId; - public SimpleMessageMetaData(MessageUid uid, long modSeq, Flags flags, long size, Date internalDate) { + public SimpleMessageMetaData(MessageUid uid, long modSeq, Flags flags, long size, Date internalDate, MessageId messageId) { this.uid = uid; this.flags = flags; this.size = size; this.modSeq = modSeq; this.internalDate = internalDate; + this.messageId = messageId; } public SimpleMessageMetaData(MailboxMessage message) { - this(message.getUid(), message.getModSeq(), message.createFlags(), message.getFullContentOctets(), message.getInternalDate()); + this(message.getUid(), message.getModSeq(), message.createFlags(), message.getFullContentOctets(), message.getInternalDate(), message.getMessageId()); } @Override @@ -70,6 +73,11 @@ public class SimpleMessageMetaData implements MessageMetaData{ } @Override + public MessageId getMessageId() { + return messageId; + } + + @Override public boolean equals(Object obj) { if(obj instanceof SimpleMessageMetaData) { return uid.equals(((SimpleMessageMetaData) obj).getUid()); http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 9512849..1a54ee4 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 @@ -58,6 +58,8 @@ import org.apache.james.mailbox.model.MailboxMetaData; import org.apache.james.mailbox.model.MailboxMetaData.Selectability; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MailboxQuery; +import org.apache.james.mailbox.model.MessageId; +import org.apache.james.mailbox.model.MessageId.Factory; import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.MultimailboxesSearchQuery; import org.apache.james.mailbox.model.SimpleMailboxACL; @@ -126,22 +128,32 @@ public class StoreMailboxManager implements MailboxManager { private int fetchBatchSize = DEFAULT_FETCH_BATCH_SIZE; private final MessageParser messageParser; + private final Factory messageIdFactory; @Inject - public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { + public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, + MailboxPathLocker locker, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, + MessageParser messageParser, MessageId.Factory messageIdFactory) { this.authenticator = authenticator; this.locker = locker; this.mailboxSessionMapperFactory = mailboxSessionMapperFactory; this.aclResolver = aclResolver; this.groupMembershipResolver = groupMembershipResolver; this.messageParser = messageParser; + this.messageIdFactory = messageIdFactory; } - public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser) { - this(mailboxSessionMapperFactory, authenticator, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser); + public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, + MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, MessageParser messageParser, + MessageId.Factory messageIdFactory) { + this(mailboxSessionMapperFactory, authenticator, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser, messageIdFactory); } + protected Factory getMessageIdFactory() { + return messageIdFactory; + } + public void setMailboxSessionIdGenerator(MailboxSessionIdGenerator idGenerator) { this.idGenerator = idGenerator; } @@ -389,7 +401,9 @@ public class StoreMailboxManager implements MailboxManager { * @return storeMailbox */ protected StoreMessageManager createMessageManager(Mailbox mailbox, MailboxSession session) throws MailboxException { - return new StoreMessageManager(getMapperFactory(), getMessageSearchIndex(), getEventDispatcher(), getLocker(), mailbox, getAclResolver(), getGroupMembershipResolver(), getQuotaManager(), getQuotaRootResolver(), getMessageParser()); + return new StoreMessageManager(getMapperFactory(), getMessageSearchIndex(), getEventDispatcher(), + getLocker(), mailbox, getAclResolver(), getGroupMembershipResolver(), getQuotaManager(), + getQuotaRootResolver(), getMessageParser(), getMessageIdFactory()); } /** http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java index c794073..4a394d3 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java @@ -57,6 +57,8 @@ import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; +import org.apache.james.mailbox.model.MessageId.Factory; import org.apache.james.mailbox.model.MessageMetaData; import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.MessageResult.FetchGroup; @@ -70,7 +72,6 @@ import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.AttachmentMapper; import org.apache.james.mailbox.store.mail.MessageMapper; import org.apache.james.mailbox.store.mail.MessageMapper.FetchType; -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; @@ -147,10 +148,13 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana private final MessageParser messageParser; + private final Factory messageIdFactory; + private int fetchBatchSize; - public StoreMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, - final GroupMembershipResolver groupMembershipResolver, QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser) throws MailboxException { + public StoreMessageManager(MailboxSessionMapperFactory mapperFactory, MessageSearchIndex index, MailboxEventDispatcher dispatcher, + MailboxPathLocker locker, Mailbox mailbox, MailboxACLResolver aclResolver, GroupMembershipResolver groupMembershipResolver, + QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser, MessageId.Factory messageIdFactory) throws MailboxException { this.mailbox = mailbox; this.dispatcher = dispatcher; this.mapperFactory = mapperFactory; @@ -161,12 +165,17 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana this.quotaManager = quotaManager; this.quotaRootResolver = quotaRootResolver; this.messageParser = messageParser; + this.messageIdFactory = messageIdFactory; } public void setFetchBatchSize(int fetchBatchSize) { this.fetchBatchSize = fetchBatchSize; } + protected Factory getMessageIdFactory() { + return messageIdFactory; + } + /** * Return the {@link MailboxPathLocker} * @@ -398,7 +407,7 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana MailboxId mailboxId = getMailboxEntity().getMailboxId(); uids.put(messageUid, data); dispatcher.added(mailboxSession, uids, getMailboxEntity()); - return new ComposedMessageId(mailboxId, new DefaultMessageId(mailboxId, messageUid), messageUid); + return new ComposedMessageId(mailboxId, data.getMessageId(), messageUid); } }, true); @@ -435,18 +444,9 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana /** * Create a new {@link MailboxMessage} for the given data - * - * @param internalDate - * @param size - * @param bodyStartOctet - * @param content - * @param flags - * @param attachments - * @return membership - * @throws MailboxException */ protected MailboxMessage createMessage(Date internalDate, int size, int bodyStartOctet, SharedInputStream content, Flags flags, PropertyBuilder propertyBuilder, List<MessageAttachment> attachments) throws MailboxException { - return new SimpleMailboxMessage(internalDate, size, bodyStartOctet, content, flags, propertyBuilder, getMailboxEntity().getMailboxId(), attachments); + return new SimpleMailboxMessage(messageIdFactory.generate(), internalDate, size, bodyStartOctet, content, flags, propertyBuilder, getMailboxEntity().getMailboxId(), attachments); } /** http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java index 84ea6ce..93e8bda 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java @@ -30,6 +30,7 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.Content; import org.apache.james.mailbox.model.Headers; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.MessageRange.Type; import org.apache.james.mailbox.model.MessageResult; @@ -195,6 +196,8 @@ public class StoreMessageResultIterator implements MessageResultIterator { private final Flags flags; + private final MessageId messageId; + private long modSeq = -1; public UnloadedMessageResult(MailboxMessage message, MailboxException exception) { @@ -204,6 +207,7 @@ public class StoreMessageResultIterator implements MessageResultIterator { uid = message.getUid(); flags = message.createFlags(); modSeq = message.getModSeq(); + messageId = message.getMessageId(); this.exception = exception; } @@ -231,13 +235,18 @@ public class StoreMessageResultIterator implements MessageResultIterator { return uid; } + @Override + public MessageId getMessageId() { + return messageId; + } + public int compareTo(MessageResult that) { return uid.compareTo(that.getUid()); } @Override public int hashCode() { - return Objects.hashCode(exception, internalDate, size, uid, flags, modSeq); + return Objects.hashCode(exception, internalDate, size, uid, flags, modSeq, messageId); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MessageMetaDataDataTransferObject.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MessageMetaDataDataTransferObject.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MessageMetaDataDataTransferObject.java index 01f191f..94473ba 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MessageMetaDataDataTransferObject.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MessageMetaDataDataTransferObject.java @@ -19,18 +19,19 @@ package org.apache.james.mailbox.store.json.event.dto; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.model.MessageMetaData; import org.apache.james.mailbox.store.SimpleMessageMetaData; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; public class MessageMetaDataDataTransferObject { @JsonProperty() @@ -85,10 +86,10 @@ public class MessageMetaDataDataTransferObject { @JsonIgnore public SimpleMessageMetaData getMetadata() { try { - return new SimpleMessageMetaData(MessageUid.of(uid), modseq, flags.getFlags(), size, parse(date)); + return new SimpleMessageMetaData(MessageUid.of(uid), modseq, flags.getFlags(), size, parse(date), new DefaultMessageId()); //FIXME } catch(ParseException parseException) { LOG.error("Parse exception while parsing date while deserializing metadata upon event serialization. Using nowadays date instead."); - return new SimpleMessageMetaData(MessageUid.of(uid), modseq, flags.getFlags(), size, new Date()); + return new SimpleMessageMetaData(MessageUid.of(uid), modseq, flags.getFlags(), size, new Date(), new DefaultMessageId()); //FIXME } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java index 45e6087..f3655b1 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java @@ -1,59 +1,21 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ package org.apache.james.mailbox.store.mail.model; -import org.apache.james.mailbox.MessageUid; -import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MessageId; -import com.google.common.base.Objects; -import com.google.common.base.Preconditions; - public class DefaultMessageId implements MessageId { - private final MailboxId mailboxId; - private final MessageUid messageUid; + public static class Factory implements MessageId.Factory { - public DefaultMessageId(MailboxId mailboxId, MessageUid messageUid) { - Preconditions.checkNotNull(mailboxId); - this.mailboxId = mailboxId; - this.messageUid = messageUid; + @Override + public MessageId generate() { + return new DefaultMessageId(); + } + } - + @Override public String serialize() { - return String.format("%s-%d", mailboxId.serialize(), messageUid.asLong()); - } - - @Override - public final boolean equals(Object obj) { - if (obj instanceof DefaultMessageId) { - DefaultMessageId other = (DefaultMessageId) obj; - return Objects.equal(mailboxId, other.mailboxId) && - Objects.equal(messageUid, other.messageUid); - - } - return false; + throw new IllegalStateException("Capabilities should prevent calling this method"); } - @Override - public final int hashCode() { - return Objects.hashCode(mailboxId, messageUid); - } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java index a0128b1..3601005 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java @@ -26,6 +26,7 @@ import java.util.List; import javax.mail.Flags; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; public abstract class DelegatingMailboxMessage implements MailboxMessage { @@ -106,8 +107,8 @@ public abstract class DelegatingMailboxMessage implements MailboxMessage { } @Override - public DefaultMessageId getMessageId() { - return new DefaultMessageId(getMailboxId(), getUid()); + public MessageId getMessageId() { + return message.getMessageId(); } public Message getMessage() { http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java index 04d660f..b17f66c 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java @@ -32,6 +32,7 @@ import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MessageAttachment; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.mail.model.DelegatingMailboxMessage; import org.apache.james.mailbox.store.mail.model.MailboxMessage; @@ -50,7 +51,7 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage { int bodyStartOctet = Ints.checkedCast(original.getFullContentOctets() - original.getBodyOctets()); PropertyBuilder pBuilder = new PropertyBuilder(original.getProperties()); pBuilder.setTextualLineCount(original.getTextualLineCount()); - return new SimpleMailboxMessage(internalDate, size, bodyStartOctet, content, flags, pBuilder, mailboxId, original.getAttachments()); + return new SimpleMailboxMessage(original.getMessageId(), internalDate, size, bodyStartOctet, content, flags, pBuilder, mailboxId, original.getAttachments()); } private static SharedByteArrayInputStream copyFullContent(MailboxMessage original) throws MailboxException { @@ -72,10 +73,11 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage { private String[] userFlags; private long modSeq; - public SimpleMailboxMessage(Date internalDate, long size, int bodyStartOctet, + public SimpleMailboxMessage(MessageId messageId, Date internalDate, long size, int bodyStartOctet, SharedInputStream content, Flags flags, PropertyBuilder propertyBuilder, MailboxId mailboxId, List<MessageAttachment> attachments) { super(new SimpleMessage( + messageId, content, size, internalDate, propertyBuilder.getSubType(), propertyBuilder.getMediaType(), bodyStartOctet, @@ -89,10 +91,10 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage { this.userFlags = flags.getUserFlags(); } - public SimpleMailboxMessage(Date internalDate, long size, int bodyStartOctet, + public SimpleMailboxMessage(MessageId messageId, Date internalDate, long size, int bodyStartOctet, SharedInputStream content, Flags flags, PropertyBuilder propertyBuilder, MailboxId mailboxId) { - this(internalDate, size, bodyStartOctet, + this(messageId, internalDate, size, bodyStartOctet, content, flags, propertyBuilder, mailboxId, ImmutableList.<MessageAttachment>of()); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java index b517c26..71ad13e 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java @@ -34,6 +34,7 @@ import com.google.common.collect.ImmutableList; public class SimpleMessage implements Message { + private final MessageId messageId; private final String subType; private final String mediaType; private final SharedInputStream content; @@ -44,7 +45,8 @@ public class SimpleMessage implements Message { private final List<Property> properties; private final List<MessageAttachment> attachments; - public SimpleMessage(SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties, List<MessageAttachment> attachments) { + public SimpleMessage(MessageId messageId, SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties, List<MessageAttachment> attachments) { + this.messageId = messageId; this.subType = subType; this.mediaType = mediaType; this.content = content; @@ -56,13 +58,13 @@ public class SimpleMessage implements Message { this.attachments = attachments; } - public SimpleMessage(SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties) { - this(content, size, internalDate, subType, mediaType, bodyStartOctet, textualLineCount, properties, ImmutableList.<MessageAttachment>of()); + public SimpleMessage(MessageId messageId, SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties) { + this(messageId, content, size, internalDate, subType, mediaType, bodyStartOctet, textualLineCount, properties, ImmutableList.<MessageAttachment>of()); } @Override public MessageId getMessageId() { - return null; + return messageId; } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java index 61df70d..d4adb4d 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java @@ -25,6 +25,7 @@ import java.util.Map; import javax.mail.Flags; import org.apache.james.mailbox.MessageUid; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.MailboxMessage; public class MessageBuilder { @@ -39,7 +40,7 @@ public class MessageBuilder { public int lineNumber = 0; public MailboxMessage build() throws Exception { - return new SimpleMailboxMembership(mailboxId, uid, -1, internalDate, size, flags, body, headers); + return new SimpleMailboxMembership(new DefaultMessageId(), mailboxId, uid, -1, internalDate, size, flags, body, headers); } public void header(String field, String value) { http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java index 6b18190..e250e86 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java @@ -38,7 +38,7 @@ import javax.mail.Flags; import org.apache.commons.lang.NotImplementedException; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.model.MessageAttachment; -import org.apache.james.mailbox.store.mail.model.DefaultMessageId; +import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.mail.model.Property; @@ -58,9 +58,12 @@ public class SimpleMailboxMembership implements MailboxMessage { public boolean flagged = false; public boolean seen = false; - public SimpleMailboxMembership(TestId mailboxId, MessageUid uid, long modSeq, Date internalDate, int size, + private MessageId messageId; + + public SimpleMailboxMembership(MessageId messageId, TestId mailboxId, MessageUid uid, long modSeq, Date internalDate, int size, Flags flags, byte[] body, Map<String, String> headers) throws Exception { super(); + this.messageId = messageId; this.mailboxId = mailboxId; this.uid = uid; this.internalDate = internalDate; @@ -263,8 +266,8 @@ public class SimpleMailboxMembership implements MailboxMessage { } @Override - public DefaultMessageId getMessageId() { - return new DefaultMessageId(getMailboxId(), getUid()); + public MessageId getMessageId() { + return messageId; } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 e5003e5..a38c762 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 @@ -41,6 +41,7 @@ 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.mail.AnnotationMapper; import org.apache.james.mailbox.store.mail.MailboxMapper; import org.apache.james.mailbox.store.mail.model.Mailbox; @@ -76,6 +77,7 @@ public class StoreMailboxManagerAnnotationTest { @Mock private Mailbox mailbox; @Mock private MessageParser messageParser; @Mock private MailboxId mailboxId; + @Mock private MessageId.Factory messageIdFactory; @InjectMocks private StoreMailboxManager storeMailboxManager; @@ -90,7 +92,7 @@ public class StoreMailboxManagerAnnotationTest { when(mailbox.getMailboxId()).thenReturn(mailboxId); when(mailboxMapper.findMailboxByPath(eq(mailboxPath))).thenReturn(mailbox); - storeMailboxManager = spy(new StoreMailboxManager(mailboxSessionMapperFactory, authenticator, aclResolver, groupMembershipResolver, messageParser)); + storeMailboxManager = spy(new StoreMailboxManager(mailboxSessionMapperFactory, authenticator, aclResolver, groupMembershipResolver, messageParser, messageIdFactory)); storeMailboxManager.init(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/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 a81be1a..7f55608 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 @@ -19,10 +19,11 @@ package org.apache.james.mailbox.store; -import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.assertj.core.api.Assertions.assertThat; + import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageManager; import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver; @@ -32,6 +33,8 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException; import org.apache.james.mailbox.mock.MockMailboxSession; 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.model.MessageId.Factory; 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; @@ -55,7 +58,10 @@ public class StoreMailboxManagerTest { mockedMailboxMapper = mock(MailboxMapper.class); when(mockedMapperFactory.getMailboxMapper(mockedMailboxSession)) .thenReturn(mockedMailboxMapper); - storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, new FakeAuthenticator(), new JVMMailboxPathLocker(), new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), new MessageParser()); + Factory messageIdFactory = mock(MessageId.Factory.class); + storeMailboxManager = new StoreMailboxManager(mockedMapperFactory, new FakeAuthenticator(), + new JVMMailboxPathLocker(), new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), + new MessageParser(), messageIdFactory); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java index 77a3523..3d35013 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.model.MessageResult; import org.apache.james.mailbox.model.MessageResult.FetchGroup; import org.apache.james.mailbox.model.UpdatedFlags; 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.PropertyBuilder; @@ -98,7 +99,7 @@ public class StoreMailboxMessageResultIteratorTest { } private SimpleMailboxMessage createMessage(MessageUid uid) { - SimpleMailboxMessage message = new SimpleMailboxMessage(null, 0, 0, new SharedByteArrayInputStream( + SimpleMailboxMessage message = new SimpleMailboxMessage(new DefaultMessageId(), null, 0, 0, new SharedByteArrayInputStream( "".getBytes()), new Flags(), new PropertyBuilder(), TestId.of(1L)); message.setUid(uid); return message; http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java index 1159f63..74a0c63 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java @@ -36,6 +36,7 @@ import org.apache.james.mailbox.store.SimpleMessageMetaData; import org.apache.james.mailbox.store.TestId; import org.apache.james.mailbox.store.event.EventFactory; import org.apache.james.mailbox.store.event.EventSerializer; +import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox; import org.junit.Before; import org.junit.Test; @@ -49,7 +50,7 @@ public abstract class EventSerializerTest { public static final UpdatedFlags UPDATED_FLAGS = new UpdatedFlags(UID, MOD_SEQ, new Flags(), new Flags(Flags.Flag.SEEN)); public static final Flags FLAGS = new Flags(); public static final long SIZE = 45L; - public static final SimpleMessageMetaData MESSAGE_META_DATA = new SimpleMessageMetaData(UID, MOD_SEQ, FLAGS, SIZE, null); + public static final SimpleMessageMetaData MESSAGE_META_DATA = new SimpleMessageMetaData(UID, MOD_SEQ, FLAGS, SIZE, null, new DefaultMessageId()); public static final MailboxPath FROM = new MailboxPath("namespace", "user", "name"); private EventSerializer serializer; private EventFactory eventFactory; http://git-wip-us.apache.org/repos/asf/james-project/blob/7882e36f/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DefaultMailboxMessageIdTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DefaultMailboxMessageIdTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DefaultMailboxMessageIdTest.java deleted file mode 100644 index ecfeb9f..0000000 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DefaultMailboxMessageIdTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ -package org.apache.james.mailbox.store.mail.model; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.apache.james.mailbox.MessageUid; -import org.apache.james.mailbox.store.TestId; -import org.junit.Test; - -import nl.jqno.equalsverifier.EqualsVerifier; - -public class DefaultMailboxMessageIdTest { - - @Test(expected=NullPointerException.class) - public void constructorShouldThrowWhenNullMailboxId() { - new DefaultMessageId(null, MessageUid.of(1)); - } - - @Test - public void serializeShouldFormatMailboxIdAndUid() { - DefaultMessageId id = new DefaultMessageId(TestId.of(12l), MessageUid.of(1)); - assertThat(id.serialize()).isEqualTo("12-1"); - } - - @Test - public void shouldRespectJavaBeanContract() { - EqualsVerifier.forClass(DefaultMessageId.class).verify(); - } - -} --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org