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 2018/07/26 07:02:34 UTC
[16/27] james-project git commit: MAILBOX-342 Use
CassandraModule.Builder for Cassandra data-jmap
MAILBOX-342 Use CassandraModule.Builder for Cassandra data-jmap
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c6755229
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c6755229
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c6755229
Branch: refs/heads/master
Commit: c67552296f1b3eb430daef215e24b4db17f518df
Parents: b100add
Author: benwa <bt...@linagora.com>
Authored: Tue Jul 24 14:59:35 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 26 13:47:39 2018 +0700
----------------------------------------------------------------------
.../james/modules/data/CassandraJmapModule.java | 7 ++-
.../cassandra/access/CassandraAccessModule.java | 44 ++++------------
.../CassandraNotificationRegistryModule.java | 46 +++++------------
.../vacation/CassandraVacationModule.java | 54 ++++++--------------
.../CassandraAccessTokenRepositoryTest.java | 2 +-
.../CassandraNotificationRegistryTest.java | 3 +-
.../CassandraVacationRepositoryTest.java | 4 +-
7 files changed, 46 insertions(+), 114 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java
index 998b4f0..3a88c08 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java
@@ -32,7 +32,6 @@ import org.apache.james.jmap.cassandra.vacation.CassandraVacationRepository;
import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
-
import com.google.inject.multibindings.Multibinder;
public class CassandraJmapModule extends AbstractModule {
@@ -49,8 +48,8 @@ public class CassandraJmapModule extends AbstractModule {
bind(NotificationRegistry.class).to(CassandraNotificationRegistry.class);
Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
- cassandraDataDefinitions.addBinding().to(CassandraAccessModule.class);
- cassandraDataDefinitions.addBinding().to(CassandraVacationModule.class);
- cassandraDataDefinitions.addBinding().to(CassandraNotificationRegistryModule.class);
+ cassandraDataDefinitions.addBinding().toInstance(CassandraAccessModule.MODULE);
+ cassandraDataDefinitions.addBinding().toInstance(CassandraVacationModule.MODULE);
+ cassandraDataDefinitions.addBinding().toInstance(CassandraNotificationRegistryModule.MODULE);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java
index b57f71e..6f706d5 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java
@@ -22,43 +22,21 @@ package org.apache.james.jmap.cassandra.access;
import static com.datastax.driver.core.DataType.text;
import static com.datastax.driver.core.DataType.uuid;
-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.jmap.cassandra.access.table.CassandraAccessTokenTable;
import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class CassandraAccessModule implements CassandraModule {
-
- private final List<CassandraTable> tables;
- private final List<CassandraType> types;
-
- public CassandraAccessModule() {
- tables = ImmutableList.of(
- new CassandraTable(CassandraAccessTokenTable.TABLE_NAME,
- SchemaBuilder.createTable(CassandraAccessTokenTable.TABLE_NAME)
- .ifNotExists()
- .addPartitionKey(CassandraAccessTokenTable.TOKEN, uuid())
- .addColumn(CassandraAccessTokenTable.USERNAME, text())
- .withOptions()
- .comment("Holds JMAP access token required to process to authentication.")
- .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 CassandraAccessModule {
+ public static final CassandraModule MODULE = CassandraModule.table(CassandraAccessTokenTable.TABLE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addPartitionKey(CassandraAccessTokenTable.TOKEN, uuid())
+ .addColumn(CassandraAccessTokenTable.USERNAME, text())
+ .withOptions()
+ .comment("Holds JMAP access token required to process to authentication.")
+ .caching(SchemaBuilder.KeyCaching.ALL,
+ SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))
+ .build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryModule.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryModule.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryModule.java
index 734556a..270fa50 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryModule.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryModule.java
@@ -21,44 +21,22 @@ package org.apache.james.jmap.cassandra.vacation;
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.jmap.cassandra.vacation.tables.CassandraNotificationTable;
import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class CassandraNotificationRegistryModule implements CassandraModule {
-
- private final List<CassandraTable> tables;
- private final List<CassandraType> types;
-
- public CassandraNotificationRegistryModule() {
- tables = ImmutableList.of(
- new CassandraTable(CassandraNotificationTable.TABLE_NAME,
- SchemaBuilder.createTable(CassandraNotificationTable.TABLE_NAME)
- .ifNotExists()
- .addPartitionKey(CassandraNotificationTable.ACCOUNT_ID, text())
- .addClusteringColumn(CassandraNotificationTable.RECIPIENT_ID, text())
- .withOptions()
- .comment("Stores registry of vacation notification being sent.")
- .compactionOptions(SchemaBuilder.dateTieredStrategy())
- .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 CassandraNotificationRegistryModule {
+ public static final CassandraModule MODULE = CassandraModule.table(CassandraNotificationTable.TABLE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addPartitionKey(CassandraNotificationTable.ACCOUNT_ID, text())
+ .addClusteringColumn(CassandraNotificationTable.RECIPIENT_ID, text())
+ .withOptions()
+ .comment("Stores registry of vacation notification being sent.")
+ .compactionOptions(SchemaBuilder.dateTieredStrategy())
+ .caching(SchemaBuilder.KeyCaching.ALL,
+ SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))
+ .build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationModule.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationModule.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationModule.java
index 2a9ba0a..5fa8567 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationModule.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationModule.java
@@ -22,49 +22,27 @@ package org.apache.james.jmap.cassandra.vacation;
import static com.datastax.driver.core.DataType.cboolean;
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.init.CassandraZonedDateTimeModule;
import org.apache.james.backends.cassandra.utils.CassandraConstants;
import org.apache.james.jmap.cassandra.vacation.tables.CassandraVacationTable;
import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class CassandraVacationModule implements CassandraModule {
-
- private final List<CassandraTable> tables;
- private final List<CassandraType> types;
-
- public CassandraVacationModule() {
- tables = ImmutableList.of(
- new CassandraTable(CassandraVacationTable.TABLE_NAME,
- SchemaBuilder.createTable(CassandraVacationTable.TABLE_NAME)
- .ifNotExists()
- .addPartitionKey(CassandraVacationTable.ACCOUNT_ID, text())
- .addColumn(CassandraVacationTable.IS_ENABLED, cboolean())
- .addUDTColumn(CassandraVacationTable.FROM_DATE, SchemaBuilder.frozen(CassandraZonedDateTimeModule.ZONED_DATE_TIME))
- .addUDTColumn(CassandraVacationTable.TO_DATE, SchemaBuilder.frozen(CassandraZonedDateTimeModule.ZONED_DATE_TIME))
- .addColumn(CassandraVacationTable.TEXT, text())
- .addColumn(CassandraVacationTable.SUBJECT, text())
- .addColumn(CassandraVacationTable.HTML, text())
- .withOptions()
- .comment("Holds vacation definition. Allow one to automatically respond to emails with a custom message.")
- .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 CassandraVacationModule {
+ public static final CassandraModule MODULE = CassandraModule.table(CassandraVacationTable.TABLE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addPartitionKey(CassandraVacationTable.ACCOUNT_ID, text())
+ .addColumn(CassandraVacationTable.IS_ENABLED, cboolean())
+ .addUDTColumn(CassandraVacationTable.FROM_DATE, SchemaBuilder.frozen(CassandraZonedDateTimeModule.ZONED_DATE_TIME))
+ .addUDTColumn(CassandraVacationTable.TO_DATE, SchemaBuilder.frozen(CassandraZonedDateTimeModule.ZONED_DATE_TIME))
+ .addColumn(CassandraVacationTable.TEXT, text())
+ .addColumn(CassandraVacationTable.SUBJECT, text())
+ .addColumn(CassandraVacationTable.HTML, text())
+ .withOptions()
+ .comment("Holds vacation definition. Allow one to automatically respond to emails with a custom message.")
+ .caching(SchemaBuilder.KeyCaching.ALL,
+ SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))
+ .build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
index c0164cb..7908c6c 100644
--- a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
+++ b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
@@ -37,7 +37,7 @@ public class CassandraAccessTokenRepositoryTest extends AccessTokenRepositoryTes
@BeforeClass
public static void setUpClass() {
- cassandra = CassandraCluster.create(new CassandraAccessModule(), cassandraServer.getHost());
+ cassandra = CassandraCluster.create(CassandraAccessModule.MODULE, cassandraServer.getHost());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryTest.java b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryTest.java
index b1d8175..ec4e48e 100644
--- a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryTest.java
+++ b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraNotificationRegistryTest.java
@@ -38,13 +38,12 @@ public class CassandraNotificationRegistryTest extends AbstractNotificationRegis
@BeforeClass
public static void setUpClass() {
- cassandra = CassandraCluster.create(new CassandraNotificationRegistryModule(), cassandraServer.getHost());
+ cassandra = CassandraCluster.create(CassandraNotificationRegistryModule.MODULE, cassandraServer.getHost());
}
@Override
@Before
public void setUp() throws Exception {
- cassandra = CassandraCluster.create(new CassandraNotificationRegistryModule(), cassandraServer.getHost());
super.setUp();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6755229/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationRepositoryTest.java b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationRepositoryTest.java
index 6c18a27..7db419b 100644
--- a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationRepositoryTest.java
+++ b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationRepositoryTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.cassandra.vacation;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.DockerCassandraRule;
-import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
+import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.init.CassandraZonedDateTimeModule;
import org.apache.james.jmap.api.vacation.AbstractVacationRepositoryTest;
import org.apache.james.jmap.api.vacation.VacationRepository;
@@ -39,7 +39,7 @@ public class CassandraVacationRepositoryTest extends AbstractVacationRepositoryT
@BeforeClass
public static void setUpClass() {
- CassandraModuleComposite module = new CassandraModuleComposite(new CassandraVacationModule(), new CassandraZonedDateTimeModule());
+ CassandraModule module = CassandraModule.aggregateModules(CassandraVacationModule.MODULE, CassandraZonedDateTimeModule.MODULE);
cassandra = CassandraCluster.create(module, cassandraServer.getHost());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org