Author: jbellis
Date: Mon Jan 17 17:08:44 2011
New Revision: 1059992
URL: http://svn.apache.org/viewvc?rev=1059992&view=rev
Log:
merge from 0.7
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/contrib/javautils/build.xml
cassandra/trunk/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
cassandra/trunk/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g
cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7:1026516-1059717
+/cassandra/branches/cassandra-0.7:1026516-1059991
/cassandra/branches/cassandra-0.7.0:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3:774578-796573
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Jan 17 17:08:44 2011
@@ -28,6 +28,7 @@
* zero-copy reads (CASSANDRA-1714)
* refuse to open sstables from a future version (CASSANDRA-1935)
* fix copy bounds for word Text in wordcount demo (CASSANDRA-1993)
+ * fixes for contrib/javautils (CASSANDRA-1979)
0.7.0-final
Modified: cassandra/trunk/contrib/javautils/build.xml
URL:
http://svn.apache.org/viewvc/cassandra/trunk/contrib/javautils/build.xml?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
--- cassandra/trunk/contrib/javautils/build.xml (original)
+++ cassandra/trunk/contrib/javautils/build.xml Mon Jan 17 17:08:44 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/trunk/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
---
cassandra/trunk/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
(original)
+++
cassandra/trunk/contrib/javautils/src/main/java/org/apache/cassandra/contrib/utils/service/CassandraServiceDataCleaner.java
Mon Jan 17 17:08:44 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/trunk/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
---
cassandra/trunk/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
(original)
+++
cassandra/trunk/contrib/javautils/src/test/java/org/apache/cassandra/contrib/utils/service/CassandraServiceTest.java
Mon Jan 17 17:08:44 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();
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1059717
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1059991
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1059717
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1059991
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1059717
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1059991
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1059717
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1059991
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 17 17:08:44 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1055311,1056121,1057932
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1059717
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1059991
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g Mon Jan 17 17:08:44
2011
@@ -176,11 +176,11 @@ helpStatement
-> ^(NODE_HELP NODE_EXIT)
| HELP QUIT
-> ^(NODE_HELP NODE_EXIT)
- | HELP SHOW CLUSTER NAME
+ | HELP SHOW 'CLUSTER NAME'
-> ^(NODE_HELP NODE_SHOW_CLUSTER_NAME)
| HELP SHOW KEYSPACES
-> ^(NODE_HELP NODE_SHOW_KEYSPACES)
- | HELP SHOW VERSION
+ | HELP SHOW API_VERSION
-> ^(NODE_HELP NODE_SHOW_VERSION)
| HELP CREATE KEYSPACE
-> ^(NODE_HELP NODE_ADD_KEYSPACE)
@@ -276,7 +276,7 @@ assumeStatement
;
showClusterName
- : SHOW CLUSTER NAME
+ : SHOW 'CLUSTER NAME'
-> ^(NODE_SHOW_CLUSTER_NAME)
;
@@ -311,7 +311,7 @@ delColumnFamily
;
showVersion
- : SHOW VERSION
+ : SHOW API_VERSION
-> ^(NODE_SHOW_VERSION)
;
@@ -496,36 +496,34 @@ port
// CLI is case-insensitive with respect to these keywords.
// However, they MUST be listed in upper case here.
//
-CONFIG: 'CONFIG';
-CONNECT: 'CONNECT';
-COUNT: 'COUNT';
-CLUSTER: 'CLUSTER';
-DEL: 'DEL';
-DESCRIBE: 'DESCRIBE';
-USE: 'USE';
-GET: 'GET';
-HELP: 'HELP';
-EXIT: 'EXIT';
-FILE: 'FILE';
-NAME: 'NAME';
-QUIT: 'QUIT';
-SET: 'SET';
-SHOW: 'SHOW';
-KEYSPACE: 'KEYSPACE';
-KEYSPACES: 'KEYSPACES';
-VERSION: 'API VERSION';
-CREATE: 'CREATE';
-DROP: 'DROP';
-COLUMN: 'COLUMN';
-FAMILY: 'FAMILY';
-WITH: 'WITH';
-AND: 'AND';
-UPDATE: 'UPDATE';
-LIST: 'LIST';
-LIMIT: 'LIMIT';
-TRUNCATE: 'TRUNCATE';
-ASSUME: 'ASSUME';
-TTL: 'TTL';
+CONFIG: 'CONFIG';
+CONNECT: 'CONNECT';
+COUNT: 'COUNT';
+DEL: 'DEL';
+DESCRIBE: 'DESCRIBE';
+USE: 'USE';
+GET: 'GET';
+HELP: 'HELP';
+EXIT: 'EXIT';
+FILE: 'FILE';
+QUIT: 'QUIT';
+SET: 'SET';
+SHOW: 'SHOW';
+KEYSPACE: 'KEYSPACE';
+KEYSPACES: 'KEYSPACES';
+API_VERSION: 'API VERSION';
+CREATE: 'CREATE';
+DROP: 'DROP';
+COLUMN: 'COLUMN';
+FAMILY: 'FAMILY';
+WITH: 'WITH';
+AND: 'AND';
+UPDATE: 'UPDATE';
+LIST: 'LIST';
+LIMIT: 'LIMIT';
+TRUNCATE: 'TRUNCATE';
+ASSUME: 'ASSUME';
+TTL: 'TTL';
IP_ADDRESS
: IntegerLiteral '.' IntegerLiteral '.' IntegerLiteral '.' IntegerLiteral
Modified: cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1059992&r1=1059991&r2=1059992&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java Mon Jan 17
17:08:44 2011
@@ -109,9 +109,38 @@ public class CliTest extends CleanupHelp
"create keyspace TESTIN;",
"drop keyspace tesTIN;",
"create column family myCF with column_type='Super' and
comparator='UTF8Type' AND subcomparator='UTF8Type';",
+ "create column family Countries with comparator=UTF8Type and
column_metadata=[ {column_name: name, validation_class: UTF8Type} ];",
+ "set Countries[1][name] = USA;",
+ "get Countries[1][name];",
"set myCF['key']['scName']['firstname'] = 'John';",
"get myCF['key']['scName']",
"use TestKEYSpace;",
+ "show cluster name",
+ "show api version",
+ "help help",
+ "help connect",
+ "help use",
+ "help describe KEYSPACE",
+ "HELP exit",
+ "help QUIT",
+ "help show cluster name",
+ "help show keyspaces",
+ "help show api version",
+ "help create keyspace",
+ "HELP update KEYSPACE",
+ "HELP CREATE column FAMILY",
+ "HELP UPDATE COLUMN family",
+ "HELP drop keyspace",
+ "help drop column family",
+ "HELP GET",
+ "HELP set",
+ "HELP DEL",
+ "HELP count",
+ "HELP list",
+ "HELP TRUNCATE",
+ "help assume",
+ "HELP",
+ "?"
};
@Test