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