You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2011/10/31 17:43:33 UTC

svn commit: r1195562 - in /cassandra/trunk: ./ conf/ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/io/compress/ src/java/org/apache/ca...

Author: xedin
Date: Mon Oct 31 16:43:33 2011
New Revision: 1195562

URL: http://svn.apache.org/viewvc?rev=1195562&view=rev
Log:
merge from 1.0

Modified:
    cassandra/trunk/   (props changed)
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/build.xml
    cassandra/trunk/conf/cassandra-env.sh
    cassandra/trunk/contrib/   (props changed)
    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/CliClient.java
    cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
    cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
    cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
    cassandra/trunk/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java
    cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java
    cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java

Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1183000
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
-/cassandra/branches/cassandra-1.0:1167085-1190461
+/cassandra/branches/cassandra-1.0:1167085-1195557
 /cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020

Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Oct 31 16:43:33 2011
@@ -6,6 +6,9 @@
 
 1.0.2
  * "defragment" rows for name-based queries under STCS (CASSANDRA-2503)
+ * Add timing information to cassandra-cli GET/SET/LIST queries (CASSANDRA-3326)
+ * Cache for CompressionMetadata objects (CASSANDRA-3427)
+ * synchronize BiMap of bootstrapping tokens (CASSANDRA-3417)
 
 1.0.1
  * acquire references during index build to prevent delete problems
@@ -83,7 +86,6 @@ Merged from 0.8:
  * Fix race in AntiEntropyService (CASSANDRA-3400)
  * allow encryption only between datacenters (CASSANDRA-2802)
 
-
 1.0.0-final
  * close scrubbed sstable fd before deleting it (CASSANDRA-3318)
  * fix bug preventing obsolete commitlog segments from being removed

Modified: cassandra/trunk/build.xml
URL: http://svn.apache.org/viewvc/cassandra/trunk/build.xml?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/build.xml (original)
+++ cassandra/trunk/build.xml Mon Oct 31 16:43:33 2011
@@ -1,518 +1,518 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements.  See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership.  The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License.  You may obtain a copy of the License at
- ~
- ~    http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied.  See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
+~ Licensed to the Apache Software Foundation (ASF) under one
+~ or more contributor license agreements.  See the NOTICE file
+~ distributed with this work for additional information
+~ regarding copyright ownership.  The ASF licenses this file
+~ to you under the Apache License, Version 2.0 (the
+~ "License"); you may not use this file except in compliance
+~ with the License.  You may obtain a copy of the License at
+~
+~    http://www.apache.org/licenses/LICENSE-2.0
+~
+~ Unless required by applicable law or agreed to in writing,
+~ software distributed under the License is distributed on an
+~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~ KIND, either express or implied.  See the License for the
+~ specific language governing permissions and limitations
+~ under the License.
+-->
 <project basedir="." default="build" name="apache-cassandra"
-         xmlns:artifact="antlib:org.apache.maven.artifact.ant">
-    <property environment="env"/>
-    <property file="build.properties" />
-    <property file="build.properties.default" />
-    <property name="debuglevel" value="source,lines,vars"/>
-
-    <!-- default version and SCM information (we need the default SCM info as people may checkout with git-svn) -->
-    <property name="base.version" value="1.0.1"/>
-    <property name="scm.default.path" value="cassandra/branches/cassandra-1.0.0"/>
-    <property name="scm.default.connection" value="scm:svn:http://svn.apache.org/repos/asf/${scm.default.path}"/>
-    <property name="scm.default.developerConnection" value="scm:svn:https://svn.apache.org/repos/asf/${scm.default.path}"/>
-    <property name="scm.default.url" value="http://svn.apache.org/viewvc/${scm.default.path}"/>
-
-    <!-- directory details -->
-    <property name="basedir" value="."/>
-    <property name="build.src" value="${basedir}/src"/>
-    <property name="build.src.java" value="${basedir}/src/java"/>
-    <property name="build.src.resources" value="${basedir}/src/resources"/>
-    <property name="avro.src" value="${basedir}/src/avro"/>
-    <property name="build.src.gen-java" value="${basedir}/src/gen-java"/>
-    <property name="build.lib" value="${basedir}/lib"/>
-    <property name="build.dir" value="${basedir}/build"/>
-    <property name="build.dir.lib" value="${basedir}/build/lib"/>
-    <property name="build.test.dir" value="${build.dir}/test"/>
-    <property name="build.classes" value="${build.dir}/classes"/>
-    <property name="build.classes.main" value="${build.classes}/main" />
-    <property name="build.classes.thrift" value="${build.classes}/thrift" />
-    <property name="javadoc.dir" value="${build.dir}/javadoc"/>
-    <property name="javadoc.jars.dir" value="${build.dir}/javadocs"/>
-    <property name="interface.dir" value="${basedir}/interface"/>
-    <property name="interface.thrift.dir" value="${interface.dir}/thrift"/>
-    <property name="interface.thrift.gen-java" value="${interface.thrift.dir}/gen-java"/>
-    <property name="test.dir" value="${basedir}/test"/>
-    <property name="test.resources" value="${test.dir}/resources"/>
-    <property name="test.lib" value="${build.dir}/test/lib"/>
-    <property name="test.classes" value="${build.dir}/test/classes"/>
-    <property name="test.conf" value="${test.dir}/conf"/>
-    <property name="test.data" value="${test.dir}/data"/>
-    <property name="test.name" value="*Test"/>
-    <property name="test.unit.src" value="${test.dir}/unit"/>
-    <property name="test.long.src" value="${test.dir}/long"/>
-    <property name="test.distributed.src" value="${test.dir}/distributed"/>
-    <property name="dist.dir" value="${build.dir}/dist"/>
-    <condition property="version" value="${base.version}">
-      <isset property="release"/>
-    </condition>
-    <property name="version" value="${base.version}-SNAPSHOT"/>
-    <property name="version.properties.dir"
-              value="${build.classes.main}/org/apache/cassandra/config/" />
-    <property name="final.name" value="${ant.project.name}-${version}"/>
- 
-    <!-- details of what version of Maven ANT Tasks to fetch -->
-    <property name="maven-ant-tasks.version" value="2.1.3" />
-    <property name="maven-ant-tasks.local" value="${user.home}/.m2/repository/org/apache/maven/maven-ant-tasks"/>
-    <property name="maven-ant-tasks.url"
-              value="http://repo2.maven.org/maven2/org/apache/maven/maven-ant-tasks" />
-    <!-- details of how and which Maven repository we publish to -->
-    <property name="maven.version" value="3.0.3" />
-    <condition property="maven-repository-url" value="https://repository.apache.org/service/local/staging/deploy/maven2">
-      <isset property="release"/>
-    </condition>
-    <condition property="maven-repository-id" value="apache.releases.https">
-      <isset property="release"/>
-    </condition>
-    <property name="maven-repository-url" value="https://repository.apache.org/content/repositories/snapshots"/>
-    <property name="maven-repository-id" value="apache.snapshots.https"/>
-
-    <property name="test.timeout" value="60000" />
-    <property name="test.long.timeout" value="300000" />
-
-    <!-- http://cobertura.sourceforge.net/ -->
-    <property name="cobertura.version" value="1.9.4.1"/>
-    <property name="cobertura.build.dir" value="${build.dir}/cobertura"/>
-    <property name="cobertura.report.dir" value="${cobertura.build.dir}/report"/>
-    <property name="cobertura.classes.dir" value="${cobertura.build.dir}/classes"/>
-    <property name="cobertura.datafile" value="${cobertura.build.dir}/cobertura.ser"/>
-
-    <condition property="maven-ant-tasks.jar.exists">
-      <available file="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
-    </condition>
-
-    <condition property="maven-ant-tasks.jar.local">
-      <available file="${maven-ant-tasks.local}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
-    </condition>
-
-    <condition property="is.source.artifact">
-      <available file="${build.src.java}" type="dir" />
-    </condition>
-
-    <condition property="scm.provider.git-svn">
-      <available file="${basedir}/.git" type="dir"/>
-    </condition>
+       xmlns:artifact="antlib:org.apache.maven.artifact.ant">
+  <property environment="env"/>
+  <property file="build.properties" />
+  <property file="build.properties.default" />
+  <property name="debuglevel" value="source,lines,vars"/>
+
+  <!-- default version and SCM information (we need the default SCM info as people may checkout with git-svn) -->
+  <property name="base.version" value="1.0.1"/>
+  <property name="scm.default.path" value="cassandra/branches/cassandra-1.0.0"/>
+  <property name="scm.default.connection" value="scm:svn:http://svn.apache.org/repos/asf/${scm.default.path}"/>
+  <property name="scm.default.developerConnection" value="scm:svn:https://svn.apache.org/repos/asf/${scm.default.path}"/>
+  <property name="scm.default.url" value="http://svn.apache.org/viewvc/${scm.default.path}"/>
+
+  <!-- directory details -->
+  <property name="basedir" value="."/>
+  <property name="build.src" value="${basedir}/src"/>
+  <property name="build.src.java" value="${basedir}/src/java"/>
+  <property name="build.src.resources" value="${basedir}/src/resources"/>
+  <property name="avro.src" value="${basedir}/src/avro"/>
+  <property name="build.src.gen-java" value="${basedir}/src/gen-java"/>
+  <property name="build.lib" value="${basedir}/lib"/>
+  <property name="build.dir" value="${basedir}/build"/>
+  <property name="build.dir.lib" value="${basedir}/build/lib"/>
+  <property name="build.test.dir" value="${build.dir}/test"/>
+  <property name="build.classes" value="${build.dir}/classes"/>
+  <property name="build.classes.main" value="${build.classes}/main" />
+  <property name="build.classes.thrift" value="${build.classes}/thrift" />
+  <property name="javadoc.dir" value="${build.dir}/javadoc"/>
+  <property name="javadoc.jars.dir" value="${build.dir}/javadocs"/>
+  <property name="interface.dir" value="${basedir}/interface"/>
+  <property name="interface.thrift.dir" value="${interface.dir}/thrift"/>
+  <property name="interface.thrift.gen-java" value="${interface.thrift.dir}/gen-java"/>
+  <property name="test.dir" value="${basedir}/test"/>
+  <property name="test.resources" value="${test.dir}/resources"/>
+  <property name="test.lib" value="${build.dir}/test/lib"/>
+  <property name="test.classes" value="${build.dir}/test/classes"/>
+  <property name="test.conf" value="${test.dir}/conf"/>
+  <property name="test.data" value="${test.dir}/data"/>
+  <property name="test.name" value="*Test"/>
+  <property name="test.unit.src" value="${test.dir}/unit"/>
+  <property name="test.long.src" value="${test.dir}/long"/>
+  <property name="test.distributed.src" value="${test.dir}/distributed"/>
+  <property name="dist.dir" value="${build.dir}/dist"/>
+  <condition property="version" value="${base.version}">
+    <isset property="release"/>
+  </condition>
+  <property name="version" value="${base.version}-SNAPSHOT"/>
+  <property name="version.properties.dir"
+            value="${build.classes.main}/org/apache/cassandra/config/" />
+  <property name="final.name" value="${ant.project.name}-${version}"/>
+
+  <!-- details of what version of Maven ANT Tasks to fetch -->
+  <property name="maven-ant-tasks.version" value="2.1.3" />
+  <property name="maven-ant-tasks.local" value="${user.home}/.m2/repository/org/apache/maven/maven-ant-tasks"/>
+  <property name="maven-ant-tasks.url"
+            value="http://repo2.maven.org/maven2/org/apache/maven/maven-ant-tasks" />
+  <!-- details of how and which Maven repository we publish to -->
+  <property name="maven.version" value="3.0.3" />
+  <condition property="maven-repository-url" value="https://repository.apache.org/service/local/staging/deploy/maven2">
+    <isset property="release"/>
+  </condition>
+  <condition property="maven-repository-id" value="apache.releases.https">
+    <isset property="release"/>
+  </condition>
+  <property name="maven-repository-url" value="https://repository.apache.org/content/repositories/snapshots"/>
+  <property name="maven-repository-id" value="apache.snapshots.https"/>
+
+  <property name="test.timeout" value="60000" />
+  <property name="test.long.timeout" value="300000" />
+
+  <!-- http://cobertura.sourceforge.net/ -->
+  <property name="cobertura.version" value="1.9.4.1"/>
+  <property name="cobertura.build.dir" value="${build.dir}/cobertura"/>
+  <property name="cobertura.report.dir" value="${cobertura.build.dir}/report"/>
+  <property name="cobertura.classes.dir" value="${cobertura.build.dir}/classes"/>
+  <property name="cobertura.datafile" value="${cobertura.build.dir}/cobertura.ser"/>
+
+  <condition property="maven-ant-tasks.jar.exists">
+    <available file="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
+  </condition>
+
+  <condition property="maven-ant-tasks.jar.local">
+    <available file="${maven-ant-tasks.local}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
+  </condition>
+
+  <condition property="is.source.artifact">
+    <available file="${build.src.java}" type="dir" />
+  </condition>
+
+  <condition property="scm.provider.git-svn">
+    <available file="${basedir}/.git" type="dir"/>
+  </condition>
+
+  <condition property="scm.provider.svn">
+    <available file="${basedir}/.svn" type="dir"/>
+  </condition>
+
+  <tstamp>
+    <format property="YEAR" pattern="yyyy"/>
+  </tstamp>
 
