summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra')
-rw-r--r--collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java42
-rw-r--r--collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java25
-rw-r--r--collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java36
3 files changed, 103 insertions, 0 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
new file mode 100644
index 0000000000..9572476941
--- /dev/null
+++ b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
@@ -0,0 +1,42 @@
+package org.apache.tuscany.nosqldatastore.cassandra;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import me.prettyprint.cassandra.service.ThriftCluster;
+import me.prettyprint.cassandra.service.ThriftKsDef;
+import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
+import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
+import me.prettyprint.hector.api.factory.HFactory;
+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;
+
+ CassandraDatabase(String databaseName, ThriftCluster cluster) {
+ this.keyspace = databaseName;
+ 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);
+ return group;
+ }
+
+ public boolean isAvailable(String key) {
+ return false;
+ }
+
+ public void deleteGroup(String key) {
+ cluster.dropColumnFamily(keyspace, key);
+ }
+
+}
diff --git a/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
new file mode 100644
index 0000000000..36a5bddf7b
--- /dev/null
+++ b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
@@ -0,0 +1,25 @@
+package org.apache.tuscany.nosqldatastore.cassandra;
+
+import org.apache.tuscany.nosqldatastore.Group;
+
+class CassandraGroup implements Group {
+
+ CassandraGroup(String groupName) {
+ }
+
+ public void addEntry(String key, Object value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void deleteEntry(String key) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void updateEntry(String key, Object value) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
new file mode 100644
index 0000000000..f9cd7a62c5
--- /dev/null
+++ b/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
@@ -0,0 +1,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);
+ }
+
+}