You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/02/23 03:45:26 UTC

[james-project] 13/14: JAMES-3501 Starting 2 Cassandra james server concurrently fails

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 1c241aae3917f75cb8480e80a320a9cc0d511455
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jan 28 11:51:28 2019 +0700

    JAMES-3501 Starting 2 Cassandra james server concurrently fails
---
 .../init/CassandraTableManagerConcurrentTest.java  | 65 ++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTableManagerConcurrentTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTableManagerConcurrentTest.java
new file mode 100644
index 0000000..2d31c77
--- /dev/null
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTableManagerConcurrentTest.java
@@ -0,0 +1,65 @@
+/****************************************************************
+ * 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.backends.cassandra.init;
+
+import java.time.Duration;
+
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.DockerCassandraExtension;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.util.Host;
+import org.apache.james.util.concurrency.ConcurrentTestRunner;
+import org.apache.james.util.concurrency.ConcurrentTestRunner.ConcurrentOperation;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import com.datastax.driver.core.DataType;
+
+@Disabled("JAMES-3501 Concurrent start is not supported. Instead start a single server then scale.")
+class CassandraTableManagerConcurrentTest {
+    private static final String TABLE_NAME = "tablename";
+
+    public static final CassandraModule MODULE = CassandraModule.aggregateModules(
+            CassandraSchemaVersionModule.MODULE,
+            CassandraModule.table(TABLE_NAME)
+                .comment("Testing table")
+                .statement(statement -> statement
+                        .addPartitionKey("id", DataType.timeuuid())
+                        .addClusteringColumn("clustering", DataType.bigint()))
+                .build());
+
+    @RegisterExtension
+    static DockerCassandraExtension cassandraExtension = new DockerCassandraExtension();
+
+    @Test
+    void initializeTableShouldCreateAllTheTables() throws Exception{
+        Host cassandraHost = cassandraExtension.getDockerCassandra().getHost();
+        ConcurrentOperation concurrentOperation = (a, b) -> CassandraCluster.create(MODULE, cassandraHost);
+
+
+        ConcurrentTestRunner.builder()
+            .operation(concurrentOperation)
+            .threadCount(2)
+            .operationCount(10)
+            .runSuccessfullyWithin(Duration.ofMinutes(1));
+    }
+}
\ No newline at end of file


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