-    <condition property="scm.provider.svn">
-      <available file="${basedir}/.svn" type="dir"/>
-    </condition>
+  <!--
+       Add all the dependencies.
+  -->
+  <path id="maven-ant-tasks.classpath" path="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
+  <path id="cassandra.classpath">
+      <pathelement location="${cobertura.classes.dir}"/>
+      <pathelement location="${build.classes.main}" />
+      <pathelement location="${build.classes.thrift}" />
+      <fileset dir="${build.lib}">
+        <include name="**/*.jar" />
+      </fileset>
+      <fileset dir="${build.dir.lib}">
+        <include name="**/*.jar" />
+      </fileset>
+  </path>
 
-    <tstamp>
-      <format property="YEAR" pattern="yyyy"/>
-    </tstamp>
+<macrodef name="create-javadoc">
+  <attribute name="destdir"/>
+  <element name="filesets"/>
+  <sequential>
+    <javadoc destdir="@{destdir}" author="true" version="true" use="true"
+      windowtitle="${ant.project.name} API" classpathref="cassandra.classpath"
+      bottom="Copyright &amp;copy; ${YEAR} The Apache Software Foundation"
+      useexternalfile="yes"
+      maxmemory="256m">
+      <filesets/>
+    </javadoc>
+  </sequential>
+</macrodef>
 
-    <!--
-         Add all the dependencies.
-    -->
-    <path id="maven-ant-tasks.classpath" path="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
-    <path id="cassandra.classpath">
-        <pathelement location="${cobertura.classes.dir}"/>
-        <pathelement location="${build.classes.main}" />
-        <pathelement location="${build.classes.thrift}" />
-        <fileset dir="${build.lib}">
-          <include name="**/*.jar" />
-        </fileset>
-        <fileset dir="${build.dir.lib}">
-          <include name="**/*.jar" />
-        </fileset>
-    </path>
+  <!--
+      Setup the output directories.
+  -->
+  <target name="init">
+      <fail unless="is.source.artifact"
+          message="Not a source artifact, stopping here." />
+      <mkdir dir="${build.classes.main}"/>
+      <mkdir dir="${build.classes.thrift}"/>
+      <mkdir dir="${test.lib}"/>
+      <mkdir dir="${test.classes}"/>
+      <mkdir dir="${build.src.gen-java}"/>
+  </target>
 
-  <macrodef name="create-javadoc">
-    <attribute name="destdir"/>
-    <element name="filesets"/>
-    <sequential>
-      <javadoc destdir="@{destdir}" author="true" version="true" use="true"
-        windowtitle="${ant.project.name} API" classpathref="cassandra.classpath"
-        bottom="Copyright &amp;copy; ${YEAR} The Apache Software Foundation"
-        useexternalfile="yes"
-        maxmemory="256m">
-        <filesets/>
-      </javadoc>
-    </sequential>
-  </macrodef>
+  <target name="clean" description="Remove all locally created artifacts">
+      <delete dir="${build.test.dir}" />
+      <delete dir="${build.classes}" />
+      <delete dir="${cobertura.classes.dir}" />
+      <delete dir="${build.src.gen-java}" />
+      <delete file="${build.dir}/internode.avpr" />
+  </target>
+  <target depends="clean" name="cleanall"/>
 
