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:24 UTC

[06/27] james-project git commit: MAILBOX-342 Use CassandraModule.Builder for Cassandra event sourcing implementation

MAILBOX-342 Use CassandraModule.Builder for Cassandra event sourcing implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3c507709
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3c507709
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3c507709

Branch: refs/heads/master
Commit: 3c50770952bbc4ea03a2bb360648ec4829cb5935
Parents: 2fa0bbe
Author: benwa <bt...@linagora.com>
Authored: Tue Jul 24 14:55:01 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 26 13:47:39 2018 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraEventStoreModule.java    | 46 +++++---------------
 .../CassandraGenericEventStoreExtension.java    |  2 +-
 .../eventstore/CassandraEventStoreModule.java   |  2 +-
 ...tSourcingDLPConfigurationStoreExtension.java |  2 +-
 4 files changed, 15 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3c507709/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.java
----------------------------------------------------------------------
diff --git a/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.java b/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.java
index 85dab3c..6613654 100644
--- a/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.java
+++ b/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.java
@@ -19,44 +19,22 @@
 
 package org.apache.james.eventsourcing.eventstore.cassandra;
 
-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.DataType;
 import com.datastax.driver.core.schemabuilder.SchemaBuilder;
-import com.google.common.collect.ImmutableList;
-
-public class CassandraEventStoreModule implements CassandraModule {
-    private final List<CassandraTable> tables;
-    private final List<CassandraType> types;
-
-    public CassandraEventStoreModule() {
-        tables = ImmutableList.of(
-            new CassandraTable(CassandraEventStoreTable.EVENTS_TABLE,
-                SchemaBuilder.createTable(CassandraEventStoreTable.EVENTS_TABLE)
-                    .ifNotExists()
-                    .addPartitionKey(CassandraEventStoreTable.AGGREGATE_ID, DataType.varchar())
-                    .addClusteringColumn(CassandraEventStoreTable.EVENT_ID, DataType.cint())
-                    .addColumn(CassandraEventStoreTable.EVENT, DataType.text())
-                    .withOptions()
-                    .comment("Store events of a EventSourcing aggregate")
-                    .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 interface CassandraEventStoreModule {
+    CassandraModule MODULE = CassandraModule.table(CassandraEventStoreTable.EVENTS_TABLE)
+        .statement(statement -> statement
+            .ifNotExists()
+            .addPartitionKey(CassandraEventStoreTable.AGGREGATE_ID, DataType.varchar())
+            .addClusteringColumn(CassandraEventStoreTable.EVENT_ID, DataType.cint())
+            .addColumn(CassandraEventStoreTable.EVENT, DataType.text())
+            .withOptions()
+            .comment("Store events of a EventSourcing aggregate")
+            .caching(SchemaBuilder.KeyCaching.ALL,
+                SchemaBuilder.rows(CassandraConstants.DEFAULT_CACHED_ROW_PER_PARTITION)))
+        .build();
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3c507709/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java
----------------------------------------------------------------------
diff --git a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java
index 1db5f09..94d4e10 100644
--- a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java
+++ b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java
@@ -53,7 +53,7 @@ public class CassandraGenericEventStoreExtension implements BeforeAllCallback, A
         dockerCassandraExtension.beforeAll(context);
         dockerCassandra = dockerCassandraExtension.getDockerCassandra();
         cassandra = CassandraCluster.create(
-            new CassandraEventStoreModule(), dockerCassandra.getHost());
+            CassandraEventStoreModule.MODULE, dockerCassandra.getHost());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/3c507709/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java
index 6707c12..39ccced 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java
@@ -37,7 +37,7 @@ public class CassandraEventStoreModule extends AbstractModule {
 
         Multibinder.newSetBinder(binder(), CassandraModule.class)
             .addBinding()
-            .to(org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreModule.class);
+            .toInstance(org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreModule.MODULE);
 
         Multibinder.newSetBinder(binder(), EventDTOModule.class);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3c507709/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java b/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java
index b10ff03..e5d04fb 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java
@@ -50,7 +50,7 @@ public class CassandraEventSourcingDLPConfigurationStoreExtension implements Bef
     public void beforeAll(ExtensionContext context) throws Exception {
         dockerCassandraExtension.beforeAll(context);
         cassandra = CassandraCluster.create(
-            new CassandraEventStoreModule(),
+            CassandraEventStoreModule.MODULE,
             dockerCassandraExtension.getDockerCassandra().getHost());
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org