MAILBOX-342 Use CassandraModule.Builder for data-cassandra
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3a92defc Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3a92defc Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3a92defc Branch: refs/heads/master Commit: 3a92defcfaef55f7c30c4ad27dc41e3ac6095f10 Parents: 3c50770 Author: benwa <[email protected]> Authored: Tue Jul 24 14:55:50 2018 +0700 Committer: benwa <[email protected]> Committed: Thu Jul 26 13:47:39 2018 +0700 ---------------------------------------------------------------------- .../cassandra/host/CassandraHostSystem.java | 8 +- .../modules/data/CassandraDomainListModule.java | 2 +- .../data/CassandraMailRepositoryModule.java | 2 +- .../CassandraRecipientRewriteTableModule.java | 2 +- .../data/CassandraSieveRepositoryModule.java | 2 +- .../data/CassandraUsersRepositoryModule.java | 2 +- .../cassandra/CassandraDomainListModule.java | 41 ++------ .../CassandraMailRepositoryUrlModule.java | 42 ++------ .../james/rrt/cassandra/CassandraRRTModule.java | 46 +++----- .../CassandraSieveRepositoryModule.java | 105 ++++++++----------- .../CassandraUsersRepositoryModule.java | 44 ++------ .../cassandra/CassandraDomainListTest.java | 2 +- ...assandraMailRepositoryUrlStoreExtension.java | 4 +- .../CassandraRecipientRewriteTableTest.java | 2 +- .../james/rrt/cassandra/CassandraStepdefs.java | 2 +- .../cassandra/CassandraActiveScriptDAOTest.java | 2 +- .../sieve/cassandra/CassandraSieveDAOTest.java | 2 +- .../cassandra/CassandraSieveQuotaDAOTest.java | 2 +- .../cassandra/CassandraSieveRepositoryTest.java | 2 +- .../cassandra/CassandraUsersRepositoryTest.java | 2 +- 20 files changed, 103 insertions(+), 213 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java index 62c07ce..f424021 100644 --- a/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java +++ b/mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java @@ -20,7 +20,7 @@ package org.apache.james.mpt.managesieve.cassandra.host; import org.apache.james.backends.cassandra.CassandraCluster; -import org.apache.james.backends.cassandra.init.CassandraModuleComposite; +import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.mpt.host.JamesManageSieveHostSystem; import org.apache.james.sieve.cassandra.CassandraActiveScriptDAO; @@ -44,9 +44,9 @@ public class CassandraHostSystem extends JamesManageSieveHostSystem { @Override public void beforeTest() throws Exception { - CassandraModuleComposite modules = new CassandraModuleComposite( - new CassandraSieveRepositoryModule(), - new CassandraUsersRepositoryModule()); + CassandraModule modules = CassandraModule.aggregateModules( + CassandraSieveRepositoryModule.MODULE, + CassandraUsersRepositoryModule.MODULE); cassandra = CassandraCluster.create(modules, cassandraHost); super.beforeTest(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java index 1ef8a9c..4d253af 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java @@ -41,7 +41,7 @@ public class CassandraDomainListModule extends AbstractModule { public void configure() { bind(CassandraDomainList.class).in(Scopes.SINGLETON); bind(DomainList.class).to(CassandraDomainList.class); - Multibinder.newSetBinder(binder(), CassandraModule.class).addBinding().to(org.apache.james.domainlist.cassandra.CassandraDomainListModule.class); + Multibinder.newSetBinder(binder(), CassandraModule.class).addBinding().toInstance(org.apache.james.domainlist.cassandra.CassandraDomainListModule.MODULE); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(CassandraDomainListConfigurationPerformer.class); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraMailRepositoryModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraMailRepositoryModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraMailRepositoryModule.java index 7f2cf90..695d0e8 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraMailRepositoryModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraMailRepositoryModule.java @@ -52,7 +52,7 @@ public class CassandraMailRepositoryModule extends AbstractModule { Multibinder<CassandraModule> cassandraModuleBinder = Multibinder.newSetBinder(binder(), CassandraModule.class); cassandraModuleBinder.addBinding().to(org.apache.james.mailrepository.cassandra.CassandraMailRepositoryModule.class); - cassandraModuleBinder.addBinding().to(CassandraMailRepositoryUrlModule.class); + cassandraModuleBinder.addBinding().toInstance(CassandraMailRepositoryUrlModule.MODULE); } public static class CassandraMailRepositoryProvider implements MailRepositoryProvider { http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java index 0d0e4bf..22b48e8 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java @@ -43,7 +43,7 @@ public class CassandraRecipientRewriteTableModule extends AbstractModule { bind(CassandraRecipientRewriteTable.class).in(Scopes.SINGLETON); bind(RecipientRewriteTable.class).to(CassandraRecipientRewriteTable.class); Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class); - cassandraDataDefinitions.addBinding().to(CassandraRRTModule.class); + cassandraDataDefinitions.addBinding().toInstance(CassandraRRTModule.MODULE); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(CassandraRecipientRewriteTablePerformer.class); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java index f4947b8..d83bb36 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java @@ -37,6 +37,6 @@ public class CassandraSieveRepositoryModule extends AbstractModule { bind(SieveQuotaRepository.class).to(CassandraSieveRepository.class); Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class); - cassandraDataDefinitions.addBinding().to(org.apache.james.sieve.cassandra.CassandraSieveRepositoryModule.class); + cassandraDataDefinitions.addBinding().toInstance(org.apache.james.sieve.cassandra.CassandraSieveRepositoryModule.MODULE); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java index a495699..9b465d0 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java @@ -41,7 +41,7 @@ public class CassandraUsersRepositoryModule extends AbstractModule { bind(CassandraUsersRepository.class).in(Scopes.SINGLETON); bind(UsersRepository.class).to(CassandraUsersRepository.class); Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class); - cassandraDataDefinitions.addBinding().to(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.class); + cassandraDataDefinitions.addBinding().toInstance(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.MODULE); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(CassandraUsersRepositoryConfigurationPerformer.class); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java b/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java index 2b797c9..cd38715 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java @@ -21,41 +21,20 @@ package org.apache.james.domainlist.cassandra; import static com.datastax.driver.core.DataType.text; -import java.util.List; - 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.backends.cassandra.utils.CassandraConstants; import org.apache.james.domainlist.cassandra.tables.CassandraDomainsTable; import com.datastax.driver.core.schemabuilder.SchemaBuilder; -import com.google.common.collect.ImmutableList; - -public class CassandraDomainListModule implements CassandraModule { - private final List<CassandraTable> tables; - private final List<CassandraType> types; - - public CassandraDomainListModule() { - tables = ImmutableList.of( - new CassandraTable(CassandraDomainsTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraDomainsTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraDomainsTable.DOMAIN, text()) - .withOptions() - .comment("Holds domains this James server is operating on.") - .caching(SchemaBuilder.KeyCaching.ALL, - SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))); - types = ImmutableList.of(); - } - - @Override - public List<CassandraTable> moduleTables() { - return tables; - } - @Override - public List<CassandraType> moduleTypes() { - return types; - } +public class CassandraDomainListModule { + public static final CassandraModule MODULE = CassandraModule.table(CassandraDomainsTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraDomainsTable.DOMAIN, text()) + .withOptions() + .comment("Holds domains this James server is operating on.") + .caching(SchemaBuilder.KeyCaching.ALL, + SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION))) + .build(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java b/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java index 6caf5e1..5f269fd 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java @@ -21,41 +21,19 @@ package org.apache.james.mailrepository.cassandra; import static com.datastax.driver.core.DataType.text; -import java.util.List; - 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.backends.cassandra.utils.CassandraConstants; import com.datastax.driver.core.schemabuilder.SchemaBuilder; -import com.google.common.collect.ImmutableList; - -public class CassandraMailRepositoryUrlModule implements CassandraModule { - - private final List<CassandraTable> tables; - private final List<CassandraType> types; - - public CassandraMailRepositoryUrlModule() { - tables = ImmutableList.of( - new CassandraTable(UrlsTable.TABLE_NAME, - SchemaBuilder.createTable(UrlsTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(UrlsTable.URL, text()) - .withOptions() - .comment("Holds the list of available mail repository") - .caching(SchemaBuilder.KeyCaching.ALL, - SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))); - types = ImmutableList.of(); - } - - @Override - public List<CassandraTable> moduleTables() { - return tables; - } - @Override - public List<CassandraType> moduleTypes() { - return types; - } +public class CassandraMailRepositoryUrlModule { + public static final CassandraModule MODULE = CassandraModule.table(UrlsTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(UrlsTable.URL, text()) + .withOptions() + .comment("Holds the list of available mail repository") + .caching(SchemaBuilder.KeyCaching.ALL, + SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION))) + .build(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java index 401babd..da8cd62 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java @@ -21,44 +21,22 @@ package org.apache.james.rrt.cassandra; import static com.datastax.driver.core.DataType.text; -import java.util.List; - 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.backends.cassandra.utils.CassandraConstants; import org.apache.james.rrt.cassandra.tables.CassandraRecipientRewriteTableTable; import com.datastax.driver.core.schemabuilder.SchemaBuilder; -import com.google.common.collect.ImmutableList; - -public class CassandraRRTModule implements CassandraModule { - - private final List<CassandraTable> tables; - private final List<CassandraType> types; - - public CassandraRRTModule() { - tables = ImmutableList.of( - new CassandraTable(CassandraRecipientRewriteTableTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraRecipientRewriteTableTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraRecipientRewriteTableTable.USER, text()) - .addClusteringColumn(CassandraRecipientRewriteTableTable.DOMAIN, text()) - .addClusteringColumn(CassandraRecipientRewriteTableTable.MAPPING, text()) - .withOptions() - .comment("Holds address re-writing rules.") - .caching(SchemaBuilder.KeyCaching.ALL, - SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))); - types = ImmutableList.of(); - } - - @Override - public List<CassandraTable> moduleTables() { - return tables; - } - @Override - public List<CassandraType> moduleTypes() { - return types; - } +public class CassandraRRTModule { + public static final CassandraModule MODULE = CassandraModule.table(CassandraRecipientRewriteTableTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraRecipientRewriteTableTable.USER, text()) + .addClusteringColumn(CassandraRecipientRewriteTableTable.DOMAIN, text()) + .addClusteringColumn(CassandraRecipientRewriteTableTable.MAPPING, text()) + .withOptions() + .comment("Holds address re-writing rules.") + .caching(SchemaBuilder.KeyCaching.ALL, + SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION))) + .build(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java index a599eb4..ddaccb5 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java @@ -25,76 +25,55 @@ import static com.datastax.driver.core.DataType.counter; import static com.datastax.driver.core.DataType.text; import static com.datastax.driver.core.DataType.timestamp; -import java.util.List; - 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.sieve.cassandra.tables.CassandraSieveActiveTable; import org.apache.james.sieve.cassandra.tables.CassandraSieveClusterQuotaTable; import org.apache.james.sieve.cassandra.tables.CassandraSieveQuotaTable; import org.apache.james.sieve.cassandra.tables.CassandraSieveSpaceTable; import org.apache.james.sieve.cassandra.tables.CassandraSieveTable; -import com.datastax.driver.core.schemabuilder.SchemaBuilder; -import com.google.common.collect.ImmutableList; - -public class CassandraSieveRepositoryModule implements CassandraModule { - - private final List<CassandraTable> tables; - private final List<CassandraType> types; - - public CassandraSieveRepositoryModule() { - tables = ImmutableList.of( - new CassandraTable(CassandraSieveTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraSieveTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraSieveTable.USER_NAME, text()) - .addClusteringColumn(CassandraSieveTable.SCRIPT_NAME, text()) - .addColumn(CassandraSieveTable.SCRIPT_CONTENT, text()) - .addColumn(CassandraSieveTable.IS_ACTIVE, cboolean()) - .addColumn(CassandraSieveTable.SIZE, bigint()) - .withOptions() - .comment("Holds SIEVE scripts.")), - new CassandraTable(CassandraSieveSpaceTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraSieveSpaceTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraSieveSpaceTable.USER_NAME, text()) - .addColumn(CassandraSieveSpaceTable.SPACE_USED, counter()) - .withOptions() - .comment("Holds per user current space occupied by SIEVE scripts.")), - new CassandraTable(CassandraSieveQuotaTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraSieveQuotaTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraSieveQuotaTable.USER_NAME, text()) - .addColumn(CassandraSieveQuotaTable.QUOTA, bigint()) - .withOptions() - .comment("Holds per user size limitations for SIEVE script storage.")), - new CassandraTable(CassandraSieveClusterQuotaTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraSieveClusterQuotaTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraSieveClusterQuotaTable.NAME, text()) - .addColumn(CassandraSieveClusterQuotaTable.VALUE, bigint()) - .withOptions() - .comment("Holds default size limitations for SIEVE script storage.")), - new CassandraTable(CassandraSieveActiveTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraSieveActiveTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraSieveActiveTable.USER_NAME, text()) - .addColumn(CassandraSieveActiveTable.SCRIPT_NAME, text()) - .addColumn(CassandraSieveActiveTable.DATE, timestamp()) - .withOptions() - .comment("Denormalisation table. Allows per user direct active SIEVE script retrieval."))); - types = ImmutableList.of(); - } +public interface CassandraSieveRepositoryModule { - @Override - public List<CassandraTable> moduleTables() { - return tables; - } + CassandraModule MODULE = CassandraModule.builder() + .table(CassandraSieveTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraSieveTable.USER_NAME, text()) + .addClusteringColumn(CassandraSieveTable.SCRIPT_NAME, text()) + .addColumn(CassandraSieveTable.SCRIPT_CONTENT, text()) + .addColumn(CassandraSieveTable.IS_ACTIVE, cboolean()) + .addColumn(CassandraSieveTable.SIZE, bigint()) + .withOptions() + .comment("Holds SIEVE scripts.")) + .table(CassandraSieveSpaceTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraSieveSpaceTable.USER_NAME, text()) + .addColumn(CassandraSieveSpaceTable.SPACE_USED, counter()) + .withOptions() + .comment("Holds per user current space occupied by SIEVE scripts.")) + .table(CassandraSieveQuotaTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraSieveQuotaTable.USER_NAME, text()) + .addColumn(CassandraSieveQuotaTable.QUOTA, bigint()) + .withOptions() + .comment("Holds per user size limitations for SIEVE script storage.")) + .table(CassandraSieveClusterQuotaTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraSieveClusterQuotaTable.NAME, text()) + .addColumn(CassandraSieveClusterQuotaTable.VALUE, bigint()) + .withOptions() + .comment("Holds default size limitations for SIEVE script storage.")) + .table(CassandraSieveActiveTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraSieveActiveTable.USER_NAME, text()) + .addColumn(CassandraSieveActiveTable.SCRIPT_NAME, text()) + .addColumn(CassandraSieveActiveTable.DATE, timestamp()) + .withOptions() + .comment("Denormalisation table. Allows per user direct active SIEVE script retrieval.")) + .build(); - @Override - public List<CassandraType> moduleTypes() { - return types; - } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java index 67d2775..1bb176d 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java @@ -21,42 +21,20 @@ package org.apache.james.user.cassandra; import static com.datastax.driver.core.DataType.text; -import java.util.List; - 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.user.cassandra.tables.CassandraUserTable; -import com.datastax.driver.core.schemabuilder.SchemaBuilder; -import com.google.common.collect.ImmutableList; - -public class CassandraUsersRepositoryModule implements CassandraModule { - - private final List<CassandraTable> tables; - private final List<CassandraType> types; - - public CassandraUsersRepositoryModule() { - tables = ImmutableList.of( - new CassandraTable(CassandraUserTable.TABLE_NAME, - SchemaBuilder.createTable(CassandraUserTable.TABLE_NAME) - .ifNotExists() - .addPartitionKey(CassandraUserTable.NAME, text()) - .addColumn(CassandraUserTable.REALNAME, text()) - .addColumn(CassandraUserTable.PASSWORD, text()) - .addColumn(CassandraUserTable.ALGORITHM, text()) - .withOptions() - .comment("Holds users of this James server."))); - types = ImmutableList.of(); - } +public class CassandraUsersRepositoryModule { - @Override - public List<CassandraTable> moduleTables() { - return tables; - } + public static final CassandraModule MODULE = CassandraModule.table(CassandraUserTable.TABLE_NAME) + .statement(statement -> statement + .ifNotExists() + .addPartitionKey(CassandraUserTable.NAME, text()) + .addColumn(CassandraUserTable.REALNAME, text()) + .addColumn(CassandraUserTable.PASSWORD, text()) + .addColumn(CassandraUserTable.ALGORITHM, text()) + .withOptions() + .comment("Holds users of this James server.")) + .build(); - @Override - public List<CassandraType> moduleTypes() { - return types; - } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java index af722d1..efe7e82 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java @@ -37,7 +37,7 @@ public class CassandraDomainListTest extends AbstractDomainListTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraDomainListModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraDomainListModule.MODULE, cassandraServer.getHost()); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java b/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java index 282a525..fa9818a 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java @@ -43,7 +43,7 @@ public class CassandraMailRepositoryUrlStoreExtension implements ParameterResolv public void beforeAll(ExtensionContext context) { cassandra.start(); cassandraCluster = CassandraCluster.create( - new CassandraMailRepositoryUrlModule(), + CassandraMailRepositoryUrlModule.MODULE, cassandra.getHost()); } @@ -65,8 +65,6 @@ public class CassandraMailRepositoryUrlStoreExtension implements ParameterResolv @Override public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - - return new CassandraMailRepositoryUrlStore( new UrlsDao( cassandraCluster.getConf(), http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java index 4b6ae00..c7d6d6f 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java @@ -38,7 +38,7 @@ public class CassandraRecipientRewriteTableTest extends AbstractRecipientRewrite @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraRRTModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraRRTModule.MODULE, cassandraServer.getHost()); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java index 4681a4b..3c2916c 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java @@ -39,7 +39,7 @@ public class CassandraStepdefs { @Before public void setup() throws Throwable { - cassandra = CassandraCluster.create(new CassandraRRTModule(), RewriteTablesTest.cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraRRTModule.MODULE, RewriteTablesTest.cassandraServer.getHost()); mainStepdefs.rewriteTable = getRecipientRewriteTable(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java index d0ff1db..4b973b9 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java @@ -48,7 +48,7 @@ public class CassandraActiveScriptDAOTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraSieveRepositoryModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraSieveRepositoryModule.MODULE, cassandraServer.getHost()); } @Before http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java index 2601263..4ddb6ba 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java @@ -68,7 +68,7 @@ public class CassandraSieveDAOTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraSieveRepositoryModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraSieveRepositoryModule.MODULE, cassandraServer.getHost()); } @Before http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOTest.java index 95880eb..56692d2 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOTest.java @@ -44,7 +44,7 @@ public class CassandraSieveQuotaDAOTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraSieveRepositoryModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraSieveRepositoryModule.MODULE, cassandraServer.getHost()); } @Before http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java index 6696d96..13d8666 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java @@ -37,7 +37,7 @@ public class CassandraSieveRepositoryTest extends AbstractSieveRepositoryTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraSieveRepositoryModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraSieveRepositoryModule.MODULE, cassandraServer.getHost()); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/3a92defc/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java index 818bf8b..2951016 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java @@ -38,7 +38,7 @@ public class CassandraUsersRepositoryTest extends AbstractUsersRepositoryTest { @BeforeClass public static void setUpClass() { - cassandra = CassandraCluster.create(new CassandraUsersRepositoryModule(), cassandraServer.getHost()); + cassandra = CassandraCluster.create(CassandraUsersRepositoryModule.MODULE, cassandraServer.getHost()); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
