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/11/25 11:53:43 UTC
svn commit: r1716351 - in /james/project/trunk:
backends-common/cassandra/src/main/resources/META-INF/
mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/
mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/
mailb...
Author: btellier
Date: Wed Nov 25 10:53:42 2015
New Revision: 1716351
URL: http://svn.apache.org/viewvc?rev=1716351&view=rev
Log:
JAMES-1635 Modularise mailbox table creation
Added:
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidAndModSeqModule.java
Removed:
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxModule.java
Modified:
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
Modified: james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml (original)
+++ james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml Wed Nov 25 10:53:42 2015
@@ -39,8 +39,32 @@
<property name ="location" value="classpath:cassandra.properties"/>
</bean>
+ <bean id="cassandra-mailbox-uid-modseq-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-subscription-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule"
+ lazy-init="true"/>
+
<bean id="cassandra-mailbox-module"
- class="org.apache.james.mailbox.cassandra.CassandraMailboxModule"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-mailbox-counters-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-message-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraMessageModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-mailbox-acl-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraAclModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-mailbox-quota-module"
+ class="org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule"
lazy-init="true"/>
<bean id="cassandra-rrt-module"
@@ -60,7 +84,13 @@
lazy-init="true">
<constructor-arg index="0">
<list>
+ <ref bean="cassandra-mailbox-uid-modseq-module"/>
+ <ref bean="cassandra-subscription-module"/>
<ref bean="cassandra-mailbox-module"/>
+ <ref bean="cassandra-message-module"/>
+ <ref bean="cassandra-mailbox-counters-module"/>
+ <ref bean="cassandra-mailbox-acl-module"/>
+ <ref bean="cassandra-mailbox-quota-module"/>
<ref bean="cassandra-rrt-module"/>
<ref bean="cassandra-usersrepository-module"/>
<ref bean="cassandra-domainlist-module"/>
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,68 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraACLTable;
+
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.bigint;
+import static com.datastax.driver.core.DataType.text;
+import static com.datastax.driver.core.DataType.timeuuid;
+
+public class CassandraAclModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraAclModule() {
+ tables = Collections.singletonList(
+ new CassandraTable(CassandraACLTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraACLTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraACLTable.ID, timeuuid())
+ .addColumn(CassandraACLTable.ACL, text())
+ .addColumn(CassandraACLTable.VERSION, bigint())));
+ index = Collections.emptyList();
+ types = Collections.emptyList();
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,67 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraMailboxCountersTable;
+
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.counter;
+import static com.datastax.driver.core.DataType.timeuuid;
+
+public class CassandraMailboxCounterModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraMailboxCounterModule() {
+ tables = Collections.singletonList(
+ new CassandraTable(CassandraMailboxCountersTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMailboxCountersTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMailboxCountersTable.MAILBOX_ID, timeuuid())
+ .addColumn(CassandraMailboxCountersTable.COUNT, counter())
+ .addColumn(CassandraMailboxCountersTable.UNSEEN, counter())));
+ index = Collections.emptyList();
+ types = Collections.emptyList();
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,86 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraMailboxTable;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.bigint;
+import static com.datastax.driver.core.DataType.text;
+import static com.datastax.driver.core.DataType.timeuuid;
+
+public class CassandraMailboxModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraMailboxModule() {
+ tables = Collections.singletonList(
+ new CassandraTable(CassandraMailboxTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMailboxTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMailboxTable.ID, timeuuid())
+ .addUDTColumn(CassandraMailboxTable.MAILBOX_BASE, SchemaBuilder.frozen(CassandraMailboxTable.MAILBOX_BASE))
+ .addColumn(CassandraMailboxTable.NAME, text())
+ .addColumn(CassandraMailboxTable.PATH, text())
+ .addColumn(CassandraMailboxTable.UIDVALIDITY, bigint())));
+ index = Arrays.asList(
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMailboxTable.TABLE_NAME)
+ .ifNotExists()
+ .onTable(CassandraMailboxTable.TABLE_NAME)
+ .andColumn(CassandraMailboxTable.PATH)),
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMailboxTable.MAILBOX_BASE)
+ .ifNotExists()
+ .onTable(CassandraMailboxTable.TABLE_NAME)
+ .andColumn(CassandraMailboxTable.MAILBOX_BASE)));
+ types = Collections.singletonList(
+ new CassandraType(CassandraMailboxTable.MAILBOX_BASE,
+ SchemaBuilder.createType(CassandraMailboxTable.MAILBOX_BASE)
+ .ifNotExists()
+ .addColumn(CassandraMailboxTable.MailboxBase.NAMESPACE, text())
+ .addColumn(CassandraMailboxTable.MailboxBase.USER, text())));
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,111 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraMessageTable;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.bigint;
+import static com.datastax.driver.core.DataType.blob;
+import static com.datastax.driver.core.DataType.cboolean;
+import static com.datastax.driver.core.DataType.cint;
+import static com.datastax.driver.core.DataType.set;
+import static com.datastax.driver.core.DataType.text;
+import static com.datastax.driver.core.DataType.timestamp;
+import static com.datastax.driver.core.DataType.timeuuid;
+
+public class CassandraMessageModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraMessageModule() {
+ tables = Collections.singletonList(
+ new CassandraTable(CassandraMessageTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMessageTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMessageTable.MAILBOX_ID, timeuuid())
+ .addClusteringColumn(CassandraMessageTable.IMAP_UID, bigint())
+ .addColumn(CassandraMessageTable.INTERNAL_DATE, timestamp())
+ .addColumn(CassandraMessageTable.BODY_START_OCTET, cint())
+ .addColumn(CassandraMessageTable.BODY_OCTECTS, cint())
+ .addColumn(CassandraMessageTable.TEXTUAL_LINE_COUNT, bigint())
+ .addColumn(CassandraMessageTable.MOD_SEQ, bigint())
+ .addColumn(CassandraMessageTable.FULL_CONTENT_OCTETS, cint())
+ .addColumn(CassandraMessageTable.BODY_CONTENT, blob())
+ .addColumn(CassandraMessageTable.HEADER_CONTENT, blob())
+ .addColumn(CassandraMessageTable.Flag.ANSWERED, cboolean())
+ .addColumn(CassandraMessageTable.Flag.DELETED, cboolean())
+ .addColumn(CassandraMessageTable.Flag.DRAFT, cboolean())
+ .addColumn(CassandraMessageTable.Flag.FLAGGED, cboolean())
+ .addColumn(CassandraMessageTable.Flag.RECENT, cboolean())
+ .addColumn(CassandraMessageTable.Flag.SEEN, cboolean())
+ .addColumn(CassandraMessageTable.Flag.USER, cboolean())
+ .addColumn(CassandraMessageTable.Flag.USER_FLAGS, set(text()))
+ .addUDTListColumn(CassandraMessageTable.PROPERTIES, SchemaBuilder.frozen(CassandraMessageTable.PROPERTIES))));
+ index = Arrays.asList(
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMessageTable.Flag.RECENT)
+ .ifNotExists()
+ .onTable(CassandraMessageTable.TABLE_NAME)
+ .andColumn(CassandraMessageTable.Flag.RECENT)),
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMessageTable.Flag.SEEN)
+ .ifNotExists()
+ .onTable(CassandraMessageTable.TABLE_NAME)
+ .andColumn(CassandraMessageTable.Flag.SEEN)),
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraMessageTable.Flag.DELETED)
+ .ifNotExists()
+ .onTable(CassandraMessageTable.TABLE_NAME)
+ .andColumn(CassandraMessageTable.Flag.DELETED)));
+ types = Collections.singletonList(
+ new CassandraType(CassandraMessageTable.PROPERTIES,
+ SchemaBuilder.createType(CassandraMessageTable.PROPERTIES)
+ .ifNotExists()
+ .addColumn(CassandraMessageTable.Properties.NAMESPACE, text())
+ .addColumn(CassandraMessageTable.Properties.NAME, text())
+ .addColumn(CassandraMessageTable.Properties.VALUE, text())));
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraQuotaModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,82 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraCurrentQuota;
+import org.apache.james.mailbox.cassandra.table.CassandraDefaultMaxQuota;
+import org.apache.james.mailbox.cassandra.table.CassandraMaxQuota;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.bigint;
+import static com.datastax.driver.core.DataType.counter;
+import static com.datastax.driver.core.DataType.text;
+
+public class CassandraQuotaModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraQuotaModule() {
+ tables = Arrays.asList(
+ new CassandraTable(CassandraCurrentQuota.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraCurrentQuota.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraCurrentQuota.QUOTA_ROOT, text())
+ .addColumn(CassandraCurrentQuota.MESSAGE_COUNT, counter())
+ .addColumn(CassandraCurrentQuota.STORAGE, counter())),
+ new CassandraTable(CassandraMaxQuota.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMaxQuota.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMaxQuota.QUOTA_ROOT, text())
+ .addColumn(CassandraMaxQuota.MESSAGE_COUNT, bigint())
+ .addColumn(CassandraMaxQuota.STORAGE, bigint())),
+ new CassandraTable(CassandraDefaultMaxQuota.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraDefaultMaxQuota.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraDefaultMaxQuota.TYPE, text())
+ .addColumn(CassandraDefaultMaxQuota.VALUE, bigint())));
+ index = Collections.emptyList();
+ types = Collections.emptyList();
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,70 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraSubscriptionTable;
+
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.text;
+
+public class CassandraSubscriptionModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraSubscriptionModule() {
+ tables = Collections.singletonList(
+ new CassandraTable(CassandraSubscriptionTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraSubscriptionTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraSubscriptionTable.MAILBOX, text())
+ .addClusteringColumn(CassandraSubscriptionTable.USER, text())));
+ index = Collections.singletonList(
+ new CassandraIndex(
+ SchemaBuilder.createIndex(CassandraIndex.INDEX_PREFIX + CassandraSubscriptionTable.USER)
+ .ifNotExists()
+ .onTable(CassandraSubscriptionTable.TABLE_NAME)
+ .andColumn(CassandraSubscriptionTable.USER)));
+ types = Collections.emptyList();
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Added: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidAndModSeqModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidAndModSeqModule.java?rev=1716351&view=auto
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidAndModSeqModule.java (added)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidAndModSeqModule.java Wed Nov 25 10:53:42 2015
@@ -0,0 +1,73 @@
+/****************************************************************
+ * 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.modules;
+
+import com.datastax.driver.core.schemabuilder.SchemaBuilder;
+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.CassandraMessageModseqTable;
+import org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static com.datastax.driver.core.DataType.bigint;
+import static com.datastax.driver.core.DataType.timeuuid;
+
+public class CassandraUidAndModSeqModule implements CassandraModule {
+
+ private final List<CassandraTable> tables;
+ private final List<CassandraIndex> index;
+ private final List<CassandraType> types;
+
+ public CassandraUidAndModSeqModule() {
+ tables = Arrays.asList(
+ new CassandraTable(CassandraMessageUidTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMessageUidTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMessageUidTable.MAILBOX_ID, timeuuid())
+ .addColumn(CassandraMessageUidTable.NEXT_UID, bigint())),
+ new CassandraTable(CassandraMessageModseqTable.TABLE_NAME,
+ SchemaBuilder.createTable(CassandraMessageModseqTable.TABLE_NAME)
+ .ifNotExists()
+ .addPartitionKey(CassandraMessageModseqTable.MAILBOX_ID, timeuuid())
+ .addColumn(CassandraMessageModseqTable.NEXT_MODSEQ, bigint())));
+ index = Collections.emptyList();
+ types = Collections.emptyList();
+ }
+
+ @Override
+ public List<CassandraTable> moduleTables() {
+ return tables;
+ }
+
+ @Override
+ public List<CassandraIndex> moduleIndex() {
+ return index;
+ }
+
+ @Override
+ public List<CassandraType> moduleTypes() {
+ return types;
+ }
+}
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java Wed Nov 25 10:53:42 2015
@@ -19,10 +19,17 @@
package org.apache.james.mailbox.cassandra;
import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
import org.apache.james.mailbox.AbstractMailboxManagerTest;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule;
import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
@@ -36,7 +43,13 @@ import org.slf4j.LoggerFactory;
*/
public class CassandraMailboxManagerTest extends AbstractMailboxManagerTest {
- private static final CassandraCluster CASSANDRA = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster CASSANDRA = CassandraCluster.create(new CassandraModuleComposite(
+ new CassandraAclModule(),
+ new CassandraMailboxModule(),
+ new CassandraMessageModule(),
+ new CassandraMailboxCounterModule(),
+ new CassandraUidAndModSeqModule(),
+ new CassandraSubscriptionModule()));
/**
* Setup the mailboxManager.
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactoryTest.java Wed Nov 25 10:53:42 2015
@@ -26,6 +26,7 @@ import org.apache.james.backends.cassand
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule;
import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.ModSeqProvider;
@@ -41,7 +42,7 @@ import org.slf4j.LoggerFactory;
*
*/
public class CassandraMailboxSessionMapperFactoryTest {
- private static final CassandraCluster CLUSTER = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster CLUSTER = CassandraCluster.create(new CassandraUidAndModSeqModule());
private final static Logger LOG = LoggerFactory.getLogger(CassandraMailboxSessionMapperFactoryTest.class);
@Before
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java Wed Nov 25 10:53:42 2015
@@ -24,13 +24,14 @@ import org.apache.james.mailbox.Abstract
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
/**
* Test Cassandra subscription against some general purpose written code.
*/
public class CassandraSubscriptionManagerTest extends AbstractSubscriptionManagerTest {
- private static final CassandraCluster cassandra = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster cassandra = CassandraCluster.create(new CassandraSubscriptionModule());
@Override
public SubscriptionManager createSubscriptionManager() {
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java Wed Nov 25 10:53:42 2015
@@ -32,7 +32,7 @@ import java.util.concurrent.TimeoutExcep
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.mailbox.cassandra.CassandraId;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
import org.apache.james.mailbox.cassandra.table.CassandraACLTable;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxACL;
@@ -56,7 +56,7 @@ public class CassandraACLMapperTest {
@Before
public void setUp() {
- cassandra = CassandraCluster.create(new CassandraMailboxModule());
+ cassandra = CassandraCluster.create(new CassandraAclModule());
cassandra.ensureAllTables();
uidValidity = 10;
mailbox = new SimpleMailbox<>(new MailboxPath("#private", "benwa@linagora.com", "INBOX"), uidValidity);
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java Wed Nov 25 10:53:42 2015
@@ -1,9 +1,14 @@
package org.apache.james.mailbox.cassandra.mail;
import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
import org.apache.james.mailbox.cassandra.CassandraId;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.mock.MockMailboxSession;
import org.apache.james.mailbox.store.mail.MailboxMapper;
@@ -12,7 +17,12 @@ import org.apache.james.mailbox.store.ma
public class CassandraMapperProvider implements MapperProvider<CassandraId> {
- private static final CassandraCluster cassandra = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster cassandra = CassandraCluster.create(new CassandraModuleComposite(
+ new CassandraAclModule(),
+ new CassandraMailboxModule(),
+ new CassandraMessageModule(),
+ new CassandraMailboxCounterModule(),
+ new CassandraUidAndModSeqModule()));
@Override
public MailboxMapper<CassandraId> createMailboxMapper() throws MailboxException {
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java Wed Nov 25 10:53:42 2015
@@ -28,8 +28,11 @@ import java.util.function.LongConsumer;
import java.util.stream.LongStream;
import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
import org.apache.james.mailbox.cassandra.CassandraId;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
@@ -45,7 +48,10 @@ import com.google.common.base.Throwables
*/
public class CassandraUidAndModSeqProviderTest {
- private static final CassandraCluster CASSANDRA = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster CASSANDRA = CassandraCluster.create(new CassandraModuleComposite(
+ new CassandraAclModule(),
+ new CassandraMailboxModule(),
+ new CassandraUidAndModSeqModule()));
private static final int NAMESPACES = 5;
private static final int USERS = 5;
private static final int MAILBOX_NO = 5;
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerTest.java Wed Nov 25 10:53:42 2015
@@ -22,7 +22,7 @@ package org.apache.james.mailbox.cassand
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.store.quota.QuotaRootImpl;
import org.junit.After;
@@ -38,7 +38,7 @@ public class CassandraCurrentQuotaManage
@Before
public void setUp() {
- cassandra = CassandraCluster.create(new CassandraMailboxModule());
+ cassandra = CassandraCluster.create(new CassandraQuotaModule());
cassandra.ensureAllTables();
currentQuotaManager = new CassandraCurrentQuotaManager(cassandra.getConf());
}
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java Wed Nov 25 10:53:42 2015
@@ -20,7 +20,7 @@
package org.apache.james.mailbox.cassandra.quota;
import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
import org.apache.james.mailbox.quota.MaxQuotaManager;
import org.apache.james.mailbox.store.quota.GenericMaxQuotaManagerTest;
import org.junit.After;
@@ -31,7 +31,7 @@ public class CassandraPerUserMaxQuotaMan
@Override
protected MaxQuotaManager provideMaxQuotaManager() {
- cassandra = CassandraCluster.create(new CassandraMailboxModule());
+ cassandra = CassandraCluster.create(new CassandraQuotaModule());
cassandra.ensureAllTables();
return new CassandraPerUserMaxQuotaManager(cassandra.getConf());
}
Modified: james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java (original)
+++ james/project/trunk/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java Wed Nov 25 10:53:42 2015
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Map;
import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
import org.apache.james.mailbox.store.user.model.Subscription;
import org.apache.james.mailbox.store.user.model.impl.SimpleSubscription;
import org.junit.Before;
@@ -46,7 +46,7 @@ import com.datastax.driver.core.Session;
public class CassandraSubscriptionMapperTest {
private static final Logger LOG = LoggerFactory.getLogger(CassandraSubscriptionMapperTest.class);
- private static final CassandraCluster CLUSTER = CassandraCluster.create(new CassandraMailboxModule());
+ private static final CassandraCluster CLUSTER = CassandraCluster.create(new CassandraSubscriptionModule());
private static Session session;
private static CassandraSubscriptionMapper mapper;
private static Map<String, List<SimpleSubscription>> subscriptionList;
Modified: james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java (original)
+++ james/project/trunk/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java Wed Nov 25 10:53:42 2015
@@ -20,16 +20,23 @@ package org.apache.james.mpt.imapmailbox
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
import org.apache.james.imap.main.DefaultImapDecoderFactory;
import org.apache.james.imap.processor.main.DefaultImapProcessorFactory;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.cassandra.CassandraMailboxManager;
-import org.apache.james.mailbox.cassandra.CassandraMailboxModule;
import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule;
import org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager;
import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager;
import org.apache.james.mailbox.model.MailboxPath;
@@ -51,11 +58,17 @@ public class CassandraHostSystem extends
private final CassandraMailboxManager mailboxManager;
private final MockAuthenticator userManager;
- private final CassandraModule mailboxModule;
private CassandraCluster cassandraClusterSingleton;
public CassandraHostSystem() throws Exception {
- mailboxModule = new CassandraMailboxModule();
+ CassandraModule mailboxModule = new CassandraModuleComposite(
+ new CassandraAclModule(),
+ new CassandraMailboxModule(),
+ new CassandraMessageModule(),
+ new CassandraMailboxCounterModule(),
+ new CassandraUidAndModSeqModule(),
+ new CassandraSubscriptionModule(),
+ new CassandraQuotaModule());
cassandraClusterSingleton = CassandraCluster.create(mailboxModule);
userManager = new MockAuthenticator();
com.datastax.driver.core.Session session = cassandraClusterSingleton.getConf();
Modified: james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java?rev=1716351&r1=1716350&r2=1716351&view=diff
==============================================================================
--- james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java (original)
+++ james/project/trunk/server/container/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java Wed Nov 25 10:53:42 2015
@@ -65,7 +65,12 @@ public class CassandraMailboxModule exte
bind(new TypeLiteral<ModSeqProvider<CassandraId>>(){}).to(new TypeLiteral<CassandraModSeqProvider>(){});
bind(new TypeLiteral<UidProvider<CassandraId>>(){}).to(new TypeLiteral<CassandraUidProvider>(){});
Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
- cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.CassandraMailboxModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraAclModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraMessageModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule.class);
+ cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraUidAndModSeqModule.class);
}
@Provides @Named(MAILBOXMANAGER_NAME) @Singleton
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org