-    <!--
-        Setup the output directories.
-    -->
-    <target name="init">
-        <fail unless="is.source.artifact"
-            message="Not a source artifact, stopping here." />
-        <mkdir dir="${build.classes.main}"/>
-        <mkdir dir="${build.classes.thrift}"/>
-        <mkdir dir="${test.lib}"/>
-        <mkdir dir="${test.classes}"/>
-        <mkdir dir="${build.src.gen-java}"/>
-    </target>
+  <target name="realclean" depends="clean">
+      <delete dir="${build.dir}" />
+  </target>
 
-    <target name="clean" description="Remove all locally created artifacts">
-        <delete dir="${build.test.dir}" />
-        <delete dir="${build.classes}" />
-        <delete dir="${cobertura.classes.dir}" />
-        <delete dir="${build.src.gen-java}" />
-        <delete file="${build.dir}/internode.avpr" />
-    </target>
-    <target depends="clean" name="cleanall"/>
+  <!--
+     This generates the CLI grammar files from Cli.g
+  -->
+  <target name="check-gen-cli-grammar">
+      <uptodate property="cliUpToDate"
+              srcfile="${build.src.java}/org/apache/cassandra/cli/Cli.g"
+              targetfile="${build.src.gen-java}/org/apache/cassandra/cli/Cli.tokens"/>
+  </target>
 
-    <target name="realclean" depends="clean">
-        <delete dir="${build.dir}" />
-    </target>
+  <target name="gen-cli-grammar" depends="check-gen-cli-grammar" unless="cliUpToDate">
+    <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cli/Cli.g  ....</echo>
+    <java classname="org.antlr.Tool"
+          classpath="${build.lib}/antlr-3.2.jar"
+          fork="true"
+          failonerror="true">
+       <arg value="${build.src.java}/org/apache/cassandra/cli/Cli.g" />
+       <arg value="-fo" />
+       <arg value="${build.src.gen-java}/org/apache/cassandra/cli/" />
+    </java>
+  </target>
 
-    <!--
-       This generates the CLI grammar files from Cli.g
-    -->
-    <target name="check-gen-cli-grammar">
-        <uptodate property="cliUpToDate"
-                srcfile="${build.src.java}/org/apache/cassandra/cli/Cli.g"
-                targetfile="${build.src.gen-java}/org/apache/cassandra/cli/Cli.tokens"/>
-    </target>
+  <!--
+     This generates the CQL grammar files from Cql.g
+  -->
+  <target name="check-gen-cql-grammar">
+    <uptodate property="cqlcurrent" 
+              srcfile="${build.src.java}/org/apache/cassandra/cql/Cql.g" 
+              targetfile="${build.src.gen-java}/org/apache/cassandra/cql/Cql.tokens"/>
+  </target>
 
-    <target name="gen-cli-grammar" depends="check-gen-cli-grammar" unless="cliUpToDate">
-      <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cli/Cli.g  ....</echo>
-      <java classname="org.antlr.Tool"
-            classpath="${build.lib}/antlr-3.2.jar"
-            fork="true"
-            failonerror="true">
-         <arg value="${build.src.java}/org/apache/cassandra/cli/Cli.g" />
-         <arg value="-fo" />
-         <arg value="${build.src.gen-java}/org/apache/cassandra/cli/" />
-      </java>
-    </target>
+  <target name="gen-cql-grammar" depends="check-gen-cql-grammar" unless="cqlcurrent">
+    <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql/Cql.g  ...</echo>
+    <java classname="org.antlr.Tool"
+          classpath="${build.lib}/antlr-3.2.jar"
+          fork="true"
+          failonerror="true">
+       <arg value="${build.src.java}/org/apache/cassandra/cql/Cql.g" />
+       <arg value="-fo" />
+       <arg value="${build.src.gen-java}/org/apache/cassandra/cql/" />
+    </java> 
+  </target>
 
-    <!--
-       This generates the CQL grammar files from Cql.g
-    -->
-    <target name="check-gen-cql-grammar">
-      <uptodate property="cqlcurrent" 
-                srcfile="${build.src.java}/org/apache/cassandra/cql/Cql.g" 
-                targetfile="${build.src.gen-java}/org/apache/cassandra/cql/Cql.tokens"/>
-    </target>
- 
-    <target name="gen-cql-grammar" depends="check-gen-cql-grammar" unless="cqlcurrent">
-      <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql/Cql.g  ...</echo>
-      <java classname="org.antlr.Tool"
-            classpath="${build.lib}/antlr-3.2.jar"
-            fork="true"
-            failonerror="true">
-         <arg value="${build.src.java}/org/apache/cassandra/cql/Cql.g" />
-         <arg value="-fo" />
-         <arg value="${build.src.gen-java}/org/apache/cassandra/cql/" />
-      </java> 
-    </target>
-	
-	<target name="generate-cql-html" depends="maven-ant-tasks-init" description="Generate HTML from textile source">
-	  <artifact:dependencies pathId="wikitext.classpath">
-	    <dependency groupId="com.datastax.wikitext" artifactId="wikitext-core-ant" version="1.3"/>	    	  
-	    <dependency groupId="org.fusesource.wikitext" artifactId="textile-core" version="1.3"/>		          
-	  </artifact:dependencies>
-      <taskdef classpathref="wikitext.classpath" resource="wikitexttasks.properties" />
-	    <wikitext-to-html markupLanguage="Textile">
-		  <fileset dir="${basedir}">
-    		<include name="doc/cql/*.textile"/>
-		  </fileset>
-		</wikitext-to-html>
-	</target>
-
-    <target name="scm-svn-info" description="Determines the current Subversion URL with peg revision"
-            if="scm.provider.svn">
-      <exec executable="svn" dir="${basedir}" output="${build.dir}/svn-info.xml">
-        <arg line="info --xml"/>
-      </exec>
-      <xmlproperty file="${build.dir}/svn-info.xml" collapseAttributes="true" prefix="svn" keepRoot="false"/>
-      <echo file="${build.dir}/scm.properties">
+<target name="generate-cql-html" depends="maven-ant-tasks-init" description="Generate HTML from textile source">
+  <artifact:dependencies pathId="wikitext.classpath">
+    <dependency groupId="com.datastax.wikitext" artifactId="wikitext-core-ant" version="1.3"/>	    	  
+    <dependency groupId="org.fusesource.wikitext" artifactId="textile-core" version="1.3"/>		          
+  </artifact:dependencies>
+    <taskdef classpathref="wikitext.classpath" resource="wikitexttasks.properties" />
+    <wikitext-to-html markupLanguage="Textile">
+    <fileset dir="${basedir}">
+      <include name="doc/cql/*.textile"/>
+    </fileset>
+  </wikitext-to-html>
+</target>
+
+  <target name="scm-svn-info" description="Determines the current Subversion URL with peg revision"
+          if="scm.provider.svn">
+    <exec executable="svn" dir="${basedir}" output="${build.dir}/svn-info.xml">
+      <arg line="info --xml"/>
+    </exec>
+    <xmlproperty file="${build.dir}/svn-info.xml" collapseAttributes="true" prefix="svn" keepRoot="false"/>
+    <echo file="${build.dir}/scm.properties">
 connection=scm:svn:${svn.entry.url}@${svn.entry.commit.revision}
 developerConnection=scm:svn:${svn.entry.url}@${svn.entry.commit.revision}
 url=${svn.entry.url}?pathrev=${svn.entry.commit.revision}
