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 ad...@apache.org on 2017/02/15 13:36:13 UTC
[10/20] james-project git commit: JAMES-1925 Adding cassandra table
for MailboxPath mailbox indexing
JAMES-1925 Adding cassandra table for MailboxPath mailbox indexing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3c2dc467
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3c2dc467
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3c2dc467
Branch: refs/heads/master
Commit: 3c2dc467bde2c77cf28954b95f4f19cfd1ae4113
Parents: 7b85c97
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Feb 14 09:21:18 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Wed Feb 15 13:12:38 2017 +0100
----------------------------------------------------------------------
.../modules/CassandraMailboxModule.java | 13 ++++++--
.../table/CassandraMailboxPathTable.java | 32 ++++++++++++++++++++
2 files changed, 43 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3c2dc467/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
index b664098..8858504 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
@@ -20,10 +20,13 @@
package org.apache.james.mailbox.cassandra.modules;
import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+import com.google.common.collect.ImmutableList;
+
import org.apache.james.backends.cassandra.components.CassandraIndex;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.components.CassandraTable;
import org.apache.james.backends.cassandra.components.CassandraType;
+import org.apache.james.mailbox.cassandra.table.CassandraMailboxPathTable;
import org.apache.james.mailbox.cassandra.table.CassandraMailboxTable;
import java.util.Arrays;
@@ -41,7 +44,7 @@ public class CassandraMailboxModule implements CassandraModule {
private final List<CassandraType> types;
public CassandraMailboxModule() {
- tables = Collections.singletonList(
+ tables = ImmutableList.of(
new CassandraTable(CassandraMailboxTable.TABLE_NAME,
SchemaBuilder.createTable(CassandraMailboxTable.TABLE_NAME)
.ifNotExists()
@@ -49,7 +52,13 @@ public class CassandraMailboxModule implements CassandraModule {
.addUDTColumn(CassandraMailboxTable.MAILBOX_BASE, SchemaBuilder.frozen(CassandraMailboxTable.MAILBOX_BASE))
.addColumn(CassandraMailboxTable.NAME, text())
.addColumn(CassandraMailboxTable.PATH, text())
- .addColumn(CassandraMailboxTable.UIDVALIDITY, bigint())));
+ .addColumn(CassandraMailboxTable.UIDVALIDITY, bigint())),
+ new CassandraTable(CassandraMailboxPathTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMailboxPathTable.TABLE_NAME)
+ .ifNotExists()
+ .addUDTPartitionKey(CassandraMailboxPathTable.NAMESPACE_AND_USER, SchemaBuilder.frozen(CassandraMailboxTable.MAILBOX_BASE))
+ .addClusteringColumn(CassandraMailboxPathTable.MAILBOX_NAME, text())
+ .addColumn(CassandraMailboxPathTable.MAILBOX_ID, timeuuid())));
index = Arrays.asList(
new CassandraIndex(
SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMailboxTable.TABLE_NAME)
http://git-wip-us.apache.org/repos/asf/james-project/blob/3c2dc467/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java
new file mode 100644
index 0000000..be9eb54
--- /dev/null
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java
@@ -0,0 +1,32 @@
+/****************************************************************
+ * 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.cassandra.table;
+
+public interface CassandraMailboxPathTable {
+
+ String TABLE_NAME = "mailboxPath";
+
+ String NAMESPACE_AND_USER = "namespaceAndUser";
+
+ String MAILBOX_NAME = "mailboxName";
+
+ String MAILBOX_ID = "mailboxId";
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org