You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2015/06/17 11:02:34 UTC

svn commit: r1685956 - in /james/mailbox/trunk/cassandra/src: main/java/org/apache/james/mailbox/cassandra/ main/java/org/apache/james/mailbox/cassandra/mail/ test/java/org/apache/james/mailbox/cassandra/mail/

Author: btellier
Date: Wed Jun 17 09:02:34 2015
New Revision: 1685956

URL: http://svn.apache.org/r1685956
Log:
MAILBOX-227 Use Time Uuid for Uuid stored in cassandra - patch contributed by Matthieu Baechlor

Modified:
    james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java
    james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
    james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
    james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java

Modified: james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java?rev=1685956&r1=1685955&r2=1685956&view=diff
==============================================================================
--- james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java (original)
+++ james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraTableManager.java Wed Jun 17 09:02:34 2015
@@ -44,7 +44,7 @@ public class CassandraTableManager {
         Mailbox(CassandraMailboxTable.TABLE_NAME,
             SchemaBuilder.createTable(CassandraMailboxTable.TABLE_NAME)
                 .ifNotExists()
-                .addPartitionKey(CassandraMailboxTable.ID, uuid())
+                .addPartitionKey(CassandraMailboxTable.ID, timeuuid())
                 .addColumn(CassandraMailboxTable.NAMESPACE, text())
                 .addColumn(CassandraMailboxTable.USER, text())
                 .addColumn(CassandraMailboxTable.NAME, text())
@@ -53,19 +53,19 @@ public class CassandraTableManager {
         MailboxCounter(CassandraMailboxCountersTable.TABLE_NAME,
             SchemaBuilder.createTable(CassandraMailboxCountersTable.TABLE_NAME)
                 .ifNotExists()
-                .addPartitionKey(CassandraMailboxCountersTable.MAILBOX_ID, uuid())
+                .addPartitionKey(CassandraMailboxCountersTable.MAILBOX_ID, timeuuid())
                 .addColumn(CassandraMailboxCountersTable.COUNT, counter())
                 .addColumn(CassandraMailboxCountersTable.UNSEEN, counter())
                 .addColumn(CassandraMailboxCountersTable.NEXT_MOD_SEQ, counter())),
         MessageUid(CassandraMessageUidTable.TABLE_NAME,
             SchemaBuilder.createTable(CassandraMessageUidTable.TABLE_NAME)
                 .ifNotExists()
-                .addPartitionKey(CassandraMessageUidTable.MAILBOX_ID, uuid())
+                .addPartitionKey(CassandraMessageUidTable.MAILBOX_ID, timeuuid())
                 .addColumn(CassandraMessageUidTable.NEXT_UID, bigint())),
         Message(CassandraMessageTable.TABLE_NAME,
             SchemaBuilder.createTable(CassandraMessageTable.TABLE_NAME)
                 .ifNotExists()
-                .addPartitionKey(CassandraMessageTable.MAILBOX_ID, uuid())
+                .addPartitionKey(CassandraMessageTable.MAILBOX_ID, timeuuid())
                 .addClusteringColumn(CassandraMessageTable.IMAP_UID, bigint())
                 .addColumn(CassandraMessageTable.INTERNAL_DATE, timestamp())
                 .addColumn(CassandraMessageTable.BODY_START_OCTET, cint())
@@ -94,7 +94,7 @@ public class CassandraTableManager {
         Acl(CassandraACLTable.TABLE_NAME,
             SchemaBuilder.createTable(CassandraACLTable.TABLE_NAME)
                 .ifNotExists()
-                .addPartitionKey(CassandraACLTable.ID, uuid())
+                .addPartitionKey(CassandraACLTable.ID, timeuuid())
                 .addColumn(CassandraACLTable.ACL, text())
                 .addColumn(CassandraACLTable.VERSION, bigint())
         )

Modified: james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java?rev=1685956&r1=1685955&r2=1685956&view=diff
==============================================================================
--- james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java (original)
+++ james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java Wed Jun 17 09:02:34 2015
@@ -25,6 +25,7 @@ import static org.apache.james.mailbox.c
 import java.util.List;
 import java.util.UUID;
 
+import com.datastax.driver.core.utils.UUIDs;
 import com.google.common.base.Preconditions;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -94,7 +95,7 @@ public class CassandraMailboxMapper impl
         Preconditions.checkArgument(mailbox instanceof SimpleMailbox);
         SimpleMailbox<UUID> cassandraMailbox = (SimpleMailbox<UUID>) mailbox;
         if (cassandraMailbox.getMailboxId() == null) {
-            cassandraMailbox.setMailboxId(UUID.randomUUID());
+            cassandraMailbox.setMailboxId(UUIDs.timeBased());
         }
         upsertMailbox(cassandraMailbox);
     }

Modified: james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java?rev=1685956&r1=1685955&r2=1685956&view=diff
==============================================================================
--- james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java (original)
+++ james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java Wed Jun 17 09:02:34 2015
@@ -55,7 +55,7 @@ public class CassandraACLMapperTest {
         cassandra.ensureAllTables();
         uidValidity = 10;
         mailbox = new SimpleMailbox<>(new MailboxPath("#private", "benwa@linagora.com", "INBOX"), uidValidity);
-        mailbox.setMailboxId(UUID.fromString("87B045A5-7657-44B7-81E8-40C2937BC9FE"));
+        mailbox.setMailboxId(UUID.fromString("464765a0-e4e7-11e4-aba4-710c1de3782b"));
         maxRetry = 100;
         cassandraACLMapper = new CassandraACLMapper(mailbox, cassandra.getConf(), maxRetry);
         executor = Executors.newFixedThreadPool(2);

Modified: james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java?rev=1685956&r1=1685955&r2=1685956&view=diff
==============================================================================
--- james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java (original)
+++ james/mailbox/trunk/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java Wed Jun 17 09:02:34 2015
@@ -1,5 +1,6 @@
 package org.apache.james.mailbox.cassandra.mail;
 
+import com.datastax.driver.core.utils.UUIDs;
 import org.apache.james.mailbox.cassandra.CassandraClusterSingleton;
 import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -34,7 +35,7 @@ public class CassandraMapperProvider imp
 
     @Override
     public UUID generateId() {
-        return UUID.randomUUID();
+        return UUIDs.timeBased();
     }
 
     @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org