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/20 11:19:35 UTC
[03/10] james-project git commit: JAMES-2470 CassandraCluster don't
need to await
JAMES-2470 CassandraCluster don't need to await
This, is already performed by the Cassandra's testcontainer wait strategy
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3ce75528
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3ce75528
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3ce75528
Branch: refs/heads/master
Commit: 3ce755286d1d49912bf06837797b1459796f7a51
Parents: 86debb6
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 19 15:57:31 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 20 18:17:55 2018 +0700
----------------------------------------------------------------------
.../backends/cassandra/CassandraCluster.java | 63 +++++---------------
1 file changed, 14 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3ce75528/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
----------------------------------------------------------------------
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
index 8e9df5b..eec7c80 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
@@ -18,38 +18,27 @@
****************************************************************/
package org.apache.james.backends.cassandra;
-import java.util.Optional;
-
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.commons.text.RandomStringGenerator;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
import org.apache.james.backends.cassandra.init.ClusterBuilder;
import org.apache.james.backends.cassandra.init.ClusterWithKeyspaceCreatedFactory;
import org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory;
import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration;
-import org.apache.james.backends.cassandra.utils.FunctionRunnerWithRetry;
import org.apache.james.util.Host;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
-import com.datastax.driver.core.exceptions.NoHostAvailableException;
public final class CassandraCluster implements AutoCloseable {
-
- private static final int REPLICATION_FACTOR = 1;
-
- private static final long SLEEP_BEFORE_RETRY = 20;
- private static final int MAX_RETRY = 20000;
+ public static final String KEYSPACE = "testing";
private final CassandraModule module;
private Session session;
private CassandraTypesProvider typesProvider;
private Cluster cluster;
- private String keyspace;
- private ClusterConfiguration clusterConfiguration;
public static CassandraCluster create(CassandraModule module, String host, int port) {
return new CassandraCluster(module, host, port);
@@ -67,15 +56,19 @@ public final class CassandraCluster implements AutoCloseable {
.host(host)
.port(port)
.build();
- keyspace = new RandomStringGenerator.Builder().withinRange('a', 'z').build().generate(10);
- clusterConfiguration = ClusterConfiguration.builder()
- .host(Host.from(host, port))
- .keyspace(keyspace)
- .replicationFactor(1)
- .maxRetry(10)
- .minDelay(5000)
- .build();
- session = new FunctionRunnerWithRetry(MAX_RETRY).executeAndRetrieveObject(CassandraCluster.this::tryInitializeSession);
+ session = new SessionWithInitializedTablesFactory(
+ ClusterConfiguration.builder()
+ .host(Host.from(host, port))
+ .keyspace(KEYSPACE)
+ .replicationFactor(1)
+ .build(),
+ ClusterWithKeyspaceCreatedFactory
+ .config(cluster, KEYSPACE)
+ .replicationFactor(1)
+ .disableDurableWrites()
+ .clusterWithInitializedKeyspace(),
+ module)
+ .get();
typesProvider = new CassandraTypesProvider(module, session);
} catch (Exception exception) {
throw new RuntimeException(exception);
@@ -85,34 +78,6 @@ public final class CassandraCluster implements AutoCloseable {
public Session getConf() {
return session;
}
-
- private Optional<Session> tryInitializeSession() {
- try {
- Cluster clusterWithInitializedKeyspace = ClusterWithKeyspaceCreatedFactory
- .config(getCluster(), keyspace)
- .replicationFactor(REPLICATION_FACTOR)
- .disableDurableWrites()
- .clusterWithInitializedKeyspace();
-
- return Optional.of(new SessionWithInitializedTablesFactory(clusterConfiguration, clusterWithInitializedKeyspace, module)
- .get());
- } catch (NoHostAvailableException exception) {
- sleep(SLEEP_BEFORE_RETRY);
- return Optional.empty();
- }
- }
-
- public Cluster getCluster() {
- return cluster;
- }
-
- private void sleep(long sleepMs) {
- try {
- Thread.sleep(sleepMs);
- } catch (InterruptedException interruptedException) {
- throw new RuntimeException(interruptedException);
- }
- }
public CassandraTypesProvider getTypesProvider() {
return typesProvider;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org