-      </echo>
-      <replace file="${build.dir}/scm.properties">
-        <replacefilter token="connection=scm:svn:https:" value="connection=scm:svn:http:"/>
-        <replacefilter token="Connection=scm:svn:http:" value="Connection=scm:svn:https:"/>
-        <replacefilter token="url=${svn.entry.repository.root}" value="url=http://svn.apache.org/viewvc"/>
-      </replace>
-      <property file="${build.dir}/scm.properties" prefix="scm"/>
-    </target>
-
-    <target name="scm-info" description="Determines the SCM details"
-            unless="scm.connection" depends="scm-svn-info">
-      <property name="scm.connection" value="${scm.default.connection}"/>
-      <property name="scm.developerConnection" value="${scm.default.developerConnection}"/>
-      <property name="scm.url" value="${scm.default.url}"/>
-    </target>
-    <!--
-       Fetch Maven Ant Tasks and Cassandra's dependencies
-       These targets are intentionally free of dependencies so that they
-       can be run stand-alone from a binary release artifact.
-    -->
-    <target name="maven-ant-tasks-localrepo" unless="maven-ant-tasks.jar.exists" if="maven-ant-tasks.jar.local"
-            description="Fetch Maven ANT Tasks from Maven Local Repository">
-      <mkdir dir="${build.dir}" />
-      <copy file="${maven-ant-tasks.local}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
-           tofile="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar"/>
-      <property name="maven-ant-tasks.jar.exists" value="true"/>
-    </target>
-
-    <target name="maven-ant-tasks-download" depends="maven-ant-tasks-localrepo" unless="maven-ant-tasks.jar.exists"
-            description="Fetch Maven ANT Tasks from Maven Central Repositroy">
-      <echo>Downloading Maven ANT Tasks...</echo>
-      <mkdir dir="${build.dir}" />
-      <get src="${maven-ant-tasks.url}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
-           dest="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" usetimestamp="true" />
-    </target>
-
-    <target name="maven-ant-tasks-init" depends="maven-ant-tasks-download" unless="maven-ant-tasks.initialized"
-            description="Initialize Maven ANT Tasks">
-      <mkdir dir="${build.dir.lib}"/>
-      <typedef uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
-
-      <!-- define the remote repositories we use -->
-      <artifact:remoteRepository id="central"   url="${artifact.remoteRepository.central}"/>
-      <artifact:remoteRepository id="java.net2" url="${artifact.remoteRepository.java.net2}"/>
-      <artifact:remoteRepository id="apache"    url="${artifact.remoteRepository.apache}"/>
-      <!-- for distributed tests -->
-      <artifact:remoteRepository id="jclouds"   url="${artifact.remoteRepository.jclouds}"/>
-      <artifact:remoteRepository id="oauth"     url="${artifact.remoteRepository.oauth}"/>
-
-      <macrodef name="install">
-        <attribute name="pomFile"/>
-        <attribute name="file"/>
-        <attribute name="classifier" default=""/>
-        <attribute name="packaging" default="jar"/>
-        <sequential>
-          <artifact:mvn mavenVersion="${maven.version}" fork="true" failonerror="true">
-            <arg value="org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file" />
-            <arg value="-DpomFile=@{pomFile}" />
-            <arg value="-Dfile=@{file}" />
-            <arg value="-Dclassifier=@{classifier}" />
-            <arg value="-Dpackaging=@{packaging}" />
-          </artifact:mvn>
-        </sequential>
-      </macrodef>
-
-      <macrodef name="deploy">
-        <attribute name="pomFile"/>
-        <attribute name="file"/>
-        <attribute name="classifier" default=""/>
-        <attribute name="packaging" default="jar"/>
-        <sequential>
-          <artifact:mvn mavenVersion="${maven.version}" fork="true" failonerror="true">
-            <jvmarg value="-Xmx512m"/>
-            <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.4:sign-and-deploy-file" />
-            <arg value="-DretryFailedDeploymentCount=5" />
-            <arg value="-Durl=${maven-repository-url}" />
-            <arg value="-DrepositoryId=${maven-repository-id}" />
-            <arg value="-DpomFile=@{pomFile}" />
-            <arg value="-Dfile=@{file}" />
-            <arg value="-Dclassifier=@{classifier}" />
-            <arg value="-Dpackaging=@{packaging}" />
-            <arg value="-Papache-release" />
-          </artifact:mvn>
-        </sequential>
-      </macrodef>
-
-      <property name="maven-ant-tasks.initialized" value="true"/>
-    </target>
-
-    <!-- this task defines the dependencies that will be fetched by Maven ANT Tasks
-         the dependencies are re-used for publishing artifacts to Maven Central
-         in order to keep everything consistent -->
-    <target name="maven-declare-dependencies" depends="maven-ant-tasks-init, scm-info"
-            description="Define dependencies and dependency versions">
-      <!-- The parent pom defines the versions of all dependencies -->
-      <artifact:pom id="parent-pom"
-                    groupId="org.apache.cassandra"
-                    artifactId="cassandra-parent"
-                    packaging="pom"
-                    version="${version}"
-                    url="http://cassandra.apache.org"
-                    name="Apache Cassandra"
-                    inceptionYear="2009"
-                    description="The Apache Cassandra Project develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model.">
-        <license name="The Apache Software License, Version 2.0" url="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
-        <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
-        <dependencyManagement>
-          <dependency groupId="org.xerial.snappy" artifactId="snappy-java" version="1.0.3"/>
-          <dependency groupId="com.ning" artifactId="compress-lzf" version="0.8.4"/>
-          <dependency groupId="com.google.guava" artifactId="guava" version="r08"/>
-          <dependency groupId="commons-cli" artifactId="commons-cli" version="1.1"/>
-          <dependency groupId="commons-codec" artifactId="commons-codec" version="1.2"/>
-          <dependency groupId="commons-lang" artifactId="commons-lang" version="2.4"/>
-          <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru" version="1.2"/>
-          <dependency groupId="org.antlr" artifactId="antlr" version="3.2"/>
-          <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.6.1"/>
-          <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.6.1"/>
-          <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl" version="1.4.0"/>
-          <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl" version="1.4.0"/>
-          <dependency groupId="jline" artifactId="jline" version="0.9.94">
-            <exclusion groupId="junit" artifactId="junit"/>
-          </dependency>
-          <dependency groupId="com.googlecode.json-simple" artifactId="json-simple" version="1.1"/>
-          <dependency groupId="com.github.stephenc.high-scale-lib" artifactId="high-scale-lib" version="1.1.2"/>
-          <dependency groupId="com.github.stephenc" artifactId="jamm" version="0.2.5"/>
-          <dependency groupId="org.yaml" artifactId="snakeyaml" version="1.6"/>
-          <dependency groupId="org.apache.cassandra.deps" artifactId="avro" version="1.4.0-cassandra-1">
-            <exclusion groupId="org.jboss.netty" artifactId="netty"/>
-            <exclusion groupId="com.thoughtworks.paranamer" artifactId="paranamer"/>
-            <exclusion groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant"/>
-            <exclusion groupId="org.apache.velocity" artifactId="velocity"/>
-          </dependency>
-          
-          <dependency groupId="org.apache.thrift" artifactId="libthrift" version="0.6.1">
-            <exclusion groupId="org.slf4j" artifactId="slf4j-log4j12"/>
-          </dependency>
-
-          <dependency groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant" version="2.1"/>
-          <dependency groupId="junit" artifactId="junit" version="4.6" />
-          <dependency groupId="commons-logging" artifactId="commons-logging" version="1.1.1"/>
-          <dependency groupId="org.apache.rat" artifactId="apache-rat" version="0.6" />
-          <dependency groupId="org.apache.hadoop" artifactId="hadoop-core" version="0.20.203.0"/>
-          <dependency groupId="net.sf.jopt-simple" artifactId="jopt-simple" version="3.2"/>
-          <dependency groupId="net.java.dev.jna" artifactId="jna" version="3.2.7"/>
-
-          <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura" version="${cobertura.version}"/>
-
-          <dependency groupId="org.apache.whirr" artifactId="whirr-core" version="0.4.0-incubating"/>
-          <dependency groupId="org.apache.whirr" artifactId="whirr-cli" version="0.4.0-incubating"/>
-          <dependency groupId="org.jclouds.provider" artifactId="aws-s3" version="1.0-beta-9b" />
-
-          <dependency groupId="log4j" artifactId="log4j" version="1.2.16" />
-          <dependency groupId="org.apache.cassandra" artifactId="cassandra-all" version="${version}" />
-          <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
-        </dependencyManagement>
-        <developer id="alakshman" name="Avinash Lakshman"/>
-        <developer id="antelder" name="Anthony Elder"/>
-        <developer id="brandonwilliams" name="Brandon Williams"/>
-        <developer id="eevans" name="Eric Evans"/>
-        <developer id="gdusbabek" name="Gary Dusbabek"/>
-        <developer id="goffinet" name="Chris Goffinet"/>
-        <developer id="jaakko" name="Laine Jaakko Olavi"/>
-        <developer id="jake" name="T Jake Luciani"/>
-        <developer id="jbellis" name="Jonathan Ellis"/>
-        <developer id="johan" name="Johan Oskarsson"/>
-        <developer id="junrao" name="Jun Rao"/>
-        <developer id="mriou" name="Matthieu Riou"/>
-        <developer id="pmalik" name="Prashant Malik"/>
-        <developer id="slebresne" name="Sylvain Lebresne"/>
-      </artifact:pom>
-
-      <!-- each dependency set then defines the subset of the dependencies for that dependency set -->
-      <artifact:pom id="build-deps-pom"
-                    artifactId="cassandra-build-deps">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <!-- FIXME: paranamer can be dropped after we're depending on avro
-        (since it depends on them). -->
-        <dependency groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant"/>
-        <dependency groupId="junit" artifactId="junit"/>
-        <dependency groupId="commons-logging" artifactId="commons-logging"/>
-        <dependency groupId="org.apache.rat" artifactId="apache-rat"/>
-        <dependency groupId="org.apache.hadoop" artifactId="hadoop-core"/>
-        <dependency groupId="net.sf.jopt-simple" artifactId="jopt-simple"/>
-
-        <dependency groupId="net.java.dev.jna" artifactId="jna"/>
-      </artifact:pom>
+    </echo>
+    <replace file="${build.dir}/scm.properties">
+      <replacefilter token="connection=scm:svn:https:" value="connection=scm:svn:http:"/>
+      <replacefilter token="Connection=scm:svn:http:" value="Connection=scm:svn:https:"/>
+      <replacefilter token="url=${svn.entry.repository.root}" value="url=http://svn.apache.org/viewvc"/>
+    </replace>
+    <property file="${build.dir}/scm.properties" prefix="scm"/>
+  </target>
 
