summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java')
-rw-r--r--collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java36
1 files changed, 21 insertions, 15 deletions
diff --git a/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
index 9572476941..90b95a3019 100644
--- a/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
+++ b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
@@ -5,38 +5,44 @@ import java.util.List;
import me.prettyprint.cassandra.service.ThriftCluster;
import me.prettyprint.cassandra.service.ThriftKsDef;
+import me.prettyprint.hector.api.Cluster;
+import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
+import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
import me.prettyprint.hector.api.factory.HFactory;
+import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.tuscany.nosqldatastore.Database;
import org.apache.tuscany.nosqldatastore.Group;
class CassandraDatabase implements Database {
- private String keyspace;
- private ThriftCluster cluster;
- private List<ColumnFamilyDefinition> cfDefList;
+ private Keyspace keyspace;
+ private Cluster cluster;
- CassandraDatabase(String databaseName, ThriftCluster cluster) {
- this.keyspace = databaseName;
+ CassandraDatabase(String databaseName, Cluster cluster) {
+ try{
+ KeyspaceDefinition ksDef = new ThriftKsDef(databaseName, "org.apache.cassandra.locator.SimpleStrategy", 1, null);
+ cluster.addKeyspace(ksDef);
+ }catch (HInvalidRequestException e){
+ System.out.println("Connect to the existing database...");
+ }
+ this.keyspace = HFactory.createKeyspace(databaseName, cluster);
this.cluster = cluster;
- KeyspaceDefinition ksDef = cluster.describeKeyspace(keyspace);
- cfDefList = ksDef.getCfDefs();
}
public Group createGroup(String groupId) {
- ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition(keyspace, groupId);
- cluster.addColumnFamily(cfDef);
- CassandraGroup group = new CassandraGroup(groupId);
+ CassandraGroup group = new CassandraGroup(groupId, keyspace, cluster);
return group;
}
- public boolean isAvailable(String key) {
- return false;
- }
+ public Group getGroup(String groupId) {
+ return createGroup(groupId);
+ }
+
- public void deleteGroup(String key) {
- cluster.dropColumnFamily(keyspace, key);
+ public void deleteGroup(String key) {
+ cluster.dropColumnFamily(keyspace.getKeyspaceName(), key);
}
}