Author: jbellis
Date: Mon Jan 17 17:06:38 2011
New Revision: 1059991

URL: http://svn.apache.org/viewvc?rev=1059991&view=rev
Log:
fixes for contrib/javautils
patch by Nate McCall for CASSANDRA-1979

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    cassandra/branches/cassandra-0.7/contrib/javautils/build.xml
    
cassandra/branches/cassandra-0.7/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
    
cassandra/branches/cassandra-0.7/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1059991&r1=1059990&r2=1059991&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Mon Jan 17 17:06:38 2011
@@ -22,6 +22,7 @@
  * refuse to open sstables from a future version (CASSANDRA-1935)
  * zero-copy reads (CASSANDRA-1714)
  * fix copy bounds for word Text in wordcount demo (CASSANDRA-1993)
+ * fixes for contrib/javautils (CASSANDRA-1979)
 
 
 0.7.0-final

Modified: cassandra/branches/cassandra-0.7/contrib/javautils/build.xml
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/javautils/build.xml?rev=1059991&r1=1059990&r2=1059991&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/contrib/javautils/build.xml (original)
+++ cassandra/branches/cassandra-0.7/contrib/javautils/build.xml Mon Jan 17 
17:06:38 2011
@@ -20,6 +20,7 @@
 <project basedir="." default="build" name="apache-cassandra-javautils">
   <property name="cassandra.dir" value="../.." />
   <property name="cassandra.lib" value="${cassandra.dir}/lib" />
+  <property name="test.lib" value="${cassandra.dir}/build/lib" />
   <property name="cassandra.classes" value="${cassandra.dir}/build/classes" />
   <property name="build.src" value="${basedir}/src/main/java" />
   <property name="test.src" value="${basedir}/src/test/java" />
@@ -40,6 +41,10 @@
     <path refid="classpath"/>
     <path>
       <pathelement location="${build.classes}" />
+        <fileset dir="${test.lib}">
+          <exclude name="**/ant-1.6.5.jar" />  
+          <include name="**/*.jar" />          
+        </fileset>     
     </path>
   </path>
 
@@ -66,9 +71,9 @@
   </target>
 
   <target name="test" depends="build-tests">
-    <delete dir="${test.reports}" failonerror="no"/>
+    <delete dir="${test.reports}" failonerror="yes"/>
     <mkdir dir="${test.reports}"/>
-    <junit printsummary="yes" dir="${basedir}" timeout="600000" fork="yes" 
includeantruntime="yes">
+    <junit showoutput="true" printsummary="yes" dir="${basedir}" 
timeout="600000" fork="yes" includeantruntime="yes">
       <classpath refid="test.classpath"/>
       <formatter type="plain"/>
       <batchtest todir="${test.reports}">

Modified: 
cassandra/branches/cassandra-0.7/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java?rev=1059991&r1=1059990&r2=1059991&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
 Mon Jan 17 17:06:38 2011
@@ -25,6 +25,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.io.util.FileUtils;
 
 /**
@@ -42,6 +43,7 @@ public class CassandraServiceDataCleaner
     public void prepare() throws IOException {
         makeDirsIfNotExist();
         cleanupDataDirectories();
+        CommitLog.instance.resetUnsafe();
     }
 
     /**
@@ -58,9 +60,7 @@ public class CassandraServiceDataCleaner
      * @throws IOException if directories cannot be created (permissions etc).
      */
     public void makeDirsIfNotExist() throws IOException {
-        for (String s: getDataDirs()) {
-            mkdir(s);
-        }
+        DatabaseDescriptor.createAllDirectories();
     }
 
     /**
@@ -76,15 +76,6 @@ public class CassandraServiceDataCleaner
         dirs.add(DatabaseDescriptor.getCommitLogLocation());
         return dirs;
     }
-    /**
-     * Creates a directory
-     *
-     * @param dir
-     * @throws IOException
-     */
-    private void mkdir(String dir) throws IOException {
-        FileUtils.createDirectory(dir);
-    }
 
     /**
      * Removes all directory content from the file system

Modified: 
cassandra/branches/cassandra-0.7/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java?rev=1059991&r1=1059990&r2=1059991&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
 Mon Jan 17 17:06:38 2011
@@ -24,7 +24,12 @@ import static org.junit.Assert.assertNot
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
 
+import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.service.EmbeddedCassandraService;
 import org.apache.cassandra.thrift.AuthenticationException;
 import org.apache.cassandra.thrift.AuthorizationException;
@@ -38,9 +43,11 @@ import org.apache.cassandra.thrift.Inval
 import org.apache.cassandra.thrift.NotFoundException;
 import org.apache.cassandra.thrift.TimedOutException;
 import org.apache.cassandra.thrift.UnavailableException;
+import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.thrift.TException;
 import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.transport.TFramedTransport;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
 import org.apache.thrift.transport.TTransportException;
@@ -56,6 +63,8 @@ import org.junit.Test;
 public class CassandraServiceTest {
 
     private static EmbeddedCassandraService cassandra;
+    private static Thread cassandraRunner;
+    private static CassandraServiceDataCleaner cleaner;
 
     /**
      * Set embedded cassandra up and spawn it in a new thread.
@@ -66,18 +75,40 @@ public class CassandraServiceTest {
      */
     @BeforeClass
     public static void setup() throws TTransportException, IOException,