-      <artifact:pom id="coverage-deps-pom"
-                    artifactId="cassandra-coverage-deps">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura"/>
-      </artifact:pom>
+  <target name="scm-info" description="Determines the SCM details"
+          unless="scm.connection" depends="scm-svn-info">
+    <property name="scm.connection" value="${scm.default.connection}"/>
+    <property name="scm.developerConnection" value="${scm.default.developerConnection}"/>
+    <property name="scm.url" value="${scm.default.url}"/>
+  </target>
+  <!--
+     Fetch Maven Ant Tasks and Cassandra's dependencies
+     These targets are intentionally free of dependencies so that they
+     can be run stand-alone from a binary release artifact.
+  -->
+  <target name="maven-ant-tasks-localrepo" unless="maven-ant-tasks.jar.exists" if="maven-ant-tasks.jar.local"
+          description="Fetch Maven ANT Tasks from Maven Local Repository">
+    <mkdir dir="${build.dir}" />
+    <copy file="${maven-ant-tasks.local}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
+         tofile="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar"/>
+    <property name="maven-ant-tasks.jar.exists" value="true"/>
+  </target>
 
-      <artifact:pom id="test-deps-pom"
-                    artifactId="cassandra-test-deps">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <dependency groupId="org.apache.whirr" artifactId="whirr-core"/>
-        <dependency groupId="org.apache.whirr" artifactId="whirr-cli"/>
-        <dependency groupId="org.jclouds.provider" artifactId="aws-s3"/>
-      </artifact:pom>
+  <target name="maven-ant-tasks-download" depends="maven-ant-tasks-localrepo" unless="maven-ant-tasks.jar.exists"
+          description="Fetch Maven ANT Tasks from Maven Central Repositroy">
+    <echo>Downloading Maven ANT Tasks...</echo>
+    <mkdir dir="${build.dir}" />
+    <get src="${maven-ant-tasks.url}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
+         dest="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" usetimestamp="true" />
+  </target>
 
-      <!-- now the pom's for artifacts being deployed to Maven Central -->
+  <target name="maven-ant-tasks-init" depends="maven-ant-tasks-download" unless="maven-ant-tasks.initialized"
+          description="Initialize Maven ANT Tasks">
+    <mkdir dir="${build.dir.lib}"/>
+    <typedef uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
+
+    <!-- define the remote repositories we use -->
+    <artifact:remoteRepository id="central"   url="${artifact.remoteRepository.central}"/>
+    <artifact:remoteRepository id="java.net2" url="${artifact.remoteRepository.java.net2}"/>
+    <artifact:remoteRepository id="apache"    url="${artifact.remoteRepository.apache}"/>
+    <!-- for distributed tests -->
+    <artifact:remoteRepository id="jclouds"   url="${artifact.remoteRepository.jclouds}"/>
+    <artifact:remoteRepository id="oauth"     url="${artifact.remoteRepository.oauth}"/>
+
+    <macrodef name="install">
+      <attribute name="pomFile"/>
+      <attribute name="file"/>
+      <attribute name="classifier" default=""/>
+      <attribute name="packaging" default="jar"/>
+      <sequential>
+        <artifact:mvn mavenVersion="${maven.version}" fork="true" failonerror="true">
+          <arg value="org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file" />
+          <arg value="-DpomFile=@{pomFile}" />
+          <arg value="-Dfile=@{file}" />
+          <arg value="-Dclassifier=@{classifier}" />
+          <arg value="-Dpackaging=@{packaging}" />
+        </artifact:mvn>
+      </sequential>
+    </macrodef>
 
-      <artifact:pom id="all-pom"
-                    artifactId="cassandra-all"
-                    url="http://cassandra.apache.org"
-                    name="Apache Cassandra">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
-        <dependency groupId="org.xerial.snappy" artifactId="snappy-java"/>
-        <dependency groupId="com.ning" artifactId="compress-lzf"/>
-        <dependency groupId="com.google.guava" artifactId="guava"/>
-        <dependency groupId="commons-cli" artifactId="commons-cli"/>
-        <dependency groupId="commons-codec" artifactId="commons-codec"/>
-        <dependency groupId="commons-lang" artifactId="commons-lang"/>
-        <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru"/>
-        <dependency groupId="org.antlr" artifactId="antlr"/>
-        <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
-        <dependency groupId="org.apache.cassandra.deps" artifactId="avro"/>
-        <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl"/>
-        <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl"/>
-        <dependency groupId="jline" artifactId="jline"/>
-        <dependency groupId="com.googlecode.json-simple" artifactId="json-simple"/>
-        <dependency groupId="com.github.stephenc.high-scale-lib" artifactId="high-scale-lib"/>
-        <dependency groupId="org.yaml" artifactId="snakeyaml"/>
-        
-        <dependency groupId="log4j" artifactId="log4j"/>
-        <!-- cassandra has a hard dependency on log4j, so force slf4j's log4j provider at runtime -->
-        <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" scope="runtime"/>
+    <macrodef name="deploy">
+      <attribute name="pomFile"/>
+      <attribute name="file"/>
+      <attribute name="classifier" default=""/>
+      <attribute name="packaging" default="jar"/>
+      <sequential>
+        <artifact:mvn mavenVersion="${maven.version}" fork="true" failonerror="true">
+          <jvmarg value="-Xmx512m"/>
+          <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.4:sign-and-deploy-file" />
+          <arg value="-DretryFailedDeploymentCount=5" />
+          <arg value="-Durl=${maven-repository-url}" />
+          <arg value="-DrepositoryId=${maven-repository-id}" />
+          <arg value="-DpomFile=@{pomFile}" />
+          <arg value="-Dfile=@{file}" />
+          <arg value="-Dclassifier=@{classifier}" />
+          <arg value="-Dpackaging=@{packaging}" />
+          <arg value="-Papache-release" />
+        </artifact:mvn>
+      </sequential>
+    </macrodef>
 
