summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
blob: f9cd7a62c51b09f39eac000237107d2b7038c739 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.apache.tuscany.nosqldatastore.cassandra;

import me.prettyprint.cassandra.service.CassandraHostConfigurator;
import me.prettyprint.cassandra.service.ThriftCluster;
import me.prettyprint.cassandra.service.ThriftKsDef;
import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
import org.apache.tuscany.nosqldatastore.Database;
import org.apache.tuscany.nosqldatastore.Session;

public class CassandraSession implements Session {
	
	private CassandraHostConfigurator cassandraHostConfigurator;
	private ThriftCluster cluster;
	
	public CassandraSession(String clusterName) {
		cassandraHostConfigurator = new CassandraHostConfigurator("localhost:9160");
		cluster = new ThriftCluster(clusterName, cassandraHostConfigurator);
	}

	public Database createDatabase(String keyspaceName) {
		KeyspaceDefinition ksDef = new ThriftKsDef(keyspaceName, "org.apache.cassandra.locator.SimpleStrategy", 1, null);
		cluster.addKeyspace(ksDef);
		Database database = new CassandraDatabase(keyspaceName, cluster);
		return database;
	}

	public Database getDatabase(String keyspaceName) {
		Database database = new CassandraDatabase(keyspaceName, cluster);
		return database;
	}

	public void deleteDatabase(String keyspaceName) {
		cluster.dropKeyspace(keyspaceName);
	}

}