Author: antelder
Date: Wed Jun  1 21:10:34 2011
New Revision: 1130304

URL: http://svn.apache.org/viewvc?rev=1130304&view=rev
Log:
TUSCANY-3522: Apply rest-api-1.2.patch from Eranda for the NoSQL GSoC project

Modified:
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Database.java
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Group.java
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
    
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/test/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraTest.java

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Database.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Database.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Database.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Database.java
 Wed Jun  1 21:10:34 2011
@@ -1,7 +1,7 @@
 package org.apache.tuscany.nosqldatastore;
 
 public interface Database {
-       org.apache.tuscany.nosqldatastore.Group createGroup(String groupId);
-       boolean isAvailable(String key);
-       void deleteGroup(String key);
+       Group createGroup(String groupId);
+       Group getGroup(String groupId);
+       void deleteGroup(String groupId);
 }

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Group.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Group.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Group.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/Group.java
 Wed Jun  1 21:10:34 2011
@@ -4,4 +4,5 @@ public interface Group {
        void addEntry(String key, Object value);
        void updateEntry(String key, Object value);
        void deleteEntry(String key);
+    Object getValue(String key);
 }

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraDatabase.java
 Wed Jun  1 21:10:34 2011
@@ -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);
        }
 
 }

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraGroup.java
 Wed Jun  1 21:10:34 2011
@@ -1,25 +1,52 @@
 package org.apache.tuscany.nosqldatastore.cassandra;
 
+import me.prettyprint.cassandra.serializers.StringSerializer;
+import me.prettyprint.cassandra.service.template.ColumnFamilyResult;
+import me.prettyprint.cassandra.service.template.ColumnFamilyTemplate;
+import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
+import me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate;
+import me.prettyprint.hector.api.Cluster;
+import me.prettyprint.hector.api.Keyspace;
+import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
+import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
+import me.prettyprint.hector.api.factory.HFactory;
 import org.apache.tuscany.nosqldatastore.Group;
 
 class CassandraGroup implements Group {
 
-       CassandraGroup(String groupName) {
+    private ColumnFamilyTemplate<String,String> template;
+    private ColumnFamilyUpdater<String, String> updater;
+    private final StringSerializer se = StringSerializer.get();
+
+       CassandraGroup(String groupId, Keyspace keyspace, Cluster cluster) {
+        try{
+        ColumnFamilyDefinition cfDef = 
HFactory.createColumnFamilyDefinition(keyspace.getKeyspaceName(), groupId);
+               cluster.addColumnFamily(cfDef);
+        }catch (HInvalidRequestException e){
+            System.out.println("Connect to the existing group...");
+        }
+        template = new ThriftColumnFamilyTemplate<String, 
String>(keyspace,groupId,se,se,HFactory.createMutator(keyspace, se));
        }
 
        public void addEntry(String key, Object value) {
-               // TODO Auto-generated method stub
-               
+        updater = template.createUpdater(key);
+               updater.setString(key, (String) value);
+               template.update(updater);
+               template.addColumn(key, se);            
        }
 
        public void deleteEntry(String key) {
-               // TODO Auto-generated method stub
+               template.deleteColumn(key, key);
                
        }
 
-       public void updateEntry(String key, Object value) {
-               // TODO Auto-generated method stub
-               
+    public Object getValue(String key) {
+        ColumnFamilyResult wrapper = template.queryColumns(key);
+        return wrapper.getString(key);
+    }
+
+    public void updateEntry(String key, Object value) {
+               addEntry(key, value);
        }
 
 }

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/main/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraSession.java
 Wed Jun  1 21:10:34 2011
@@ -3,23 +3,22 @@ package org.apache.tuscany.nosqldatastor
 import me.prettyprint.cassandra.service.CassandraHostConfigurator;
 import me.prettyprint.cassandra.service.ThriftCluster;
 import me.prettyprint.cassandra.service.ThriftKsDef;
+import me.prettyprint.hector.api.Cluster;
 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.Session;
 
 public class CassandraSession implements Session {
        
        private CassandraHostConfigurator cassandraHostConfigurator;
-       private ThriftCluster cluster;
+       private Cluster cluster;
        
        public CassandraSession(String clusterName) {
-               cassandraHostConfigurator = new 
CassandraHostConfigurator("localhost:9160");
-               cluster = new ThriftCluster(clusterName, 
cassandraHostConfigurator);
+               cluster = HFactory.getOrCreateCluster("Test Cluster", 
"127.0.0.1:9160");
        }
 
        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;
        }

Modified: 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/test/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraTest.java
URL: 
http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/test/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraTest.java?rev=1130304&r1=1130303&r2=1130304&view=diff
==============================================================================
--- 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/test/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraTest.java
 (original)
+++ 
tuscany/collaboration/GSoC-2011-Eranda/cassandra/src/test/java/org/apache/tuscany/nosqldatastore/cassandra/CassandraTest.java
 Wed Jun  1 21:10:34 2011
@@ -17,13 +17,27 @@ public class CassandraTest {
        public static void main(String[] args){
                CassandraTest test = new CassandraTest();
                test.create();
-               //test.delete();
+               test.delete();
        }
 
        public void create(){
                Database db = session.createDatabase("TwitApp");
-               //Group group1 = db.createGroup("twits");
-               //Group group2 = db.createGroup("users");
+               Group group1 = db.createGroup("twits");
+
+        group1.addEntry("twitName1", "Here I am");
+        group1.addEntry("twitName2", "I am not here");
+        group1.addEntry("twitName3", "Sometimes");
+
+               Group group2 = db.createGroup("users");
+
+        group2.addEntry("userName1", "eranda");
+        group2.addEntry("userName2", "ishara");
+        group2.addEntry("userName3", "ravi");
+
+        group2.deleteEntry("userName3");
+        group2.updateEntry("userName2", "eranda");
+
+        System.out.println(group2.getValue("userName1"));
        }
        
        public void delete(){


Reply via email to