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:35 UTC
[17/27] james-project git commit: MAILBOX-342 Use
CassandraModule.Builder in cassandra-backend
MAILBOX-342 Use CassandraModule.Builder in cassandra-backend
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/63b7ca83
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/63b7ca83
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/63b7ca83
Branch: refs/heads/master
Commit: 63b7ca83de34fba19bc097cdf4e7a352dabf5175
Parents: dd7020d
Author: benwa <bt...@linagora.com>
Authored: Tue Jul 24 14:47:02 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 26 13:47:39 2018 +0700
----------------------------------------------------------------------
.../init/CassandraZonedDateTimeModule.java | 46 +++++---------------
.../versions/CassandraSchemaVersionModule.java | 41 ++++-------------
.../init/CassandraTypeProviderTest.java | 23 +++-------
.../backends/cassandra/utils/PaggingTest.java | 27 +++---------
.../versions/CassandraSchemaVersionDAOTest.java | 2 +-
.../modules/mailbox/CassandraSessionModule.java | 4 +-
6 files changed, 34 insertions(+), 109 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java
index 0ef3461..fe81f81 100644
--- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java
+++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java
@@ -22,41 +22,17 @@ package org.apache.james.backends.cassandra.init;
import static com.datastax.driver.core.DataType.text;
import static com.datastax.driver.core.DataType.timestamp;
-import java.util.Collections;
-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 com.datastax.driver.core.schemabuilder.SchemaBuilder;
-
-public class CassandraZonedDateTimeModule implements CassandraModule {
-
- public static final String ZONED_DATE_TIME = "zonedDateTime";
- public static final String DATE = "date";
- public static final String TIME_ZONE = "timeZone";
-
- private final List<CassandraTable> tables;
- private final List<CassandraType> types;
-
- public CassandraZonedDateTimeModule() {
- tables = Collections.emptyList();
- types = Collections.singletonList(
- new CassandraType(ZONED_DATE_TIME,
- SchemaBuilder.createType(ZONED_DATE_TIME)
- .ifNotExists()
- .addColumn(DATE, timestamp())
- .addColumn(TIME_ZONE, text())));
- }
-
- @Override
- public List<CassandraTable> moduleTables() {
- return tables;
- }
- @Override
- public List<CassandraType> moduleTypes() {
- return types;
- }
+public interface CassandraZonedDateTimeModule {
+ String ZONED_DATE_TIME = "zonedDateTime";
+ String DATE = "date";
+ String TIME_ZONE = "timeZone";
+
+ CassandraModule MODULE = CassandraModule.type(ZONED_DATE_TIME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addColumn(DATE, timestamp())
+ .addColumn(TIME_ZONE, text()))
+ .build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java
index 0b5d55d..74d043e 100644
--- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java
+++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java
@@ -22,39 +22,16 @@ package org.apache.james.backends.cassandra.versions;
import static com.datastax.driver.core.DataType.cint;
import static com.datastax.driver.core.DataType.timeuuid;
-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.versions.table.CassandraSchemaVersionTable;
-import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class CassandraSchemaVersionModule implements CassandraModule {
-
- private final List<CassandraTable> tables;
-
- public CassandraSchemaVersionModule() {
- this.tables = ImmutableList.of(
- new CassandraTable(CassandraSchemaVersionTable.TABLE_NAME,
- SchemaBuilder.createTable(CassandraSchemaVersionTable.TABLE_NAME)
- .ifNotExists()
- .addPartitionKey(CassandraSchemaVersionTable.KEY, timeuuid())
- .addClusteringColumn(CassandraSchemaVersionTable.VALUE, cint())
- .withOptions()
- .comment("Holds the history of the versions of the schema used.")));
- }
-
-
- @Override
- public List<CassandraTable> moduleTables() {
- return tables;
- }
-
- @Override
- public List<CassandraType> moduleTypes() {
- return ImmutableList.of();
- }
+public interface CassandraSchemaVersionModule {
+ CassandraModule MODULE = CassandraModule.table(CassandraSchemaVersionTable.TABLE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addPartitionKey(CassandraSchemaVersionTable.KEY, timeuuid())
+ .addClusteringColumn(CassandraSchemaVersionTable.VALUE, cint())
+ .withOptions()
+ .comment("Holds the history of the versions of the schema used."))
+ .build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java
index 1b48b22..7993251 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java
@@ -22,21 +22,15 @@ package org.apache.james.backends.cassandra.init;
import static com.datastax.driver.core.DataType.text;
import static org.assertj.core.api.Assertions.assertThat;
-import java.util.Arrays;
-import java.util.List;
-
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.DockerCassandraRule;
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.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
public class CassandraTypeProviderTest {
@@ -50,18 +44,11 @@ public class CassandraTypeProviderTest {
@Before
public void setUp() {
- module = new CassandraModule() {
- @Override public List<CassandraTable> moduleTables() {
- return ImmutableList.of();
- }
-
- @Override public List<CassandraType> moduleTypes() {
- return ImmutableList.copyOf(
- Arrays.asList(new CassandraType(TYPE_NAME, SchemaBuilder.createType(TYPE_NAME)
- .ifNotExists()
- .addColumn(PROPERTY, text()))));
- }
- };
+ module = CassandraModule.type(TYPE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addColumn(PROPERTY, text()))
+ .build();
cassandra = CassandraCluster.create(module, cassandraServer.getHost());
cassandra.getTypesProvider();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java
index 9fde48f..1946928 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java
@@ -24,15 +24,12 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
import static org.assertj.core.api.Assertions.assertThat;
-import java.util.List;
import java.util.UUID;
import java.util.stream.IntStream;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.DockerCassandraRule;
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.util.CompletableFutureUtil;
import org.junit.After;
import org.junit.AfterClass;
@@ -42,9 +39,7 @@ import org.junit.ClassRule;
import org.junit.Test;
import com.datastax.driver.core.DataType;
-import com.datastax.driver.core.schemabuilder.SchemaBuilder;
import com.datastax.driver.core.utils.UUIDs;
-import com.google.common.collect.ImmutableList;
public class PaggingTest {
@@ -58,24 +53,14 @@ public class PaggingTest {
private static CassandraCluster cassandra;
private CassandraAsyncExecutor executor;
-
@BeforeClass
public static void setUpClass() {
- CassandraModule modules = new CassandraModule() {
- @Override
- public List<CassandraTable> moduleTables() {
- return ImmutableList.of(new CassandraTable(TABLE_NAME,
- SchemaBuilder.createTable(TABLE_NAME)
- .ifNotExists()
- .addPartitionKey(ID, DataType.timeuuid())
- .addClusteringColumn(CLUSTERING, DataType.bigint())));
- }
-
- @Override
- public List<CassandraType> moduleTypes() {
- return ImmutableList.of();
- }
- };
+ CassandraModule modules = CassandraModule.table(TABLE_NAME)
+ .statement(statement -> statement
+ .ifNotExists()
+ .addPartitionKey(ID, DataType.timeuuid())
+ .addClusteringColumn(CLUSTERING, DataType.bigint()))
+ .build();
cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java
index 463fb63..7db01dd 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java
@@ -43,7 +43,7 @@ public class CassandraSchemaVersionDAOTest {
@BeforeClass
public static void setUpClass() {
- cassandra = CassandraCluster.create(new CassandraSchemaVersionModule(), cassandraServer.getHost());
+ cassandra = CassandraCluster.create(CassandraSchemaVersionModule.MODULE, cassandraServer.getHost());
}
@Before
http://git-wip-us.apache.org/repos/asf/james-project/blob/63b7ca83/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
index 4214367..0f27457 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
@@ -73,8 +73,8 @@ public class CassandraSessionModule extends AbstractModule {
bind(Cluster.class).toProvider(ResilientClusterProvider.class);
Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
- cassandraDataDefinitions.addBinding().to(CassandraZonedDateTimeModule.class);
- cassandraDataDefinitions.addBinding().to(CassandraSchemaVersionModule.class);
+ cassandraDataDefinitions.addBinding().toInstance(CassandraZonedDateTimeModule.MODULE);
+ cassandraDataDefinitions.addBinding().toInstance(CassandraSchemaVersionModule.MODULE);
bind(CassandraSchemaVersionManager.class).in(Scopes.SINGLETON);
bind(CassandraSchemaVersionDAO.class).in(Scopes.SINGLETON);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org