JAMES-2544 Use registered extensions for Cassandra event sourcing systems

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

Branch: refs/heads/master
Commit: 6e8d222aca6366f1b90b4374e693f6752e66c5da
Parents: df6fe4f
Author: Benoit Tellier <[email protected]>
Authored: Thu Sep 13 15:22:51 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Fri Sep 14 10:18:33 2018 +0700

----------------------------------------------------------------------
 .../CassandraEventSourcingSystemTest.java       |  7 +-
 .../cassandra/CassandraEventStoreExtension.java | 60 ++++++++++++++-
 .../cassandra/CassandraEventStoreTest.java      |  7 +-
 .../CassandraGenericEventStoreExtension.java    | 80 --------------------
 .../listeners/CassandraEventStoreExtension.java | 31 --------
 ...draQuotaMailingListenersIntegrationTest.java | 10 ++-
 ...draEventSourcingFilteringManagementTest.java |  9 ++-
 .../filtering/CassandraFilteringExtension.java  | 30 --------
 8 files changed, 75 insertions(+), 159 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.java
----------------------------------------------------------------------
diff --git 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.java
 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.java
index e538b93..92c5401 100644
--- 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.java
+++ 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.java
@@ -20,9 +20,10 @@
 package org.apache.james.eventsourcing.eventstore.cassandra;
 
 import org.apache.james.eventsourcing.EventSourcingSystemTest;
-import org.junit.jupiter.api.extension.ExtendWith;
+import 
org.apache.james.eventsourcing.eventstore.cassandra.dto.TestEventDTOModules;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
-@ExtendWith(CassandraEventStoreExtension.class)
 public class CassandraEventSourcingSystemTest implements 
