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();