-            InterruptedException {
+            InterruptedException, ConfigurationException {
         // Tell cassandra where the configuration files are.
         // Use the test configuration file.
-        System.setProperty("storage-config", "../../test/conf");
-
-        CassandraServiceDataCleaner cleaner = new 
CassandraServiceDataCleaner();
+        System.setProperty("cassandra.config", 
"file:../../test/conf/cassandra.yaml");
+        System.setProperty("log4j.configuration", 
"file:../../test/conf/log4j-junit.properties");
+        //String configUrl = System.getProperty("cassandra.config");
+        loadYamlTables();
+        initCleaner();
+    }
+    
+    private static void initCleaner() throws IOException, TTransportException, 
ConfigurationException {
+        cleaner = new CassandraServiceDataCleaner();
         cleaner.prepare();
+        
         cassandra = new EmbeddedCassandraService();
         cassandra.init();
-        Thread t = new Thread(cassandra);
-        t.setDaemon(true);
-        t.start();
+        
+        if ( cassandraRunner == null ) {
+            cassandraRunner = new Thread(cassandra);
+            cassandraRunner.setDaemon(true);
+            cassandraRunner.start();
+        }
+    }
+    
+
+    /** Manually load tables from the test configuration file.
+     * @throws ConfigurationException */
+    private static void loadYamlTables() throws ConfigurationException {
+      for (KSMetaData table : DatabaseDescriptor.readTablesFromYaml()) {
+        for (CFMetaData cfm : table.cfMetaData().values()) {
+          CFMetaData.map(cfm);
+        }
+        DatabaseDescriptor.setTableDefinition(table, 
DatabaseDescriptor.getDefsVersion());
+      }
     }
 
 
@@ -88,29 +119,32 @@ public class CassandraServiceTest {
             NotFoundException, AuthenticationException, AuthorizationException 
{
         Cassandra.Client client = getClient();
 
-        client.login(null);
+        client.set_keyspace("Keyspace1");        
 
         String key_user_id = "1";
+        
         long timestamp = System.currentTimeMillis();   
 
         // insert
         ColumnParent colParent = new ColumnParent("Standard1");
-        Column column = new Column("name".getBytes("utf-8"), 
"Ran".getBytes("UTF-8"), timestamp);
+        Column column = new Column(ByteBufferUtil.bytes("name"), 
+                ByteBufferUtil.bytes("Ran"), timestamp);
         
-        client.insert(key_user_id.getBytes(), colParent, column, 
ConsistencyLevel.ONE);
+        client.insert(ByteBufferUtil.bytes(key_user_id), colParent, column, 
ConsistencyLevel.ONE);
 
         // read
         ColumnPath cp = new ColumnPath("Standard1");
-        cp.setColumn("name".getBytes("utf-8"));
+        cp.setColumn(ByteBufferUtil.bytes("name"));
 
-        ColumnOrSuperColumn got = client.get(key_user_id.getBytes(), cp,
+        ColumnOrSuperColumn got = 
client.get(ByteBufferUtil.bytes(key_user_id), cp,
                 ConsistencyLevel.ONE);
 
         // assert
         assertNotNull("Got a null ColumnOrSuperColumn", got);
         assertEquals("Ran", new String(got.getColumn().getValue(), "utf-8"));
     }
-
+    
+    
     /**
      * Gets a connection to the localhost client
      *
@@ -118,7 +152,7 @@ public class CassandraServiceTest {
      * @throws TTransportException
      */
     private Cassandra.Client getClient() throws TTransportException {
-        TTransport tr = new TSocket("localhost", 9170);
+        TTransport tr = new TFramedTransport(new TSocket("localhost", 9170));
         TProtocol proto = new TBinaryProtocol(tr);
         Cassandra.Client client = new Cassandra.Client(proto);
         tr.open();


Reply via email to