diff --git a/src/main/java/com/thinkaurelius/titan/diskstorage/astyanax/AstyanaxStorageManager.java b/src/main/java/com/thinkaurelius/titan/diskstorage/astyanax/AstyanaxStorageManager.java index 567d9d13a9..61d366f9ed 100644 --- a/src/main/java/com/thinkaurelius/titan/diskstorage/astyanax/AstyanaxStorageManager.java +++ b/src/main/java/com/thinkaurelius/titan/diskstorage/astyanax/AstyanaxStorageManager.java @@ -2,10 +2,9 @@ import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.configuration.Configuration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.netflix.astyanax.AstyanaxContext; import com.netflix.astyanax.Cluster; @@ -47,10 +46,13 @@ public class AstyanaxStorageManager implements StorageManager { public static final String CLUSTER_DEFAULT = "Test Cluster"; public static final String CLUSTER_KEY = "cluster"; - private final AstyanaxContext ksctx; - private final AstyanaxContext clctx; - private final AstyanaxContext.Builder ctxbuilder; - + private static final ConcurrentHashMap> keyspaces = + new ConcurrentHashMap>(); + + private static final ConcurrentHashMap> clusters = + new ConcurrentHashMap>(); + + private final AstyanaxContext ks; private final String ksName; private final String clusterName; @@ -62,14 +64,14 @@ public class AstyanaxStorageManager implements StorageManager { private final String llmPrefix; - private static final Logger log = LoggerFactory.getLogger(AstyanaxStorageManager.class); - public AstyanaxStorageManager(Configuration config) { this.clusterName = config.getString(CLUSTER_KEY, CLUSTER_DEFAULT); this.ksName = config.getString(KEYSPACE_KEY, KEYSPACE_DEFAULT); + this.ks = getOrCreateKeyspace(); + this.rid = ConfigHelper.getRid(config); this.llmPrefix = @@ -91,17 +93,8 @@ public AstyanaxStorageManager(Configuration config) { config.getLong( GraphDatabaseConfiguration.LOCK_EXPIRE_MS, GraphDatabaseConfiguration.LOCK_EXPIRE_MS_DEFAULT); - - this.ctxbuilder = getContextBuilder(config); - this.clctx = getOrCreateCluster(); - - ensureKeyspaceExists(clctx.getEntity()); - - this.ksctx = getOrCreateKeyspace(); - idmanager = new OrderedKeyColumnValueIDManager( - openDatabase("titan_ids", null), rid, config); } @@ -113,9 +106,6 @@ public long[] getIDBlock(int partition) { @Override public OrderedKeyColumnValueStore openDatabase(String name) throws GraphStorageException { - - getOrCreateKeyspace(); - AstyanaxOrderedKeyColumnValueStore lockStore = openDatabase(name + "_locks", null); LocalLockMediator llm = LocalLockMediators.INSTANCE.get(llmPrefix + ":" + ksName + ":" + name); @@ -126,14 +116,18 @@ public OrderedKeyColumnValueStore openDatabase(String name) @Override public TransactionHandle beginTransaction() { return new AstyanaxTransaction(); - } @Override public void close() { - // Shutdown the Astyanax contexts - ksctx.shutdown(); - clctx.shutdown(); + // TODO Auto-generated method stub + + } + + + // TODO remove + public static void clearKeyspaces() { + keyspaces.clear(); } private SimpleLockConfig.Builder makeLockConfigBuilder(AstyanaxOrderedKeyColumnValueStore lockStore, LocalLockMediator llm) { @@ -150,25 +144,28 @@ private AstyanaxOrderedKeyColumnValueStore openDatabase(String name, SimpleLockC ensureColumnFamilyExists(name); - return new AstyanaxOrderedKeyColumnValueStore(ksctx.getEntity(), name, lcb); + return new AstyanaxOrderedKeyColumnValueStore(ks.getEntity(), name, lcb); } private void ensureColumnFamilyExists(String name) { - Cluster cl = clctx.getEntity(); + + Cluster cl = clusters.get(clusterName).getEntity(); + try { KeyspaceDefinition ksDef = cl.describeKeyspace(ksName); + boolean found = false; + if (null != ksDef) { for (ColumnFamilyDefinition cfDef : ksDef.getColumnFamilyList()) { found |= cfDef.getName().equals(name); } } + if (!found) { - ColumnFamilyDefinition cfDef = - cl.makeColumnFamilyDefinition() - .setName(name) - .setKeyspace(ksName) - .setComparatorType("org.apache.cassandra.db.marshal.BytesType"); + ColumnFamilyDefinition cfDef = cl.makeColumnFamilyDefinition() + .setName(name).setKeyspace(ksName).setComparatorType("org.apache.cassandra.db.marshal.BytesType"); + cl.addColumnFamily(cfDef); } } catch (ConnectionException e) { @@ -177,32 +174,11 @@ private void ensureColumnFamilyExists(String name) { } private AstyanaxContext getOrCreateKeyspace() { - AstyanaxContext ksctx = - ctxbuilder.buildKeyspace(ThriftFamilyFactory.getInstance()); - ksctx.start(); - - return ksctx; - } - -// private AstyanaxContext getOrCreateCluster(String clusterName, AstyanaxContext.Builder builder) { -// AstyanaxContext ctx = -// builder.buildCluster(ThriftFamilyFactory.getInstance()); -// ctx.start(); -// if (null != clusters.putIfAbsent(clusterName, ctx)) { -// ctx.shutdown(); -// } -// return clusters.get(clusterName); -// } - - private AstyanaxContext getOrCreateCluster() { - AstyanaxContext clusterCtx = - ctxbuilder.buildCluster(ThriftFamilyFactory.getInstance()); - clusterCtx.start(); + AstyanaxContext ks = keyspaces.get(ksName); - return clusterCtx; - } - - private AstyanaxContext.Builder getContextBuilder(Configuration config) { + if (null != ks) + return ks; + // TODO actual configuration AstyanaxContext.Builder builder = new AstyanaxContext.Builder() @@ -217,38 +193,39 @@ private AstyanaxContext.Builder getContextBuilder(Configuration config) { .setSeeds("127.0.0.1:9160")) .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()); - return builder; - } - - private void ensureKeyspaceExists(Cluster cl) { - KeyspaceDefinition ksDef; + ks = builder.buildKeyspace(ThriftFamilyFactory.getInstance()); + + ks.start(); - try { - ksDef = cl.describeKeyspace(ksName); + if (null != keyspaces.putIfAbsent(ksName, ks)) { + ks.shutdown(); + } else { + AstyanaxContext clusterCtx = builder.buildCluster(ThriftFamilyFactory.getInstance()); + + clusterCtx.start(); + + clusters.putIfAbsent(clusterName, clusterCtx); + + clusterCtx = clusters.get(clusterName); + + Cluster cl = clusterCtx.getEntity(); - if (null != ksDef && ksDef.getName().equals(ksName)) { - log.debug("Found keyspace {}", ksName); - return; - } - } catch (ConnectionException e) { - log.debug("Failed to describe keyspace {}", ksName); - } - - log.debug("Creating keyspace {}...", ksName); - try { Map stratops = new HashMap(); - stratops.put("replication_factor", "1"); //TODO config - ksDef = cl.makeKeyspaceDefinition() - .setName(ksName) - .setStrategyClass("org.apache.cassandra.locator.SimpleStrategy") - .setStrategyOptions(stratops); - cl.addKeyspace(ksDef); + stratops.put("replication_factor", "1"); //TODO - log.debug("Created keyspace {}", ksName); - } catch (ConnectionException e) { - log.debug("Failed to create keyspace {}, ksName"); - throw new GraphStorageException(e); + KeyspaceDefinition ksDef = cl.makeKeyspaceDefinition() + .setName(ksName) + .setStrategyClass("org.apache.cassandra.locator.SimpleStrategy") + .setStrategyOptions(stratops); + + try { + cl.addKeyspace(ksDef); + } catch (ConnectionException e) { + throw new GraphStorageException(e); + } } + + return keyspaces.get(ksName); } } diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxKeyColumnValueTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxKeyColumnValueTest.java index d3a1aebf8c..564b73e7fb 100644 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxKeyColumnValueTest.java +++ b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxKeyColumnValueTest.java @@ -1,12 +1,41 @@ package com.thinkaurelius.titan.diskstorage.astyanax; +import org.junit.BeforeClass; + +import com.netflix.astyanax.AstyanaxContext; +import com.netflix.astyanax.Cluster; +import com.netflix.astyanax.connectionpool.NodeDiscoveryType; +import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; +import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; +import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; +import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; +import com.netflix.astyanax.thrift.ThriftFamilyFactory; import com.thinkaurelius.titan.StorageSetup; import com.thinkaurelius.titan.diskstorage.KeyColumnValueStoreTest; import com.thinkaurelius.titan.diskstorage.StorageManager; -import com.thinkaurelius.titan.testutil.CassandraUtil; public class ExternalAstyanaxKeyColumnValueTest extends KeyColumnValueStoreTest { + private static Cluster cluster; + + @BeforeClass + public static void connectToClusterForCleanup() { + AstyanaxContext ctx = new AstyanaxContext.Builder() + .forCluster(AstyanaxStorageManager.CLUSTER_DEFAULT) + .withAstyanaxConfiguration( + new AstyanaxConfigurationImpl() + .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)) + .withConnectionPoolConfiguration( + new ConnectionPoolConfigurationImpl("MyConnectionPool") + .setPort(9160).setMaxConnsPerHost(16) + .setSeeds("localhost")) + .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) + .buildCluster(ThriftFamilyFactory.getInstance()); + + cluster = ctx.getEntity(); + ctx.start(); + } + @Override public StorageManager openStorageManager() { return new AstyanaxStorageManager(StorageSetup.getLocalStorageConfiguration()); @@ -14,6 +43,11 @@ public StorageManager openStorageManager() { @Override public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + try { + cluster.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + AstyanaxStorageManager.clearKeyspaces(); + } catch (ConnectionException e) { +// throw new RuntimeException(e); + } } } diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxLockKeyColumnValueStoreTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxLockKeyColumnValueStoreTest.java index ca89491d04..a5e19e8ac2 100644 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxLockKeyColumnValueStoreTest.java +++ b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxLockKeyColumnValueStoreTest.java @@ -1,16 +1,44 @@ package com.thinkaurelius.titan.diskstorage.astyanax; import org.apache.commons.configuration.Configuration; +import org.junit.BeforeClass; +import com.netflix.astyanax.AstyanaxContext; +import com.netflix.astyanax.Cluster; +import com.netflix.astyanax.connectionpool.NodeDiscoveryType; +import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; +import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; +import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; +import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; +import com.netflix.astyanax.thrift.ThriftFamilyFactory; import com.thinkaurelius.titan.diskstorage.LockKeyColumnValueStoreTest; import com.thinkaurelius.titan.diskstorage.StorageManager; import com.thinkaurelius.titan.diskstorage.cassandra.CassandraLocalhostHelper; import com.thinkaurelius.titan.diskstorage.cassandra.CassandraThriftStorageManager; import com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration; -import com.thinkaurelius.titan.testutil.CassandraUtil; public class ExternalAstyanaxLockKeyColumnValueStoreTest extends LockKeyColumnValueStoreTest { + private static Cluster cluster; + + @BeforeClass + public static void connectToClusterForCleanup() { + AstyanaxContext ctx = new AstyanaxContext.Builder() + .forCluster(AstyanaxStorageManager.CLUSTER_DEFAULT) + .withAstyanaxConfiguration( + new AstyanaxConfigurationImpl() + .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)) + .withConnectionPoolConfiguration( + new ConnectionPoolConfigurationImpl("MyConnectionPool") + .setPort(9160).setMaxConnsPerHost(16) + .setSeeds("localhost")) + .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) + .buildCluster(ThriftFamilyFactory.getInstance()); + + cluster = ctx.getEntity(); + ctx.start(); + } + @Override public StorageManager openStorageManager(short idx) { Configuration sc = CassandraLocalhostHelper.getLocalStorageConfiguration(); @@ -22,6 +50,11 @@ public StorageManager openStorageManager(short idx) { @Override public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + try { + cluster.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + AstyanaxStorageManager.clearKeyspaces(); + } catch (ConnectionException e) { +// throw new RuntimeException(e); + } } } diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxMultiWriteKeyColumnValueTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxMultiWriteKeyColumnValueTest.java index 7c6e161de6..fb00f58fb8 100644 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxMultiWriteKeyColumnValueTest.java +++ b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxMultiWriteKeyColumnValueTest.java @@ -1,12 +1,41 @@ package com.thinkaurelius.titan.diskstorage.astyanax; +import org.junit.BeforeClass; + +import com.netflix.astyanax.AstyanaxContext; +import com.netflix.astyanax.Cluster; +import com.netflix.astyanax.connectionpool.NodeDiscoveryType; +import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; +import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; +import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; +import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; +import com.netflix.astyanax.thrift.ThriftFamilyFactory; import com.thinkaurelius.titan.StorageSetup; import com.thinkaurelius.titan.diskstorage.MultiWriteKeyColumnValueStoreTest; import com.thinkaurelius.titan.diskstorage.StorageManager; -import com.thinkaurelius.titan.testutil.CassandraUtil; public class ExternalAstyanaxMultiWriteKeyColumnValueTest extends MultiWriteKeyColumnValueStoreTest { + private static Cluster cluster; + + @BeforeClass + public static void connectToClusterForCleanup() { + AstyanaxContext ctx = new AstyanaxContext.Builder() + .forCluster(AstyanaxStorageManager.CLUSTER_DEFAULT) + .withAstyanaxConfiguration( + new AstyanaxConfigurationImpl() + .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)) + .withConnectionPoolConfiguration( + new ConnectionPoolConfigurationImpl("MyConnectionPool") + .setPort(9160).setMaxConnsPerHost(16) + .setSeeds("localhost")) + .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) + .buildCluster(ThriftFamilyFactory.getInstance()); + + cluster = ctx.getEntity(); + ctx.start(); + } + @Override public StorageManager openStorageManager() { return new AstyanaxStorageManager(StorageSetup.getLocalStorageConfiguration()); @@ -14,6 +43,11 @@ public StorageManager openStorageManager() { @Override public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + try { + cluster.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + AstyanaxStorageManager.clearKeyspaces(); + } catch (ConnectionException e) { +// throw new RuntimeException(e); + } } } diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxKeyColumnValueTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxKeyColumnValueTest.java deleted file mode 100644 index a428be30b6..0000000000 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxKeyColumnValueTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.thinkaurelius.titan.diskstorage.astyanax; - -import org.junit.BeforeClass; - -import com.thinkaurelius.titan.StorageSetup; -import com.thinkaurelius.titan.diskstorage.KeyColumnValueStoreTest; -import com.thinkaurelius.titan.diskstorage.StorageManager; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraDaemonWrapper; -import com.thinkaurelius.titan.testutil.CassandraUtil; - -public class InternalAstyanaxKeyColumnValueTest extends KeyColumnValueStoreTest { - - @BeforeClass - public static void startCassandra() { - CassandraDaemonWrapper.start(StorageSetup.cassandraYamlPath); - } - - @Override - public StorageManager openStorageManager() { - return new AstyanaxStorageManager(StorageSetup.getLocalStorageConfiguration()); - } - - - @Override - public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); - } -} diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxLockKeyColumnValueStoreTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxLockKeyColumnValueStoreTest.java deleted file mode 100644 index 9031eba4fc..0000000000 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxLockKeyColumnValueStoreTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.thinkaurelius.titan.diskstorage.astyanax; - -import org.apache.commons.configuration.Configuration; -import org.junit.BeforeClass; - -import com.thinkaurelius.titan.StorageSetup; -import com.thinkaurelius.titan.diskstorage.LockKeyColumnValueStoreTest; -import com.thinkaurelius.titan.diskstorage.StorageManager; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraDaemonWrapper; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraLocalhostHelper; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraThriftStorageManager; -import com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration; -import com.thinkaurelius.titan.testutil.CassandraUtil; - -public class InternalAstyanaxLockKeyColumnValueStoreTest extends LockKeyColumnValueStoreTest { - - @BeforeClass - public static void startCassandra() { - CassandraDaemonWrapper.start(StorageSetup.cassandraYamlPath); - } - - @Override - public StorageManager openStorageManager(short idx) { - Configuration sc = CassandraLocalhostHelper.getLocalStorageConfiguration(); - sc.addProperty(CassandraThriftStorageManager.LOCAL_LOCK_MEDIATOR_PREFIX_KEY, "astyanax-" + idx); - sc.addProperty(GraphDatabaseConfiguration.INSTANCE_RID_SHORT_KEY, idx); - - return new AstyanaxStorageManager(sc); - } - - @Override - public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); - } -} diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxMultiWriteKeyColumnValueTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxMultiWriteKeyColumnValueTest.java deleted file mode 100644 index 7b7d305b32..0000000000 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxMultiWriteKeyColumnValueTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.thinkaurelius.titan.diskstorage.astyanax; - -import org.junit.BeforeClass; - -import com.thinkaurelius.titan.StorageSetup; -import com.thinkaurelius.titan.diskstorage.MultiWriteKeyColumnValueStoreTest; -import com.thinkaurelius.titan.diskstorage.StorageManager; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraDaemonWrapper; -import com.thinkaurelius.titan.testutil.CassandraUtil; - -public class InternalAstyanaxMultiWriteKeyColumnValueTest extends MultiWriteKeyColumnValueStoreTest { - - @BeforeClass - public static void startCassandra() { - CassandraDaemonWrapper.start(StorageSetup.cassandraYamlPath); - } - - @Override - public StorageManager openStorageManager() { - return new AstyanaxStorageManager(StorageSetup.getLocalStorageConfiguration()); - } - - @Override - public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); - } -} diff --git a/src/test/java/com/thinkaurelius/titan/diskstorage/cassandra/InternalCassandraLockKeyColumnValueStoreTest.java b/src/test/java/com/thinkaurelius/titan/diskstorage/cassandra/InternalCassandraLockKeyColumnValueStoreTest.java index c105190e18..e4d25b07d8 100644 --- a/src/test/java/com/thinkaurelius/titan/diskstorage/cassandra/InternalCassandraLockKeyColumnValueStoreTest.java +++ b/src/test/java/com/thinkaurelius/titan/diskstorage/cassandra/InternalCassandraLockKeyColumnValueStoreTest.java @@ -10,6 +10,7 @@ public class InternalCassandraLockKeyColumnValueStoreTest extends LockKeyColumnValueStoreTest { + @BeforeClass public static void startCassandra() { CassandraDaemonWrapper.start(StorageSetup.cassandraYamlPath); diff --git a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphPerformanceTest.java b/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphPerformanceTest.java deleted file mode 100644 index 0ab6f91997..0000000000 --- a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphPerformanceTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.thinkaurelius.titan.graphdb.astyanax; - -import com.thinkaurelius.titan.StorageSetup; -import com.thinkaurelius.titan.diskstorage.astyanax.AstyanaxStorageManager; -import com.thinkaurelius.titan.graphdb.TitanGraphPerformanceTest; -import com.thinkaurelius.titan.testutil.CassandraUtil; - -public class ExternalAstyanaxGraphPerformanceTest extends TitanGraphPerformanceTest { - - public ExternalAstyanaxGraphPerformanceTest() { - super(StorageSetup.getAstyanaxGraphConfiguration(), 0, 1, false); - } - - @Override - public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); - } - -} diff --git a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphTest.java b/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphTest.java index 31233512ae..0b6fb659dd 100644 --- a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphTest.java +++ b/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphTest.java @@ -1,18 +1,52 @@ package com.thinkaurelius.titan.graphdb.astyanax; +import org.junit.BeforeClass; + +import com.netflix.astyanax.AstyanaxContext; +import com.netflix.astyanax.Cluster; +import com.netflix.astyanax.connectionpool.NodeDiscoveryType; +import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; +import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; +import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; +import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; +import com.netflix.astyanax.thrift.ThriftFamilyFactory; import com.thinkaurelius.titan.StorageSetup; import com.thinkaurelius.titan.diskstorage.astyanax.AstyanaxStorageManager; import com.thinkaurelius.titan.graphdb.TitanGraphTest; -import com.thinkaurelius.titan.testutil.CassandraUtil; public class ExternalAstyanaxGraphTest extends TitanGraphTest { + private static Cluster cluster; + public ExternalAstyanaxGraphTest() { super(StorageSetup.getAstyanaxGraphConfiguration()); } + @BeforeClass + public static void connectToClusterForCleanup() { + AstyanaxContext ctx = new AstyanaxContext.Builder() + .forCluster(AstyanaxStorageManager.CLUSTER_DEFAULT) + .withAstyanaxConfiguration( + new AstyanaxConfigurationImpl() + .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)) + .withConnectionPoolConfiguration( + new ConnectionPoolConfigurationImpl("MyConnectionPool") + .setPort(9160).setMaxConnsPerHost(16) + .setSeeds("localhost")) + .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) + .buildCluster(ThriftFamilyFactory.getInstance()); + + cluster = ctx.getEntity(); + ctx.start(); + } + @Override public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + try { + cluster.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); + AstyanaxStorageManager.clearKeyspaces(); + } catch (ConnectionException e) { +// throw new RuntimeException(e); + } } } diff --git a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/InternalAstyanaxGraphTest.java b/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/InternalAstyanaxGraphTest.java deleted file mode 100644 index c931e7b84f..0000000000 --- a/src/test/java/com/thinkaurelius/titan/graphdb/astyanax/InternalAstyanaxGraphTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.thinkaurelius.titan.graphdb.astyanax; - -import org.junit.BeforeClass; - -import com.thinkaurelius.titan.StorageSetup; -import com.thinkaurelius.titan.diskstorage.astyanax.AstyanaxStorageManager; -import com.thinkaurelius.titan.diskstorage.cassandra.CassandraDaemonWrapper; -import com.thinkaurelius.titan.graphdb.TitanGraphTest; -import com.thinkaurelius.titan.testutil.CassandraUtil; - -public class InternalAstyanaxGraphTest extends TitanGraphTest { - - @BeforeClass - public static void startCassandra() { - CassandraDaemonWrapper.start(StorageSetup.cassandraYamlPath); - } - - public InternalAstyanaxGraphTest() { - super(StorageSetup.getAstyanaxGraphConfiguration()); - } - - @Override - public void cleanUp() { - CassandraUtil.dropKeyspace(AstyanaxStorageManager.KEYSPACE_DEFAULT); - } - -} diff --git a/src/test/java/com/thinkaurelius/titan/testutil/CassandraUtil.java b/src/test/java/com/thinkaurelius/titan/testutil/CassandraUtil.java deleted file mode 100644 index 3d7a00dee2..0000000000 --- a/src/test/java/com/thinkaurelius/titan/testutil/CassandraUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.thinkaurelius.titan.testutil; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.netflix.astyanax.AstyanaxContext; -import com.netflix.astyanax.Cluster; -import com.netflix.astyanax.connectionpool.NodeDiscoveryType; -import com.netflix.astyanax.connectionpool.exceptions.ConnectionException; -import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl; -import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor; -import com.netflix.astyanax.impl.AstyanaxConfigurationImpl; -import com.netflix.astyanax.thrift.ThriftFamilyFactory; -import com.thinkaurelius.titan.diskstorage.astyanax.AstyanaxStorageManager; - -public class CassandraUtil { - - private static final Logger log = LoggerFactory.getLogger(CassandraUtil.class); - - public static void dropKeyspace(String name, String hostname, int port) { - AstyanaxContext ctx = new AstyanaxContext.Builder() - .forCluster(AstyanaxStorageManager.CLUSTER_DEFAULT) - .withAstyanaxConfiguration( - new AstyanaxConfigurationImpl() - .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)) - .withConnectionPoolConfiguration( - new ConnectionPoolConfigurationImpl("MyConnectionPool") - .setPort(port).setMaxConnsPerHost(1) - .setSeeds(hostname)) - .withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) - .buildCluster(ThriftFamilyFactory.getInstance()); - - ctx.start(); - try { - ctx.getEntity().dropKeyspace(name); - } catch (ConnectionException e) { - log.debug("Failed to drop keyspace {}", name); - } - ctx.shutdown(); - } - - public static void dropKeyspace(String name) { - dropKeyspace(name, "localhost", 9160); - } -}