-        <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
-        <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift"/>
-        
-        <!-- don't need hadoop classes to run, but if you use the hadoop stuff -->
-        <dependency groupId="org.apache.hadoop" artifactId="hadoop-core" optional="true"/>
+    <property name="maven-ant-tasks.initialized" value="true"/>
+  </target>
 
-        <!-- don't need jna to run, but nice to have -->
-        <dependency groupId="net.java.dev.jna" artifactId="jna" optional="true"/>
+  <!-- this task defines the dependencies that will be fetched by Maven ANT Tasks
+       the dependencies are re-used for publishing artifacts to Maven Central
+       in order to keep everything consistent -->
+  <target name="maven-declare-dependencies" depends="maven-ant-tasks-init, scm-info"
+          description="Define dependencies and dependency versions">
+    <!-- The parent pom defines the versions of all dependencies -->
+    <artifact:pom id="parent-pom"
+                  groupId="org.apache.cassandra"
+                  artifactId="cassandra-parent"
+                  packaging="pom"
+                  version="${version}"
+                  url="http://cassandra.apache.org"
+                  name="Apache Cassandra"
+                  inceptionYear="2009"
+                  description="The Apache Cassandra Project develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model.">
+      <license name="The Apache Software License, Version 2.0" url="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
+      <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
+      <dependencyManagement>
+        <dependency groupId="org.xerial.snappy" artifactId="snappy-java" version="1.0.3"/>
+        <dependency groupId="com.ning" artifactId="compress-lzf" version="0.8.4"/>
+        <dependency groupId="com.google.guava" artifactId="guava" version="r08"/>
+        <dependency groupId="commons-cli" artifactId="commons-cli" version="1.1"/>
+        <dependency groupId="commons-codec" artifactId="commons-codec" version="1.2"/>
+        <dependency groupId="commons-lang" artifactId="commons-lang" version="2.4"/>
+        <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru" version="1.2"/>
+        <dependency groupId="org.antlr" artifactId="antlr" version="3.2"/>
+        <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.6.1"/>
+        <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.6.1"/>
+        <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl" version="1.4.0"/>
+        <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl" version="1.4.0"/>
+        <dependency groupId="jline" artifactId="jline" version="0.9.94">
+          <exclusion groupId="junit" artifactId="junit"/>
+        </dependency>
+        <dependency groupId="com.googlecode.json-simple" artifactId="json-simple" version="1.1"/>
+        <dependency groupId="com.github.stephenc.high-scale-lib" artifactId="high-scale-lib" version="1.1.2"/>
+        <dependency groupId="com.github.stephenc" artifactId="jamm" version="0.2.5"/>
+        <dependency groupId="org.yaml" artifactId="snakeyaml" version="1.6"/>
+        <dependency groupId="org.apache.cassandra.deps" artifactId="avro" version="1.4.0-cassandra-1">
+          <exclusion groupId="org.jboss.netty" artifactId="netty"/>
+          <exclusion groupId="com.thoughtworks.paranamer" artifactId="paranamer"/>
+          <exclusion groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant"/>
+          <exclusion groupId="org.apache.velocity" artifactId="velocity"/>
+        </dependency>
         
-        <!-- don't need jamm unless running a server in which case it needs to be a -javagent to be used anyway -->
-        <dependency groupId="com.github.stephenc" artifactId="jamm"/>
-      </artifact:pom>
-      <artifact:pom id="thrift-pom"
-                    artifactId="cassandra-thrift"
-                    url="http://cassandra.apache.org"
-                    name="Apache Cassandra">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
-        <dependency groupId="commons-lang" artifactId="commons-lang"/>
-        <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
-        <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
-      </artifact:pom>
-      <artifact:pom id="clientutil-pom"
-                    artifactId="cassandra-clientutil"
-                    url="http://cassandra.apache.org"
-                    name="Apache Cassandra">
-        <parent groupId="org.apache.cassandra"
-                artifactId="cassandra-parent"
-                version="${version}"/>
-        <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
-	<dependency groupId="com.google.guava" artifactId="guava"/>
-      </artifact:pom>
-
+        <dependency groupId="org.apache.thrift" artifactId="libthrift" version="0.6.1">
+          <exclusion groupId="org.slf4j" artifactId="slf4j-log4j12"/>
+        </dependency>
+
+        <dependency groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant" version="2.1"/>
+        <dependency groupId="junit" artifactId="junit" version="4.6" />
+        <dependency groupId="commons-logging" artifactId="commons-logging" version="1.1.1"/>
+        <dependency groupId="org.apache.rat" artifactId="apache-rat" version="0.6" />
+        <dependency groupId="org.apache.hadoop" artifactId="hadoop-core" version="0.20.203.0"/>
+        <dependency groupId="net.sf.jopt-simple" artifactId="jopt-simple" version="3.2"/>
+        <dependency groupId="net.java.dev.jna" artifactId="jna" version="3.2.7"/>
+
+        <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura" version="${cobertura.version}"/>
+
+        <dependency groupId="org.apache.whirr" artifactId="whirr-core" version="0.4.0-incubating"/>
+        <dependency groupId="org.apache.whirr" artifactId="whirr-cli" version="0.4.0-incubating"/>
+        <dependency groupId="org.jclouds.provider" artifactId="aws-s3" version="1.0-beta-9b" />
+
+        <dependency groupId="log4j" artifactId="log4j" version="1.2.16" />
+        <dependency groupId="org.apache.cassandra" artifactId="cassandra-all" version="${version}" />
+        <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
+      </dependencyManagement>
+      <developer id="alakshman" name="Avinash Lakshman"/>
+      <developer id="antelder" name="Anthony Elder"/>
+      <developer id="brandonwilliams" name="Brandon Williams"/>
+      <developer id="eevans" name="Eric Evans"/>
+      <developer id="gdusbabek" name="Gary Dusbabek"/>
+      <developer id="goffinet" name="Chris Goffinet"/>
+      <developer id="jaakko" name="Laine Jaakko Olavi"/>
+      <developer id="jake" name="T Jake Luciani"/>
+      <developer id="jbellis" name="Jonathan Ellis"/>
+      <developer id="johan" name="Johan Oskarsson"/>
+      <developer id="junrao" name="Jun Rao"/>
+      <developer id="mriou" name="Matthieu Riou"/>
+      <developer id="pmalik" name="Prashant Malik"/>
+      <developer id="slebresne" name="Sylvain Lebresne"/>
+    </artifact:pom>
+
+    <!-- each dependency set then defines the subset of the dependencies for that dependency set -->
+    <artifact:pom id="build-deps-pom"
+                  artifactId="cassandra-build-deps">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <!-- FIXME: paranamer can be dropped after we're depending on avro
+      (since it depends on them). -->
+      <dependency groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant"/>
+      <dependency groupId="junit" artifactId="junit"/>
+      <dependency groupId="commons-logging" artifactId="commons-logging"/>
+      <dependency groupId="org.apache.rat" artifactId="apache-rat"/>
+      <dependency groupId="org.apache.hadoop" artifactId="hadoop-core"/>
+      <dependency groupId="net.sf.jopt-simple" artifactId="jopt-simple"/>
+
+      <dependency groupId="net.java.dev.jna" artifactId="jna"/>
+    </artifact:pom>
+
+    <artifact:pom id="coverage-deps-pom"
+                  artifactId="cassandra-coverage-deps">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura"/>
+    </artifact:pom>
+
+    <artifact:pom id="test-deps-pom"
+                  artifactId="cassandra-test-deps">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <dependency groupId="org.apache.whirr" artifactId="whirr-core"/>
+      <dependency groupId="org.apache.whirr" artifactId="whirr-cli"/>
+      <dependency groupId="org.jclouds.provider" artifactId="aws-s3"/>
+    </artifact:pom>
+
+    <!-- now the pom's for artifacts being deployed to Maven Central -->
+
+    <artifact:pom id="all-pom"
+                  artifactId="cassandra-all"
+                  url="http://cassandra.apache.org"
+                  name="Apache Cassandra">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
+      <dependency groupId="org.xerial.snappy" artifactId="snappy-java"/>
+      <dependency groupId="com.ning" artifactId="compress-lzf"/>
+      <dependency groupId="com.google.guava" artifactId="guava"/>
+      <dependency groupId="commons-cli" artifactId="commons-cli"/>
+      <dependency groupId="commons-codec" artifactId="commons-codec"/>
+      <dependency groupId="commons-lang" artifactId="commons-lang"/>
+      <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru"/>
+      <dependency groupId="org.antlr" artifactId="antlr"/>
+      <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
+      <dependency groupId="org.apache.cassandra.deps" artifactId="avro"/>
+      <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl"/>
+      <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl"/>
+      <dependency groupId="jline" artifactId="jline"/>
+      <dependency groupId="com.googlecode.json-simple" artifactId="json-simple"/>
+      <dependency groupId="com.github.stephenc.high-scale-lib" artifactId="high-scale-lib"/>
+      <dependency groupId="org.yaml" artifactId="snakeyaml"/>
+      
+      <dependency groupId="log4j" artifactId="log4j"/>
+      <!-- cassandra has a hard dependency on log4j, so force slf4j's log4j provider at runtime -->
+      <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" scope="runtime"/>
+
+      <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
+      <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift"/>
+      
+      <!-- don't need hadoop classes to run, but if you use the hadoop stuff -->
+      <dependency groupId="org.apache.hadoop" artifactId="hadoop-core" optional="true"/>
+
+      <!-- don't need jna to run, but nice to have -->
+      <dependency groupId="net.java.dev.jna" artifactId="jna" optional="true"/>
+      
+      <!-- don't need jamm unless running a server in which case it needs to be a -javagent to be used anyway -->
+      <dependency groupId="com.github.stephenc" artifactId="jamm"/>
+    </artifact:pom>
+    <artifact:pom id="thrift-pom"
+                  artifactId="cassandra-thrift"
+                  url="http://cassandra.apache.org"
+                  name="Apache Cassandra">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
+      <dependency groupId="commons-lang" artifactId="commons-lang"/>
+      <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
+      <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
+    </artifact:pom>
+    <artifact:pom id="clientutil-pom"
+                  artifactId="cassandra-clientutil"
+                  url="http://cassandra.apache.org"
+                  name="Apache Cassandra">
+      <parent groupId="org.apache.cassandra"
+              artifactId="cassandra-parent"
+              version="${version}"/>
+      <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
+<dependency groupId="com.google.guava" artifactId="guava"/>
+    </artifact:pom>
+      
       <artifact:pom id="dist-pom"
                     artifactId="apache-cassandra"
                     packaging="pom"