EventSourcingSystemTest {
-
+    @RegisterExtension
+    static CassandraEventStoreExtension eventStoreExtension = new 
CassandraEventStoreExtension(TestEventDTOModules.TEST_TYPE);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.java
----------------------------------------------------------------------
diff --git 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.java
 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.java
index b913ef8..52ce427 100644
--- 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.java
+++ 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.java
@@ -19,12 +19,64 @@
 
 package org.apache.james.eventsourcing.eventstore.cassandra;
 
-import 
org.apache.james.eventsourcing.eventstore.cassandra.dto.TestEventDTOModules;
+import java.util.Arrays;
+import java.util.Set;
+
+import org.apache.james.backends.cassandra.CassandraClusterExtension;
+import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.eventsourcing.eventstore.EventStore;
+import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule;
+import org.junit.jupiter.api.extension.AfterAllCallback;
+import org.junit.jupiter.api.extension.AfterEachCallback;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
+import org.junit.jupiter.api.extension.BeforeEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.ParameterContext;
+import org.junit.jupiter.api.extension.ParameterResolutionException;
+import org.junit.jupiter.api.extension.ParameterResolver;
 
 import com.google.common.collect.ImmutableSet;
 
-public class CassandraEventStoreExtension extends 
CassandraGenericEventStoreExtension {
-    public CassandraEventStoreExtension() {
-        super(ImmutableSet.of(TestEventDTOModules.TEST_TYPE));
+public class CassandraEventStoreExtension implements BeforeAllCallback, 
AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
+    private final Set<EventDTOModule> modules;
+    private CassandraClusterExtension cassandra;
+    private EventStoreDao eventStoreDao;
+
+    public CassandraEventStoreExtension(EventDTOModule... modules) {
+        this.modules = 
Arrays.stream(modules).collect(ImmutableSet.toImmutableSet());
+        this.cassandra = new 
CassandraClusterExtension(CassandraEventStoreModule.MODULE);
+    }
+
+    @Override
+    public void beforeAll(ExtensionContext context) {
+        cassandra.beforeAll(context);
+    }
+
+    @Override
+    public void afterAll(ExtensionContext context) {
+        cassandra.afterAll(context);
+    }
+
+    @Override
+    public void beforeEach(ExtensionContext context) {
+        JsonEventSerializer jsonEventSerializer = new 
JsonEventSerializer(modules);
+
+        eventStoreDao = new 
EventStoreDao(cassandra.getCassandraCluster().getConf(), 
CassandraUtils.WITH_DEFAULT_CONFIGURATION,
+            jsonEventSerializer);
+    }
+
+    @Override
+    public void afterEach(ExtensionContext context) {
+        cassandra.afterEach(context);
+    }
+
+    @Override
+    public boolean supportsParameter(ParameterContext parameterContext, 
ExtensionContext extensionContext) throws ParameterResolutionException {
+        return (parameterContext.getParameter().getType() == EventStore.class);
+    }
+
+    @Override
+    public Object resolveParameter(ParameterContext parameterContext, 
ExtensionContext extensionContext) throws ParameterResolutionException {
+        return new CassandraEventStore(eventStoreDao);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.java
----------------------------------------------------------------------
diff --git 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.java
 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.java
index 6d240c3..f40eac1 100644
--- 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.java
+++ 
b/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.java
@@ -20,9 +20,10 @@
 package org.apache.james.eventsourcing.eventstore.cassandra;
 
 import org.apache.james.eventsourcing.eventstore.EventStoreTest;
-import org.junit.jupiter.api.extension.ExtendWith;
+import 
org.apache.james.eventsourcing.eventstore.cassandra.dto.TestEventDTOModules;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
-@ExtendWith(CassandraEventStoreExtension.class)
 class CassandraEventStoreTest implements EventStoreTest {
-
+    @RegisterExtension
+    static CassandraEventStoreExtension eventStoreExtension = new 
CassandraEventStoreExtension(TestEventDTOModules.TEST_TYPE);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/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
deleted file mode 100644
index 56eee29..0000000
--- 
a/event-sourcing/event-store-cassandra/src/test/java/org/apache/james/eventsourcing/eventstore/cassandra/CassandraGenericEventStoreExtension.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.eventsourcing.eventstore.cassandra;
-
-import java.util.Set;
-
-import org.apache.james.backends.cassandra.CassandraClusterExtension;
-import org.apache.james.backends.cassandra.utils.CassandraUtils;
-import org.apache.james.eventsourcing.eventstore.EventStore;
-import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class CassandraGenericEventStoreExtension implements BeforeAllCallback, 
AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-    @SuppressWarnings("rawtypes")
-    private final Set<EventDTOModule> modules;
-    private CassandraClusterExtension cassandra;
-    private EventStoreDao eventStoreDao;
-
-    public CassandraGenericEventStoreExtension(@SuppressWarnings("rawtypes") 
Set<EventDTOModule> modules) {
-        this.modules = modules;
-        cassandra = new 
CassandraClusterExtension(CassandraEventStoreModule.MODULE);
-    }
-
-    @Override
-    public void beforeAll(ExtensionContext context) {
-        cassandra.beforeAll(context);
-    }
-
-    @Override
-    public void afterAll(ExtensionContext context) {
-        cassandra.afterAll(context);
-    }
-
-    @Override
-    public void beforeEach(ExtensionContext context) {
-        JsonEventSerializer jsonEventSerializer = new 
JsonEventSerializer(modules);
-
-        eventStoreDao = new 
EventStoreDao(cassandra.getCassandraCluster().getConf(), 
CassandraUtils.WITH_DEFAULT_CONFIGURATION,
-            jsonEventSerializer);
-    }
-
-    @Override
-    public void afterEach(ExtensionContext context) {
-        cassandra.afterEach(context);
-    }
-
-    @Override
-    public boolean supportsParameter(ParameterContext parameterContext, 
ExtensionContext extensionContext) throws ParameterResolutionException {
-        return (parameterContext.getParameter().getType() == EventStore.class);
-    }
-
-    @Override
-    public Object resolveParameter(ParameterContext parameterContext, 
ExtensionContext extensionContext) throws ParameterResolutionException {
-        return new CassandraEventStore(eventStoreDao);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraEventStoreExtension.java
----------------------------------------------------------------------
diff --git 
a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraEventStoreExtension.java
 
b/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraEventStoreExtension.java
deleted file mode 100644
index 0218c78..0000000
--- 
a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraEventStoreExtension.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.mailbox.quota.cassandra.listeners;
-
-import 
org.apache.james.eventsourcing.eventstore.cassandra.CassandraGenericEventStoreExtension;
-import org.apache.james.mailbox.quota.cassandra.dto.QuotaEventDTOModules;
-
-import com.google.common.collect.ImmutableSet;
-
-public class CassandraEventStoreExtension extends 
CassandraGenericEventStoreExtension {
-    public CassandraEventStoreExtension() {
-        super(ImmutableSet.of(QuotaEventDTOModules.QUOTA_THRESHOLD_CHANGE));
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
 
b/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
index 7835898..8864507 100644
--- 
a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
+++ 
b/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
@@ -19,10 +19,12 @@
 
 package org.apache.james.mailbox.quota.cassandra.listeners;
 
+import 
org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreExtension;
+import org.apache.james.mailbox.quota.cassandra.dto.QuotaEventDTOModules;
 import 
org.apache.james.mailbox.quota.mailing.listeners.QuotaThresholdMailingIntegrationTest;
-import org.junit.jupiter.api.extension.ExtendWith;
-
-@ExtendWith(CassandraEventStoreExtension.class)
-public class CassandraQuotaMailingListenersIntegrationTest implements 
QuotaThresholdMailingIntegrationTest {
+import org.junit.jupiter.api.extension.RegisterExtension;
 
+class CassandraQuotaMailingListenersIntegrationTest implements 
QuotaThresholdMailingIntegrationTest {
+    @RegisterExtension
+    static CassandraEventStoreExtension eventStoreExtension = new 
CassandraEventStoreExtension(QuotaEventDTOModules.QUOTA_THRESHOLD_CHANGE);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
 
b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
index 61cf8e8..68be998 100644
--- 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
+++ 
b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
@@ -19,10 +19,11 @@
 
 package org.apache.james.jmap.cassandra.filtering;
 
+import 
org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreExtension;
 import org.apache.james.jmap.api.filtering.FilteringManagementContract;
-import org.junit.jupiter.api.extension.ExtendWith;
-
-@ExtendWith(CassandraFilteringExtension.class)
-public class CassandraEventSourcingFilteringManagementTest implements 
FilteringManagementContract {
+import org.junit.jupiter.api.extension.RegisterExtension;
 
+class CassandraEventSourcingFilteringManagementTest implements 
FilteringManagementContract {
+    @RegisterExtension
+    static CassandraEventStoreExtension eventStoreExtension = new 
CassandraEventStoreExtension(FilteringRuleSetDefineDTOModules.FILTERING_RULE_SET_DEFINED);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6e8d222a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringExtension.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringExtension.java
 
b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringExtension.java
deleted file mode 100644
index 300bd5d..0000000
--- 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringExtension.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.jmap.cassandra.filtering;
-
-import 
org.apache.james.eventsourcing.eventstore.cassandra.CassandraGenericEventStoreExtension;
-
-import com.google.common.collect.ImmutableSet;
-
-public class CassandraFilteringExtension extends 
CassandraGenericEventStoreExtension {
-    public CassandraFilteringExtension() {
-        
super(ImmutableSet.of(FilteringRuleSetDefineDTOModules.FILTERING_RULE_SET_DEFINED));
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to