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 2020/03/02 03:16:08 UTC

[james-project] 11/29: JAMES-3061 Simplify FixingGhostMailboxTest setup

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 9d9edcd8a820446f54d00db013051c83345eb0a9
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Tue Feb 25 17:10:08 2020 +0700

    JAMES-3061 Simplify FixingGhostMailboxTest setup
---
 .../org/apache/james/server/CassandraProbe.java    |  4 ++--
 .../java/org/apache/james/CassandraExtension.java  | 24 ----------------------
 .../rabbitmq/FixingGhostMailboxTest.java           | 23 +++++++++------------
 3 files changed, 12 insertions(+), 39 deletions(-)

diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraProbe.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraProbe.java
index 8bb6952..6483b16 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraProbe.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/server/CassandraProbe.java
@@ -32,7 +32,7 @@ public class CassandraProbe implements GuiceProbe {
         this.clusterConfiguration = configuration;
     }
 
-    public String getKeyspace() {
-        return clusterConfiguration.getKeyspace();
+    public ClusterConfiguration getConfiguration() {
+        return clusterConfiguration;
     }
 }
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraExtension.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraExtension.java
index 2532c49..7808923 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraExtension.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraExtension.java
@@ -19,25 +19,12 @@
 
 package org.apache.james;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.apache.james.util.Host;
 import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
 
 import com.google.inject.Module;
 
 public class CassandraExtension implements GuiceModuleTestExtension {
 
-    @Target(ElementType.PARAMETER)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface CassandraHost {
-    }
-
     private final DockerCassandraRule cassandra;
 
     public CassandraExtension() {
@@ -70,15 +57,4 @@ public class CassandraExtension implements GuiceModuleTestExtension {
     public void unpause() {
         cassandra.unpause();
     }
-
-    @Override
-    public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
-        return parameterContext.getParameter().getType() == Host.class
-            && parameterContext.getParameter().isAnnotationPresent(CassandraHost.class);
-    }
-
-    @Override
-    public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
-        return cassandra.getHost();
-    }
 }
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
index 87529d2..49685df 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
@@ -43,12 +43,13 @@ import java.nio.charset.StandardCharsets;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.james.CassandraExtension;
-import org.apache.james.CassandraExtension.CassandraHost;
 import org.apache.james.CassandraRabbitMQJamesServerMain;
 import org.apache.james.DockerElasticSearchExtension;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.JamesServerBuilder;
 import org.apache.james.JamesServerExtension;
+import org.apache.james.backends.cassandra.init.ClusterFactory;
+import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration;
 import org.apache.james.core.Username;
 import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
@@ -71,7 +72,6 @@ import org.apache.james.modules.RabbitMQExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.server.CassandraProbe;
 import org.apache.james.task.TaskManager;
-import org.apache.james.util.Host;
 import org.apache.james.util.Port;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.WebAdminGuiceProbe;
@@ -122,7 +122,6 @@ class FixingGhostMailboxTest {
     private AccessToken accessToken;
     private MailboxProbeImpl mailboxProbe;
     private ACLProbe aclProbe;
-    private Session session;
     private ComposedMessageId message1;
     private MailboxId aliceGhostInboxId;
     private MailboxPath aliceInboxPath;
@@ -130,7 +129,7 @@ class FixingGhostMailboxTest {
     private RequestSpecification webadminSpecification;
 
     @BeforeEach
-    void setup(GuiceJamesServer server, @CassandraHost Host cassandraHost) throws Throwable {
+    void setup(GuiceJamesServer server) throws Throwable {
         WebAdminGuiceProbe webAdminProbe = server.getProbe(WebAdminGuiceProbe.class);
         mailboxProbe = server.getProbe(MailboxProbeImpl.class);
         aclProbe = server.getProbe(ACLProbeImpl.class);
@@ -152,17 +151,15 @@ class FixingGhostMailboxTest {
             .addUser(BOB, BOB_SECRET);
         accessToken = authenticateJamesUser(baseUri(jmapPort), Username.of(ALICE), ALICE_SECRET);
 
-        session = Cluster.builder()
-            .withoutJMXReporting()
-            .addContactPoint(cassandraHost.getHostName())
-            .withPort(cassandraHost.getPort())
-            .build()
-            .connect(server.getProbe(CassandraProbe.class).getKeyspace());
-
-        simulateGhostMailboxBug();
+        ClusterConfiguration cassandraConfiguration = server.getProbe(CassandraProbe.class).getConfiguration();
+        try (Cluster cluster = ClusterFactory.create(cassandraConfiguration)) {
+            try (Session session = cluster.connect(cassandraConfiguration.getKeyspace())) {
+                simulateGhostMailboxBug(session);
+            }
+        }
     }
 
-    private void simulateGhostMailboxBug() throws MailboxException, IOException {
+    private void simulateGhostMailboxBug(Session session) throws MailboxException, IOException {
         // State before ghost mailbox bug
         // Alice INBOX is delegated to Bob and contains one message
         aliceInboxPath = MailboxPath.inbox(Username.of(ALICE));


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