@@ -1295,6 +1295,10 @@ url=${svn.entry.url}?pathrev=${svn.entry
              file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar"
              classifier="javadoc"/>
 
+    <!-- the cassandra-clientutil jar -->  
+    <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+             file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/>
+
     <!-- the cassandra-all jar -->
     <install pomFile="${build.dir}/${final.name}.pom"
              file="${build.dir}/${final.name}.jar"/>
@@ -1339,6 +1343,10 @@ url=${svn.entry.url}?pathrev=${svn.entry
             file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar"
             classifier="javadoc"/>
 
+    <!-- the cassandra-clientutil jar -->  
+    <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+            file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/>
+
     <!-- the cassandra-all jar -->
     <deploy pomFile="${build.dir}/${final.name}.pom"
             file="${build.dir}/${final.name}.jar"/>

Modified: cassandra/trunk/conf/cassandra-env.sh
URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra-env.sh?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra-env.sh (original)
+++ cassandra/trunk/conf/cassandra-env.sh Mon Oct 31 16:43:33 2011
@@ -165,6 +165,7 @@ JVM_OPTS="$JVM_OPTS -XX:+UseCMSInitiatin
 # GC logging options -- uncomment to enable
 # JVM_OPTS="$JVM_OPTS -XX:+PrintGCDetails"
 # JVM_OPTS="$JVM_OPTS -XX:+PrintGCTimeStamps"
+# JVM_OPTS="$JVM_OPTS -XX:+PrintHeapAtGC"
 # JVM_OPTS="$JVM_OPTS -XX:+PrintTenuringDistribution"
 # JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime"
 # JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure"

Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
 /cassandra/branches/cassandra-0.7/contrib:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
-/cassandra/branches/cassandra-1.0/contrib:1167085-1190461
+/cassandra/branches/cassandra-1.0/contrib:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020

Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1190461
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1102511-1125020

Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1190461
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1102511-1125020

Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1190461
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1102511-1125020

Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1190461
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1102511-1125020

Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct 31 16:43:33 2011
@@ -1,10 +1,10 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1186803,1187333,1187339,1187477,1188353,1188740
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1188353,1188740
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1190461
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1195557
 /cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1181093,1181741,1181816,1181820,1182951,1183243
 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1102511-1125020

Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Mon Oct 31 16:43:33 2011
@@ -196,7 +196,6 @@ public class CliClient
     public void executeCLIStatement(String statement) throws CharacterCodingException, TException, TimedOutException, NotFoundException, NoSuchFieldException, InvalidRequestException, UnavailableException, InstantiationException, IllegalAccessException, ClassNotFoundException, SchemaDisagreementException
     {
         Tree tree = CliCompiler.compileQuery(statement);
-
         try
         {
             switch (tree.getType())
@@ -298,7 +297,7 @@ public class CliClient
         }
         catch (SchemaDisagreementException e)
         {
-        	throw new RuntimeException("schema does not match across nodes, (try again later).", e);
+            throw new RuntimeException("schema does not match across nodes, (try again later).", e);
         }
     }
 
@@ -452,6 +451,7 @@ public class CliClient
             throws InvalidRequestException, UnavailableException, TimedOutException, TException, IllegalAccessException, NotFoundException, InstantiationException, NoSuchFieldException
     {
         
+        long startTime = System.currentTimeMillis();
         ColumnParent parent = new ColumnParent(columnFamily);
         if(superColumnName != null)
             parent.setSuper_column(superColumnName);
@@ -521,6 +521,7 @@ public class CliClient
         }
         
         sessionState.out.println("Returned " + columns.size() + " results.");
+        elapsedTime(startTime);
     }
 
     private AbstractType getFormatType(String compareWith)
@@ -554,7 +555,7 @@ public class CliClient
     {
         if (!CliMain.isConnected() || !hasKeySpace())
             return;
-
+        long startTime = System.currentTimeMillis();
         Tree columnFamilySpec = statement.getChild(0);
         String columnFamily = CliCompiler.getColumnFamily(columnFamilySpec, keyspacesMap.get(keySpace).cf_defs);
         ByteBuffer key = getKeyAsBytes(columnFamily, columnFamilySpec.getChild(1));
@@ -635,6 +636,7 @@ public class CliClient
         if (isCounterCF(cfDef))
         {
             doGetCounter(key, path);
+            elapsedTime(startTime);
             return;
         }
 
@@ -646,6 +648,7 @@ public class CliClient
         catch (NotFoundException e)
         {
             sessionState.out.println("Value was not found");
+            elapsedTime(startTime);
             return;
         }
 
@@ -682,6 +685,7 @@ public class CliClient
                                 valueAsString,
                                 column.timestamp,
                                 column.isSetTtl() ? String.format(", ttl=%d", column.getTtl()) : "");
+        elapsedTime(startTime);
     }
 
     private void doGetCounter(ByteBuffer key, ColumnPath path)
@@ -720,6 +724,8 @@ public class CliClient
         if (!CliMain.isConnected() || !hasKeySpace())
             return;
 
+        long startTime = System.currentTimeMillis();
+
         IndexClause clause = new IndexClause();
         String columnFamily = CliCompiler.getColumnFamily(statement, keyspacesMap.get(keySpace).cf_defs);
         // ^(CONDITIONS ^(CONDITION $column $value) ...)
@@ -802,6 +808,7 @@ public class CliClient
         {
             throw new RuntimeException(e);
         }
+        elapsedTime(startTime);
     }
 
     // Execute SET statement
@@ -811,6 +818,7 @@ public class CliClient
         if (!CliMain.isConnected() || !hasKeySpace())
             return;
         
+        long startTime = System.currentTimeMillis();
         // ^(NODE_COLUMN_ACCESS <cf> <key> <column>)
         Tree columnFamilySpec = statement.getChild(0);
         Tree keyTree = columnFamilySpec.getChild(1); // could be a function or regular text
