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