@@ -890,6 +898,7 @@ public class CliClient
         // do the insert
         thriftClient.insert(getKeyAsBytes(columnFamily, keyTree), parent, columnToInsert, consistencyLevel);
         sessionState.out.println("Value inserted.");
+        elapsedTime(startTime);
     }
 
     // Execute INCR statement
@@ -1313,7 +1322,9 @@ public class CliClient
     {
         if (!CliMain.isConnected() || !hasKeySpace())
             return;
-        
+
+        long startTime = System.currentTimeMillis();
+
         // extract column family
         String columnFamily = CliCompiler.getColumnFamily(statement, keyspacesMap.get(keySpace).cf_defs);
 
@@ -1375,6 +1386,7 @@ public class CliClient
         ColumnParent columnParent = new ColumnParent(columnFamily);
         List<KeySlice> keySlices = thriftClient.get_range_slices(columnParent, predicate, range, consistencyLevel);
         printSliceList(columnFamilyDef, keySlices);
+        elapsedTime(startTime);
     }
 
     // DROP INDEX ON <CF>.<COLUMN>
@@ -2853,4 +2865,9 @@ public class CliClient
         }
         return false;
     }
+
+    private void elapsedTime(long startTime)
+    {
+        sessionState.out.println("Elapsed time: " + (System.currentTimeMillis() - startTime) + " msec(s).");
+    }
 }

Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Mon Oct 31 16:43:33 2011
@@ -798,7 +798,7 @@ public class Gossiper implements IFailur
             subscriber.onJoin(ep, epState);
     }
 
-    public Boolean isDeadState(EndpointState epState)
+    private Boolean isDeadState(EndpointState epState)
     {
         if (epState.getApplicationState(ApplicationState.STATUS) == null)
             return false;

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java Mon Oct 31 16:43:33 2011
@@ -23,8 +23,6 @@ import java.nio.channels.FileChannel;
 import java.util.zip.CRC32;
 import java.util.zip.Checksum;
 
-import org.apache.cassandra.io.sstable.Component;
-import org.apache.cassandra.io.sstable.Descriptor;
 import org.apache.cassandra.io.util.RandomAccessReader;
 import org.apache.cassandra.utils.FBUtilities;
 
@@ -36,31 +34,9 @@ public class CompressedRandomAccessReade
 {
     private static final Logger logger = LoggerFactory.getLogger(CompressedRandomAccessReader.class);
 
-    /**
-     * Get metadata about given compressed file including uncompressed data length, chunk size
-     * and list of the chunk offsets of the compressed data.
-     *
-     * @param dataFilePath Path to the compressed file
-     *
-     * @return metadata about given compressed file.
-     */
-    public static CompressionMetadata metadata(String dataFilePath)
-    {
-        Descriptor desc = Descriptor.fromFilename(dataFilePath);
-
-        try
-        {
-            return new CompressionMetadata(desc.filenameFor(Component.COMPRESSION_INFO), new File(dataFilePath).length());
-        }
-        catch (IOException e)
-        {
-            throw new IOError(e);
-        }
-    }
-
     public static RandomAccessReader open(String dataFilePath, boolean skipIOCache) throws IOException
     {
-        return open(dataFilePath, metadata(dataFilePath), skipIOCache);
+        return open(dataFilePath, CompressionMetadata.get(dataFilePath), skipIOCache);
     }
 
     public static RandomAccessReader open(String dataFilePath, CompressionMetadata metadata) throws IOException

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java Mon Oct 31 16:43:33 2011
@@ -21,8 +21,11 @@ package org.apache.cassandra.io.compress
 import java.io.*;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.io.sstable.Component;
+import org.apache.cassandra.io.sstable.Descriptor;
 import org.apache.cassandra.io.util.FileUtils;
 
 /**
@@ -36,7 +39,53 @@ public class CompressionMetadata
     public final String indexFilePath;
     public final CompressionParameters parameters;
 
-    public CompressionMetadata(String indexFilePath, long compressedLength) throws IOException
+    /**
+     * Caches instances of CompressionMetadata.
+     * Each metada holds the chunk offsets index, which is reasonably big for
+     * enough data, so it's an expensive structure. We thus only want one
+     * CompressionMetadata created for each sstable.
+     * Note that we could have a compressionMetadata field in SSTableReader,
+     * but CompressedSegmentFile.Builder needs it before the reader is
+     * created, so it's easier that way.
+     */
+    private final static Map<String, CompressionMetadata> cache = new ConcurrentHashMap<String, CompressionMetadata>();
+
+    /**
+     * Get metadata about given compressed file including uncompressed data length, chunk size
+     * and list of the chunk offsets of the compressed data.
+     *
+     * @param dataFilePath Path to the compressed file
+     *
+     * @return metadata about given compressed file.
+     */
+    public static CompressionMetadata get(String dataFilePath)
+    {
+        CompressionMetadata metadata = cache.get(dataFilePath);
+        if (metadata != null)
+            return metadata;
+
+        // We want this to be relatively fast, because it's called often (for each
+        // range query). On the side, we don't care too much if the initial
+        // creation is no thread-safe, because we'll call this when the
+        // SSTableReader is loaded/created, so we're pretty sure there won't
+        // be any contention. Besides, if we really do create two
+        // CompressionMetadata, it's not the end of the world, so we don't
+        // bother with synchronization
+        Descriptor desc = Descriptor.fromFilename(dataFilePath);
+        try
+        {
+            metadata = new CompressionMetadata(desc.filenameFor(Component.COMPRESSION_INFO), new File(dataFilePath).length());
+            cache.put(dataFilePath, metadata);
+            return metadata;
+        }
+        catch (IOException e)
+        {
+            throw new IOError(e);
+        }
+    }
+
+    // This is package protected because of the tests. Don't use, use get() instead.
+    CompressionMetadata(String indexFilePath, long compressedLength) throws IOException
     {
         this.indexFilePath = indexFilePath;
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java Mon Oct 31 16:43:33 2011
@@ -52,7 +52,7 @@ public class CompressedSegmentedFile ext
          */
         public SegmentedFile complete(String path)
         {
-            return new CompressedSegmentedFile(path, CompressedRandomAccessReader.metadata(path));
+            return new CompressedSegmentedFile(path, CompressionMetadata.get(path));
         }
     }
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java?rev=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java Mon Oct 31 16:43:33 2011
@@ -67,7 +67,7 @@ public class TokenMetadata
     // Finally, note that recording the tokens of joining nodes in bootstrapTokens also
     // means we can detect and reject the addition of multiple nodes at the same token
     // before one becomes part of the ring.
-    private BiMap<Token, InetAddress> bootstrapTokens = HashBiMap.create();
+    private BiMap<Token, InetAddress> bootstrapTokens = Maps.synchronizedBiMap(HashBiMap.<Token, InetAddress>create());
     // (don't need to record Token here since it's still part of tokenToEndpointMap until it's done leaving)
     private Set<InetAddress> leavingEndpoints = new HashSet<InetAddress>();
     // this is a cache of the calculation from {tokenToEndpointMap, bootstrapTokens, leavingEndpoints}

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=1195562&r1=1195561&r2=1195562&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java Mon Oct 31 16:43:33 2011
@@ -249,15 +249,16 @@ public class CliTest extends CleanupHelp
             }
             else if (statement.startsWith("set "))
             {
-                assertEquals(result, "Value inserted." + System.getProperty("line.separator"));
+                 assertTrue(result.contains("Value inserted."));
+                 assertTrue(result.contains("Elapsed time:"));
             }
             else if (statement.startsWith("incr "))
             {
-                assertEquals(result, "Value incremented." + System.getProperty("line.separator"));
+                 assertTrue(result.contains("Value incremented."));
             }
             else if (statement.startsWith("decr "))
             {
-                assertEquals(result, "Value decremented." + System.getProperty("line.separator"));
+                 assertTrue(result.contains("Value decremented."));
             }
             else if (statement.startsWith("get "))
             {
@@ -273,6 +274,7 @@ public class CliTest extends CleanupHelp
                 {
                     assertTrue(result.startsWith("=> (column=") || result.startsWith("Value was not found"));
                 }
+                assertTrue(result.contains("Elapsed time:"));
             }
             else if (statement.startsWith("truncate "))
             {