summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUltrabug <ultrabug@gentoo.org>2017-05-23 12:41:36 +0200
committerUltrabug <ultrabug@gentoo.org>2017-05-23 12:41:36 +0200
commit0382f083859404fc9845e088e89d98d04f5fc48c (patch)
treee4baecfad0facddf8c9fb72143300480d745346b
parentscylla: add dpdk kernel config check and utility script (diff)
downloadultrabug-0382f083859404fc9845e088e89d98d04f5fc48c.tar.gz
ultrabug-0382f083859404fc9845e088e89d98d04f5fc48c.tar.bz2
ultrabug-0382f083859404fc9845e088e89d98d04f5fc48c.zip
app-admin/scylla-tools: new ebuild
-rw-r--r--app-admin/scylla-tools/Manifest7
-rw-r--r--app-admin/scylla-tools/files/scylla-tools-1.6.4-build.xml1900
-rw-r--r--app-admin/scylla-tools/scylla-tools-1.6.4.ebuild52
3 files changed, 1959 insertions, 0 deletions
diff --git a/app-admin/scylla-tools/Manifest b/app-admin/scylla-tools/Manifest
new file mode 100644
index 0000000..e01c569
--- /dev/null
+++ b/app-admin/scylla-tools/Manifest
@@ -0,0 +1,7 @@
+AUX scylla-tools-1.6.4-build.xml 89360 SHA256 10a6f42bd7c240db85fd0bf4024ef9b00f0fb4cfe8b3c551e9d80b12b61ff770 SHA512 323d840a6877d08445c090383a923de7cbacb5378f49720b6db1ba5b43f4e3609b6cc7bcb4525925f3d7074573d63fd08736467b0d532fa8f5bab6ce10ffee7a WHIRLPOOL 4c45fd8a736466dc1e04130a72f19f3a635fb6c9a609b28c3bc79551c2b839bfdf98e60f3911ddd5edf164a6fa0493b0064f4caf23e0f8ee4d8f4b8b9665d57a
+DIST compile-command-annotations-1.2.1.jar 17211 SHA256 4386fd7d86272549c3b5b135bb4afe1af686a8f2f0a965afe0dd9a77b59109a5 SHA512 505b2b26710ea127b4635859ad656a42aa8be1901c527910bea7521e5015b98a74cbcebfa05c4089d9a51972b823f1ac7363d93e47087c3240c377976f053531 WHIRLPOOL 7ba5e730b984acde4dab3c64d32065c2dd5c22ce2c88b2fee82a954d1e352804468a52f40a78c2c14c5a1945fb252936a378e7eacc04bfcb0b5b1b32994a7f1b
+DIST hadoop-core-0.20.2.jar 2687928 SHA256 3699d07e35cf58982d228bebaf3073ef4cf84e0f4f82dc91636118cab132e4f6 SHA512 45e70812f6570eec24de2a7e4aa991ad1fbfd5f760eda1fd3c065b1ec0a9a258ff2cf2a2829d34bca0cc1ac98f9a5209886df9845ef41db8d339009caa0e89e1 WHIRLPOOL f4838f71ca52f0a66fa8dea7ca1dde73097c510123b49dc76c252be2987678750d52a8ebd3569fe83e74829fc94cdd6d8fcafb11d725d43c0d95f8681a8794df
+DIST jsr305-3.0.2.jar 19936 SHA256 766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7 SHA512 bb09db62919a50fa5b55906013be6ca4fc7acb2e87455fac5eaf9ede2e41ce8bbafc0e5a385a561264ea4cd71bbbd3ef5a45e02d63277a201d06a0ae1636f804 WHIRLPOOL 7b37b52a77146868fc5c21739afdbfc30a88031c025ac4fbf7e2d56cdb2d96a7c6f3017846ff2b874e66a2a7fd023a6ca49f3fe2f9da37ebe35cea4f31300ef7
+DIST pig-0.8.0.jar 2236245 SHA256 703b3598df270f22b669d925b36083c83c9f4c1614043628e1b85877bc0bcee5 SHA512 f2864ffad4abe87e1db6c4f8fc74ced506c42c98eb154e9d07bf0f76a87a09e268add6f06b8d3e83cfb8e079f386918cafe7be57802410cfd6538ed31576ca4a WHIRLPOOL 4bce986da6917b6994311bfe71c4b483a6c2471e7698fb4d1a4fdd9a9c2a3fa2a82d1bc52e1a7bcb2b15b71f3939485d63772082375cdb60526246f3b75c4f74
+DIST scylla-tools-1.6.4.tar.gz 16617931 SHA256 a37ab2ff8771e2ff5b54172b77a2ef60dc3e3d5f9aadef7281b719edd48df222 SHA512 dc42b62042c797b3d4baa11afbfa88ec9d09dd9132b11c31b8c46493682d02464da70c7adf6a652790bf01d4f17c2cce64c0be5f00bcf4fecf7ca50e31f3211b WHIRLPOOL 74e3836f1630c53232d28a8d35efb8f611a99ab14b4da32108377157613975222a498fe30f2ccf24de9d4ea56744041d9615b2514d99591d6d3b7286e5d3fc17
+EBUILD scylla-tools-1.6.4.ebuild 1514 SHA256 1d343af5878c2ed6055ae571b054d130b2cffb33e2dd657e9c85ba3657c45c84 SHA512 0959011135e77b9cfbb27b98fb6e1e734e6b2108630d504917cd6c33787e5806a88dbbedbe2fd907c820230dfd4676cb9e8ad095cd071d3dc19f727bed4b9495 WHIRLPOOL 057444459948caafdba67497124605d29ec179bf57dd996ab66877419f05b81f6afe07d5b4063290fb5c9907f5d32c3d7ace5724fcb372a46715df4fc696dbb5
diff --git a/app-admin/scylla-tools/files/scylla-tools-1.6.4-build.xml b/app-admin/scylla-tools/files/scylla-tools-1.6.4-build.xml
new file mode 100644
index 0000000..fc29a6a
--- /dev/null
+++ b/app-admin/scylla-tools/files/scylla-tools-1.6.4-build.xml
@@ -0,0 +1,1900 @@
+<?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.
+ -->
+<project basedir="." default="jar" 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 -->
+ <property name="base.version" value="2.1.8"/>
+ <property name="scm.connection" value="scm:git://git.apache.org/cassandra.git"/>
+ <property name="scm.developerConnection" value="scm:git://git.apache.org/cassandra.git"/>
+ <property name="scm.url" value="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
+
+ <!-- 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="build.src.gen-java" value="${basedir}/src/gen-java"/>
+ <property name="build.lib" value="${basedir}/lib"/>
+ <property name="build.tools.lib" value="${basedir}/tools/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.methods" value=""/>
+ <property name="test.runners" value="1"/>
+ <property name="test.unit.src" value="${test.dir}/unit"/>
+ <property name="test.long.src" value="${test.dir}/long"/>
+ <property name="test.pig.src" value="${test.dir}/pig"/>
+ <property name="dist.dir" value="${build.dir}/dist"/>
+ <property name="tmp.dir" value="${java.io.tmpdir}"/>
+
+ <property name="source.version" value="1.7"/>
+ <property name="target.version" value="1.7"/>
+
+ <condition property="version" value="${base.version}">
+ <isset property="release"/>
+ </condition>
+ <property name="version" value="${base.version}"/>
+ <property name="version.properties.dir"
+ value="${build.src.resources}/org/apache/cassandra/config/" />
+ <property name="final.name" value="${ant.project.name}-${version}"/>
+ <property name="scylla-tools.name" value="scylla-tools"/>
+ <property name="final.scylla-tools.name" value="${scylla-tools.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="600000" />
+ <property name="test.burn.timeout" value="600000" />
+
+ <!-- default for cql tests. Can be override by -Dcassandra.test.use_prepared=false -->
+ <property name="cassandra.test.use_prepared" value="true" />
+
+ <!-- http://cobertura.sourceforge.net/ -->
+ <property name="cobertura.version" value="2.0.3"/>
+ <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>
+
+ <tstamp>
+ <format property="YEAR" pattern="yyyy"/>
+ </tstamp>
+
+ <!--
+ 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" />
+ <exclude name="**/*-sources.jar"/>
+ </fileset>
+ <fileset dir="${build.dir.lib}">
+ <include name="**/*.jar" />
+ <exclude name="**/*-sources.jar"/>
+ </fileset>
+ </path>
+
+ <path id="cobertura.classpath">
+ <pathelement location="${cobertura.classes.dir}"/>
+ </path>
+
+ <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>
+
+ <!--
+ 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}"/>
+ <mkdir dir="${build.dir.lib}"/>
+ </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 dir="${version.properties.dir}" />
+ </target>
+ <target depends="clean" name="cleanall"/>
+
+ <target name="realclean" depends="clean" description="Remove the entire build directory and all downloaded artifacts">
+ <delete dir="${build.dir}" />
+ </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>
+
+ <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>
+ <exec executable="antlr3.5">
+ <arg value="${build.src.java}/org/apache/cassandra/cli/Cli.g"/>
+ </exec>
+
+ </target>
+
+ <!--
+ This generates the CQL grammar files from Cql.g
+ -->
+ <target name="check-gen-cql2-grammar">
+ <uptodate property="cql2current"
+ srcfile="${build.src.java}/org/apache/cassandra/cql/Cql.g"
+ targetfile="${build.src.gen-java}/org/apache/cassandra/cql/Cql.tokens"/>
+ </target>
+ <target name="check-gen-cql3-grammar">
+ <uptodate property="cql3current"
+ srcfile="${build.src.java}/org/apache/cassandra/cql3/Cql.g"
+ targetfile="${build.src.gen-java}/org/apache/cassandra/cql3/Cql.tokens"/>
+ </target>
+
+ <target name="gen-cql2-grammar" depends="check-gen-cql2-grammar" unless="cql2current">
+ <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql/Cql.g ...</echo>
+ <exec executable="antlr3.5">
+ <arg value="${build.src.java}/org/apache/cassandra/cql/Cql.g" />
+ </exec>
+ </target>
+
+ <target name="gen-cql3-grammar" depends="check-gen-cql3-grammar" unless="cql3current">
+ <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql3/Cql.g ...</echo>
+ <exec executable="antlr3.5">
+ <arg value="${build.src.java}/org/apache/cassandra/cql3/Cql.g" />
+ </exec>
+ </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>
+ <fileset dir="${basedir}">
+ <include name="doc/cql3/*.textile"/>
+ </fileset>
+ </wikitext-to-html>
+ </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"
+ depends="init" description="Fetch Maven ANT Tasks from Maven Local Repository">
+ <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="init,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>
+ <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="init,maven-ant-tasks-download" unless="maven-ant-tasks.initialized"
+ description="Initialize Maven ANT Tasks">
+ <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}"/>
+
+ <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"
+ 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.5"/>
+ <dependency groupId="net.jpountz.lz4" artifactId="lz4" version="1.2.0"/>
+ <dependency groupId="com.ning" artifactId="compress-lzf" version="0.8.4"/>
+ <dependency groupId="com.google.guava" artifactId="guava" version="16.0"/>
+ <dependency groupId="commons-cli" artifactId="commons-cli" version="1.1"/>
+ <dependency groupId="commons-codec" artifactId="commons-codec" version="1.2"/>
+ <dependency groupId="org.apache.commons" artifactId="commons-lang3" version="3.1"/>
+ <dependency groupId="org.apache.commons" artifactId="commons-math3" version="3.2"/>
+ <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru" version="1.3"/>
+ <dependency groupId="org.antlr" artifactId="antlr" version="3.5.2">
+ <exclusion groupId="org.antlr" artifactId="stringtemplate"/>
+ </dependency>
+ <dependency groupId="org.antlr" artifactId="antlr-runtime" version="3.5.2">
+ <exclusion groupId="org.antlr" artifactId="stringtemplate"/>
+ </dependency>
+ <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.7.2"/>
+ <dependency groupId="ch.qos.logback" artifactId="logback-core" version="1.1.2"/>
+ <dependency groupId="ch.qos.logback" artifactId="logback-classic" version="1.1.2"/>
+ <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl" version="1.9.2"/>
+ <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl" version="1.9.2"/>
+ <dependency groupId="jline" artifactId="jline" version="1.0">
+ <exclusion groupId="junit" artifactId="junit"/>
+ </dependency>
+ <dependency groupId="com.googlecode.json-simple" artifactId="json-simple" version="1.1"/>
+ <dependency groupId="com.boundary" artifactId="high-scale-lib" version="1.0.6"/>
+ <dependency groupId="com.github.jbellis" artifactId="jamm" version="0.3.0"/>
+ <dependency groupId="com.thinkaurelius.thrift" artifactId="thrift-server" version="0.3.7">
+ <exclusion groupId="org.slf4j" artifactId="slf4j-log4j12"/>
+ </dependency>
+ <dependency groupId="org.yaml" artifactId="snakeyaml" version="1.11"/>
+ <dependency groupId="org.apache.thrift" artifactId="libthrift" version="0.9.2"/>
+
+ <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.10">
+ <exclusion groupId="commons-lang" artifactId="commons-lang"/>
+ </dependency>
+ <dependency groupId="org.apache.hadoop" artifactId="hadoop-core" version="1.0.3">
+ <exclusion groupId="org.mortbay.jetty" artifactId="servlet-api"/>
+ </dependency>
+ <dependency groupId="org.apache.hadoop" artifactId="hadoop-minicluster" version="1.0.3"/>
+ <dependency groupId="org.apache.pig" artifactId="pig" version="0.12.1"/>
+ <dependency groupId="net.java.dev.jna" artifactId="jna" version="4.0.0"/>
+
+ <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura" version="${cobertura.version}">
+ <exclusion groupId="xerces" artifactId="xercesImpl"/>
+ </dependency>
+
+ <dependency groupId="org.apache.cassandra" artifactId="cassandra-all" version="${version}" />
+ <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
+ <dependency groupId="com.yammer.metrics" artifactId="metrics-core" version="2.2.0" />
+ <dependency groupId="com.codahale.metrics" artifactId="metrics-core" version="3.0.2" />
+ <dependency groupId="com.addthis.metrics" artifactId="reporter-config" version="2.1.0" />
+ <dependency groupId="org.mindrot" artifactId="jbcrypt" version="0.3m" />
+ <dependency groupId="io.airlift" artifactId="airline" version="0.6" />
+ <dependency groupId="io.netty" artifactId="netty-all" version="4.0.23.Final" />
+ <dependency groupId="com.google.code.findbugs" artifactId="jsr305" version="2.0.2" />
+ <dependency groupId="com.clearspring.analytics" artifactId="stream" version="2.5.2" />
+ <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core" version="2.1.9" />
+ <dependency groupId="org.javassist" artifactId="javassist" version="3.18.2-GA" />
+ <dependency groupId="net.sf.supercsv" artifactId="super-csv" version="2.1.0" />
+ <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations" version="1.2.0" />
+ </dependencyManagement>
+ <developer id="alakshman" name="Avinash Lakshman"/>
+ <developer id="aleksey" name="Aleksey Yeschenko"/>
+ <developer id="amorton" name="Aaron Morton"/>
+ <developer id="benedict" name="Benedict Elliott Smith"/>
+ <developer id="brandonwilliams" name="Brandon Williams"/>
+ <developer id="dbrosius" name="David Brosius"/>
+ <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="jasonbrown" name="Jason Brown"/>
+ <developer id="jbellis" name="Jonathan Ellis"/>
+ <developer id="jmckenzie" name="Josh McKenzie"/>
+ <developer id="johan" name="Johan Oskarsson"/>
+ <developer id="junrao" name="Jun Rao"/>
+ <developer id="marcuse" name="Marcus Eriksson"/>
+ <developer id="mishail" name="Mikhail Stepura"/>
+ <developer id="pmalik" name="Prashant Malik"/>
+ <developer id="scode" name="Peter Schuller"/>
+ <developer id="slebresne" name="Sylvain Lebresne"/>
+ <developer id="tylerhobbs" name="Tyler Hobbs"/>
+ <developer id="vijay" name="Vijay Parthasarathy"/>
+ <developer id="xedin" name="Pavel Yaskevich"/>
+ <developer id="yukim" name="Yuki Morishita"/>
+ </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}"/>
+ <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="org.apache.hadoop" artifactId="hadoop-minicluster"/>
+ <dependency groupId="org.apache.pig" artifactId="pig"/>
+ <dependency groupId="com.google.code.findbugs" artifactId="jsr305"/>
+ <dependency groupId="org.antlr" artifactId="antlr"/>
+ <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core"/>
+ <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations"/>
+ </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}"/>
+ <!-- do NOT remove this, it breaks pig-test -->
+ <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="1.7.2"/>
+ <dependency groupId="joda-time" artifactId="joda-time" version="2.3" />
+ </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="net.jpountz.lz4" artifactId="lz4"/>
+ <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="org.apache.commons" artifactId="commons-lang3"/>
+ <dependency groupId="org.apache.commons" artifactId="commons-math3"/>
+ <dependency groupId="com.googlecode.concurrentlinkedhashmap" artifactId="concurrentlinkedhashmap-lru"/>
+ <dependency groupId="org.antlr" artifactId="antlr"/>
+ <dependency groupId="org.antlr" artifactId="antlr-runtime"/>
+ <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
+ <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.boundary" artifactId="high-scale-lib"/>
+ <dependency groupId="org.yaml" artifactId="snakeyaml"/>
+ <dependency groupId="org.mindrot" artifactId="jbcrypt"/>
+ <dependency groupId="com.yammer.metrics" artifactId="metrics-core"/>
+ <dependency groupId="com.addthis.metrics" artifactId="reporter-config"/>
+ <dependency groupId="com.thinkaurelius.thrift" artifactId="thrift-server" version="0.3.7"/>
+ <dependency groupId="com.clearspring.analytics" artifactId="stream" version="2.5.2" />
+ <dependency groupId="net.sf.supercsv" artifactId="super-csv" version="2.1.0" />
+
+ <dependency groupId="ch.qos.logback" artifactId="logback-core"/>
+ <dependency groupId="ch.qos.logback" artifactId="logback-classic"/>
+
+ <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"/>
+ <dependency groupId="org.apache.hadoop" artifactId="hadoop-minicluster" optional="true"/>
+ <dependency groupId="org.apache.pig" artifactId="pig" optional="true"/>
+ <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core" optional="true"/>
+
+ <!-- don't need jna to run, but nice to have -->
+ <dependency groupId="net.java.dev.jna" artifactId="jna" version="4.0.0"/>
+
+ <!-- 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.jbellis" artifactId="jamm"/>
+ <dependency groupId="io.netty" artifactId="netty-all"/>
+ </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="org.apache.commons" artifactId="commons-lang3"/>
+ <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"
+ 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}"/>
+ </artifact:pom>
+ </target>
+
+ <target name="maven-ant-tasks-retrieve-build" depends="maven-declare-dependencies" unless="without.maven">
+ <artifact:dependencies pomRefId="build-deps-pom"
+ filesetId="build-dependency-jars"
+ sourcesFilesetId="build-dependency-sources"
+ cacheDependencyRefs="true"
+ dependencyRefsBuildFile="${build.dir}/build-dependencies.xml">
+ <remoteRepository refid="central"/>
+ <remoteRepository refid="apache"/>
+ <remoteRepository refid="java.net2"/>
+ </artifact:dependencies>
+ <artifact:dependencies pomRefId="coverage-deps-pom"
+ pathId="cobertura.classpath">
+ <remoteRepository refid="central"/>
+ </artifact:dependencies>
+
+ <copy todir="${build.dir.lib}/jars">
+ <fileset refid="build-dependency-jars"/>
+ <mapper type="flatten"/>
+ </copy>
+ <copy todir="${build.dir.lib}/sources">
+ <fileset refid="build-dependency-sources"/>
+ <mapper type="flatten"/>
+ </copy>
+ </target>
+
+ <target name="maven-ant-tasks-retrieve-test" depends="maven-ant-tasks-init">
+ <artifact:dependencies pomRefId="test-deps-pom"
+ filesetId="test-dependency-jars"
+ sourcesFilesetId="test-dependency-sources"
+ cacheDependencyRefs="true"
+ dependencyRefsBuildFile="${build.dir}/test-dependencies.xml">
+ <remoteRepository refid="apache"/>
+ <remoteRepository refid="central"/>
+ <remoteRepository refid="oauth"/>
+ </artifact:dependencies>
+ <copy todir="${test.lib}/jars">
+ <fileset refid="test-dependency-jars"/>
+ <mapper type="flatten"/>
+ </copy>
+ <copy todir="${test.lib}/sources">
+ <fileset refid="test-dependency-sources"/>
+ <mapper type="flatten"/>
+ </copy>
+ </target>
+
+ <target name="maven-ant-tasks-retrieve-pig-test" depends="maven-ant-tasks-init">
+ <artifact:dependencies pomRefId="test-deps-pom"
+ filesetId="test-dependency-jars"
+ sourcesFilesetId="test-dependency-sources"
+ cacheDependencyRefs="true"
+ dependencyRefsBuildFile="${build.dir}/test-dependencies.xml">
+ <remoteRepository refid="apache"/>
+ <remoteRepository refid="central"/>
+ <remoteRepository refid="java.net2"/>
+ </artifact:dependencies>
+ <copy todir="${build.dir.lib}/jars">
+ <fileset refid="test-dependency-jars"/>
+ <mapper type="flatten"/>
+ </copy>
+ <copy todir="${build.dir.lib}/sources">
+ <fileset refid="test-dependency-sources"/>
+ <mapper type="flatten"/>
+ </copy>
+ </target>
+
+ <!--
+ Generate thrift code. We have targets to build java because
+ Cassandra depends on it, and python because that is what the system
+ tests run.
+ -->
+ <target name="check-gen-thrift-java">
+ <uptodate property="thriftUpToDate" srcfile="${interface.dir}/cassandra.thrift"
+ targetfile="${interface.thrift.gen-java}/org/apache/cassandra/thrift/Cassandra.java" />
+ </target>
+ <target name="gen-thrift-java" unless="thriftUpToDate" depends="check-gen-thrift-java"
+ description="Generate Thrift Java artifacts">
+ <echo>Generating Thrift Java code from ${basedir}/interface/cassandra.thrift...</echo>
+ <exec executable="thrift" dir="${basedir}/interface" failonerror="true">
+ <arg line="--gen java:hashcode" />
+ <arg line="-o ${interface.thrift.dir}" />
+ <arg line="cassandra.thrift" />
+ </exec>
+ <antcall target="write-java-license-headers" />
+ </target>
+
+ <target name="_write-java-license-headers" depends="rat-init">
+ <java classname="org.apache.rat.Report" fork="true"
+ output="${build.dir}/rat-report.log">
+ <classpath refid="rat.classpath" />
+ <arg value="-a" />
+ <arg value="--force" />
+ <arg value="interface/thrift" />
+ </java>
+ </target>
+
+ <target name="write-java-license-headers" unless="without.rat" description="Add missing java license headers">
+ <antcall target="_write-java-license-headers" />
+ </target>
+
+ <target name="gen-thrift-py" description="Generate Thrift Python artifacts">
+ <echo>Generating Thrift Python code from ${basedir}/interface/cassandra.thrift...</echo>
+ <exec executable="thrift" dir="${basedir}/interface" failonerror="true">
+ <arg line="--gen py" />
+ <arg line="-o ${interface.thrift.dir}" />
+ <arg line="cassandra.thrift" />
+ </exec>
+ <exec executable="thrift" dir="${basedir}/interface" failonerror="true">
+ <arg line="--gen py:twisted" />
+ <arg line="-o ${interface.thrift.dir}" />
+ <arg line="cassandra.thrift" />
+ </exec>
+ </target>
+
+ <!-- create properties file with C version -->
+ <target name="createVersionPropFile">
+ <taskdef name="propertyfile" classname="org.apache.tools.ant.taskdefs.optional.PropertyFile"/>
+ <mkdir dir="${version.properties.dir}"/>
+ <propertyfile file="${version.properties.dir}/version.properties">
+ <entry key="CassandraVersion" value="${version}"/>
+ </propertyfile>
+ </target>
+
+ <target name="test-run" depends="build"
+ description="Run in test mode. Not for production use!">
+ <java classname="org.apache.cassandra.service.CassandraDaemon" fork="true">
+ <classpath>
+ <path refid="cassandra.classpath"/>
+ <pathelement location="${test.conf}"/>
+ </classpath>
+ <jvmarg value="-Dstorage-config=${test.conf}"/>
+ <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
+ <jvmarg value="-ea"/>
+ </java>
+ </target>
+
+ <!--
+ The build target builds all the .class files
+ -->
+ <target name="build"
+ depends="build-project" description="Compile Cassandra classes"/>
+ <target name="codecoverage" depends="cobertura-instrument,test,cobertura-report" description="Create code coverage report"/>
+
+ <target depends="init,gen-cli-grammar,gen-cql2-grammar,gen-cql3-grammar"
+ name="build-project">
+ <echo message="${ant.project.name}: ${ant.file}"/>
+ <!-- Order matters! -->
+ <javac fork="true"
+ debug="true" debuglevel="${debuglevel}"
+ destdir="${build.classes.thrift}" includeantruntime="false" source="${source.version}" target="${target.version}"
+ memorymaximumsize="512M"
+ encoding="UTF-8">
+ <src path="${interface.thrift.dir}/gen-java"/>
+ <classpath refid="cassandra.classpath"/>
+ </javac>
+ <javac fork="true"
+ debug="true" debuglevel="${debuglevel}"
+ destdir="${build.classes.main}" includeantruntime="false" source="${source.version}" target="${target.version}"
+ memorymaximumsize="512M"
+ encoding="UTF-8">
+ <src path="${build.src.java}"/>
+ <src path="${build.src.gen-java}"/>
+ <classpath refid="cassandra.classpath"/>
+ <compilerarg value="-XDignore.symbol.file"/>
+ </javac>
+ <antcall target="createVersionPropFile"/>
+ <copy todir="${build.classes.main}">
+ <fileset dir="${build.src.resources}" />
+ </copy>
+ <copy todir="${basedir}/conf" file="${build.classes.main}/META-INF/hotspot_compiler"/>
+ </target>
+
+ <!-- Stress build file -->
+ <property name="stress.build.src" value="${basedir}/tools/stress/src" />
+ <property name="stress.build.classes" value="${build.classes}/stress" />
+ <property name="stress.manifest" value="${stress.build.classes}/MANIFEST.MF" />
+ <path id="cassandra.classes">
+ <pathelement location="${basedir}/build/classes/main" />
+ <pathelement location="${basedir}/build/classes/thrift" />
+ </path>
+ <target name="stress-build" depends="build" description="build stress tool">
+ <mkdir dir="${stress.build.classes}" />
+ <javac debug="true" debuglevel="${debuglevel}" destdir="${stress.build.classes}" includeantruntime="true" source="${source.version}" target="${target.version}" encoding="UTF-8">
+ <src path="${stress.build.src}" />
+ <classpath>
+ <path refid="cassandra.classes" />
+ <path>
+ <fileset dir="${build.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="${build.tools.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ </path>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="_write-poms" depends="maven-declare-dependencies">
+ <artifact:writepom pomRefId="parent-pom" file="${build.dir}/${final.name}-parent.pom"/>
+ <artifact:writepom pomRefId="thrift-pom"
+ file="${build.dir}/${ant.project.name}-thrift-${version}.pom"/>
+ <artifact:writepom pomRefId="all-pom" file="${build.dir}/${final.name}.pom"/>
+ <artifact:writepom pomRefId="clientutil-pom"
+ file="${build.dir}/${ant.project.name}-clientutil-${version}.pom"/>
+ </target>
+
+ <target name="write-poms" unless="without.maven">
+ <antcall target="_write-poms" />
+ </target>
+
+ <!--
+ The jar target makes cassandra.jar output.
+ -->
+ <target name="jar"
+ depends="build, stress-build"
+ description="Assemble Cassandra JAR files">
+ <mkdir dir="${build.classes.main}/META-INF" />
+ <mkdir dir="${build.classes.thrift}/META-INF" />
+ <copy file="LICENSE.txt"
+ tofile="${build.classes.main}/META-INF/LICENSE.txt"/>
+ <copy file="LICENSE.txt"
+ tofile="${build.classes.thrift}/META-INF/LICENSE.txt"/>
+ <copy file="NOTICE.txt"
+ tofile="${build.classes.main}/META-INF/NOTICE.txt"/>
+ <copy file="NOTICE.txt"
+ tofile="${build.classes.thrift}/META-INF/NOTICE.txt"/>
+
+ <!-- Thrift Jar -->
+ <jar jarfile="${build.dir}/${ant.project.name}-thrift-${version}.jar"
+ basedir="${build.classes.thrift}">
+ <fileset dir="${build.classes.main}">
+ <include name="org/apache/cassandra/thrift/ITransportFactory*.class" />
+ <include name="org/apache/cassandra/thrift/TFramedTransportFactory*.class" />
+ </fileset>
+ <manifest>
+ <attribute name="Implementation-Title" value="Cassandra"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="Apache"/>
+ </manifest>
+ </jar>
+
+ <!-- Main Jar -->
+ <jar jarfile="${build.dir}/${final.name}.jar">
+ <fileset dir="${build.classes.main}">
+ <exclude name="org/apache/cassandra/thrift/ITransportFactory*.class" />
+ <exclude name="org/apache/cassandra/thrift/TFramedTransportFactory*.class" />
+ <exclude name="com/scylladb/**"/>
+ </fileset>
+ <manifest>
+ <!-- <section name="org/apache/cassandra/infrastructure"> -->
+ <attribute name="Implementation-Title" value="Cassandra"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="Apache"/>
+ <attribute name="Premain-Class"
+ value="org.apache.cassandra.infrastructure.continuations.CAgent"/>
+ <attribute name="Class-Path"
+ value="${ant.project.name}-clientutil-${version}.jar ${ant.project.name}-thrift-${version}.jar" />
+ <!-- </section> -->
+ </manifest>
+ </jar>
+
+ <!-- Scylla tools extensions -->
+ <jar jarfile="${build.dir}/${final.scylla-tools.name}.jar">
+ <fileset dir="${build.classes.main}">
+ <include name="com/scylladb/**"/>
+ <exclude name="org/apache/**"/>
+ </fileset>
+ <manifest>
+ <attribute name="Implementation-Title" value="Scylla-Tools"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="ScyllaDB"/>
+ </manifest>
+ </jar>
+
+ <!-- Clientutil Jar -->
+ <!-- TODO: write maven pom here -->
+ <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}.jar">
+ <fileset dir="${build.classes.main}">
+ <include name="org/apache/cassandra/serializers/*" />
+ <include name="org/apache/cassandra/utils/ByteBufferUtil*.class" />
+ <include name="org/apache/cassandra/utils/Hex.class" />
+ <include name="org/apache/cassandra/utils/UUIDGen*.class" />
+ <include name="org/apache/cassandra/utils/FBUtilities*.class" />
+ <include name="org/apache/cassandra/exceptions/*.class" />
+ <include name="org/apache/cassandra/utils/CloseableIterator.class" />
+ </fileset>
+ <manifest>
+ <attribute name="Implementation-Title" value="Cassandra"/>
+ <attribute name="Implementation-Version" value="${version}"/>
+ <attribute name="Implementation-Vendor" value="Apache"/>
+ </manifest>
+ </jar>
+
+ <!-- Stress jar -->
+ <manifest file="${stress.manifest}">
+ <attribute name="Built-By" value="Pavel Yaskevich"/>
+ <attribute name="Main-Class" value="org.apache.cassandra.stress.Stress"/>
+ </manifest>
+ <mkdir dir="${stress.build.classes}/META-INF" />
+ <mkdir dir="${build.dir}/tools/lib/" />
+ <jar destfile="${build.dir}/tools/lib/stress.jar" manifest="${stress.manifest}">
+ <fileset dir="${stress.build.classes}"/>
+ </jar>
+ </target>
+
+ <!--
+ The javadoc-jar target makes cassandra-javadoc.jar output required for publishing to Maven central repository.
+ -->
+ <target name="javadoc-jar" description="Assemble Cassandra JavaDoc JAR file">
+ <mkdir dir="${javadoc.jars.dir}"/>
+ <create-javadoc destdir="${javadoc.jars.dir}/thrift">
+ <filesets>
+ <fileset dir="${interface.thrift.dir}/gen-java" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ </filesets>
+ </create-javadoc>
+ <jar jarfile="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar"
+ basedir="${javadoc.jars.dir}/thrift"/>
+
+ <create-javadoc destdir="${javadoc.jars.dir}/main">
+ <filesets>
+ <fileset dir="${build.src.java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ <fileset dir="${build.src.gen-java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ </filesets>
+ </create-javadoc>
+ <jar jarfile="${build.dir}/${final.name}-javadoc.jar"
+ basedir="${javadoc.jars.dir}/main"/>
+
+ <create-javadoc destdir="${javadoc.jars.dir}/clientutil">
+ <filesets>
+ <fileset dir="${build.src.java}" defaultexcludes="yes">
+ <include name="org/apache/cassandra/serializers/*" />
+ <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" />
+ <include name="org/apache/cassandra/utils/Hex.java" />
+ <include name="org/apache/cassandra/utils/UUIDGen*.java" />
+ </fileset>
+ </filesets>
+ </create-javadoc>
+ <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
+ basedir="${javadoc.jars.dir}/clientutil"/>
+ <!-- javadoc task always rebuilds so might as well remove the generated docs to prevent
+ being pulled into the distribution by accident -->
+ <delete quiet="true" dir="${javadoc.jars.dir}"/>
+ </target>
+
+ <!--
+ The sources-jar target makes cassandra-sources.jar output required for publishing to Maven central repository.
+ -->
+ <target name="sources-jar" depends="init" description="Assemble Cassandra Sources JAR file">
+ <jar jarfile="${build.dir}/${ant.project.name}-thrift-${version}-sources.jar">
+ <fileset dir="${interface.thrift.dir}/gen-java" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ </jar>
+ <jar jarfile="${build.dir}/${final.name}-sources.jar">
+ <fileset dir="${build.src.java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ <fileset dir="${build.src.gen-java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ </jar>
+ <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar">
+ <fileset dir="${build.src.java}" defaultexcludes="yes">
+ <include name="org/apache/cassandra/serializers/*" />
+ <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" />
+ <include name="org/apache/cassandra/utils/Hex.java" />
+ <include name="org/apache/cassandra/utils/UUIDGen*.java" />
+ </fileset>
+ </jar>
+ </target>
+
+ <!-- creates release tarballs -->
+ <target name="artifacts" depends="jar,javadoc"
+ description="Create Cassandra release artifacts">
+ <mkdir dir="${dist.dir}"/>
+ <!-- fix the control linefeed so that builds on windows works on linux -->
+ <fixcrlf srcdir="bin" includes="**/*" excludes="**/*.bat, **/*.ps1" eol="lf" eof="remove" />
+ <fixcrlf srcdir="conf" includes="**/*" excludes="**/*.bat, **/*.ps1" eol="lf" eof="remove" />
+ <fixcrlf srcdir="tools/bin" includes="**/*" excludes="**/*.bat, **/*.ps1" eol="lf" eof="remove" />
+ <copy todir="${dist.dir}/lib">
+ <fileset dir="${build.lib}"/>
+ <fileset dir="${build.dir}">
+ <include name="${final.name}.jar" />
+ <include name="${final.scylla-tools.name}.jar" />
+ <include name="${ant.project.name}-thrift-${version}.jar" />
+ <include name="${ant.project.name}-clientutil-${version}.jar" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/javadoc">
+ <fileset dir="${javadoc.dir}"/>
+ </copy>
+ <copy todir="${dist.dir}/bin">
+ <fileset dir="bin"/>
+ </copy>
+ <copy todir="${dist.dir}/conf">
+ <fileset dir="conf"/>
+ </copy>
+ <copy todir="${dist.dir}/interface">
+ <fileset dir="interface">
+ <include name="**/*.thrift" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/pylib">
+ <fileset dir="pylib">
+ <include name="**" />
+ <exclude name="**/*.pyc" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/">
+ <fileset dir="${basedir}">
+ <include name="*.txt" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/tools/bin">
+ <fileset dir="${basedir}/tools/bin"/>
+ </copy>
+ <copy todir="${dist.dir}/tools/">
+ <fileset dir="${basedir}/tools/">
+ <include name="*.yaml"/>
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/tools/lib">
+ <fileset dir="${build.dir}/tools/lib/">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${build.tools.lib}">
+ <include name="*.jar" />
+ </fileset>
+ </copy>
+ <artifact:writepom pomRefId="dist-pom"
+ file="${build.dir}/${final.name}-dist.pom"/>
+ <tar compression="gzip" longfile="gnu"
+ destfile="${build.dir}/${final.name}-bin.tar.gz">
+
+ <!-- Everything but bin/ (default mode) -->
+ <tarfileset dir="${dist.dir}" prefix="${final.name}">
+ <include name="**"/>
+ <exclude name="bin/*" />
+ </tarfileset>
+ <!-- Shell includes in bin/ (default mode) -->
+ <tarfileset dir="${dist.dir}" prefix="${final.name}">
+ <include name="bin/*.in.sh" />
+ </tarfileset>
+ <!-- Executable scripts in bin/ -->
+ <tarfileset dir="${dist.dir}" prefix="${final.name}" mode="755">
+ <include name="bin/*"/>
+ <include name="tools/bin/*"/>
+ <not>
+ <filename name="bin/*.in.sh" />
+ </not>
+ </tarfileset>
+ </tar>
+
+ <tar compression="gzip" longfile="gnu"
+ destfile="${build.dir}/${final.name}-src.tar.gz">
+
+ <tarfileset dir="${basedir}"
+ prefix="${final.name}-src">
+ <include name="**"/>
+ <exclude name="build/**" />
+ <exclude name="src/gen-java/**" />
+ <exclude name=".git/**" />
+ <exclude name="bin/*" /> <!-- handled separately below -->
+ <!-- exclude Eclipse files -->
+ <exclude name=".project" />
+ <exclude name=".classpath" />
+ <exclude name=".settings/**" />
+ <exclude name=".externalToolBuilders/**" />
+ </tarfileset>
+
+ <!-- Shell includes and batch files in bin/ -->
+ <tarfileset dir="${basedir}" prefix="${final.name}-src">
+ <include name="bin/*.in.sh" />
+ <include name="bin/*.bat" />
+ </tarfileset>
+ <!-- Everything else (assumed to be scripts), is executable -->
+ <tarfileset dir="${basedir}" prefix="${final.name}-src" mode="755">
+ <include name="bin/*"/>
+ <exclude name="bin/*.in.sh" />
+ <exclude name="bin/*.bat" />
+ </tarfileset>
+ </tar>
+ </target>
+
+ <target name="release" depends="artifacts,rat-init"
+ description="Create and QC release artifacts">
+ <checksum forceOverwrite="yes" todir="${build.dir}" fileext=".md5"
+ algorithm="MD5">
+ <fileset dir="${build.dir}">
+ <include name="*.tar.gz" />
+ </fileset>
+ </checksum>
+ <checksum forceOverwrite="yes" todir="${build.dir}" fileext=".sha"
+ algorithm="SHA">
+ <fileset dir="${build.dir}">
+ <include name="*.tar.gz" />
+ </fileset>
+ </checksum>
+
+ <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+ reportFile="${build.dir}/${final.name}-bin.rat.txt">
+ <tarfileset>
+ <gzipresource>
+ <file file="${build.dir}/${final.name}-bin.tar.gz" />
+ </gzipresource>
+ </tarfileset>
+ </rat:report>
+
+ <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+ reportFile="${build.dir}/${final.name}-src.rat.txt">
+ <tarfileset>
+ <gzipresource>
+ <file file="${build.dir}/${final.name}-src.tar.gz" />
+ </gzipresource>
+ </tarfileset>
+ </rat:report>
+ </target>
+
+ <target name="build-test" depends="build" description="Compile test classes">
+ <javac
+ debug="true"
+ debuglevel="${debuglevel}"
+ destdir="${test.classes}"
+ includeantruntime="false"
+ source="${source.version}"
+ target="${target.version}"
+ encoding="UTF-8">
+ <classpath>
+ <path refid="cassandra.classpath"/>
+ </classpath>
+ <src path="${test.unit.src}"/>
+ <src path="${test.long.src}"/>
+ <src path="${test.pig.src}"/>
+ </javac>
+
+ <!-- Non-java resources needed by the test suite -->
+ <copy todir="${test.classes}">
+ <fileset dir="${test.resources}"/>
+ </copy>
+ </target>
+
+ <macrodef name="testmacro">
+ <attribute name="suitename" />
+ <attribute name="inputdir" />
+ <attribute name="timeout" default="${test.timeout}" />
+ <attribute name="forkmode" default="perTest"/>
+ <element name="optjvmargs" implicit="true" optional="true" />
+ <attribute name="filter" default="**/${test.name}.java"/>
+ <attribute name="exclude" default="" />
+ <attribute name="filelist" default="" />
+ <attribute name="poffset" default="0"/>
+ <sequential>
+ <echo message="running @{suitename} tests"/>
+ <mkdir dir="${build.test.dir}/cassandra"/>
+ <mkdir dir="${build.test.dir}/output"/>
+ <junit fork="on" forkmode="@{forkmode}" failureproperty="testfailed" maxmemory="1024m" timeout="@{timeout}">
+ <sysproperty key="net.sourceforge.cobertura.datafile" file="${cobertura.datafile}"/>
+ <formatter type="xml" usefile="true"/>
+ <formatter type="brief" usefile="false"/>
+ <jvmarg value="-Dstorage-config=${test.conf}"/>
+ <jvmarg value="-Djava.awt.headless=true"/>
+ <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
+ <jvmarg value="-ea"/>
+ <jvmarg value="-Dcassandra.debugrefcount=true"/>
+ <jvmarg value="-Xss256k"/>
+ <jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
+ <jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
+ <jvmarg value="-Dcassandra.jmx.local.port=7199" />
+ <jvmarg value="-Dcassandra.test.offsetseed=@{poffset}"/>
+ <optjvmargs/>
+ <classpath>
+ <path refid="cassandra.classpath" />
+ <pathelement location="${test.classes}"/>
+ <path refid="cobertura.classpath"/>
+ <pathelement location="${test.conf}"/>
+ <fileset dir="${test.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ </classpath>
+ <batchtest todir="${build.test.dir}/output">
+ <fileset dir="@{inputdir}" includes="@{filter}" excludes="@{exclude}"/>
+ <filelist dir="@{inputdir}" files="@{filelist}"/>
+ </batchtest>
+ </junit>
+ <junitreport todir="${build.test.dir}">
+ <fileset dir="${build.test.dir}/output">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report format="frames" todir="${build.test.dir}/junitreport"/>
+ </junitreport>
+ <fail message="Some @{suitename} test(s) failed.">
+ <condition>
+ <and>
+ <isset property="testfailed"/>
+ <not>
+ <isset property="ant.test.failure.ignore"/>
+ </not>
+ </and>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <!--
+ This test target is a bit different. It's purpose is to exercise the
+ clientutil jar in order to expose any new dependencies. For that
+ reason we use the classes from the jar, and a carefully constructed
+ classpath which only contains what we expect users to need.
+ -->
+ <target name="test-clientutil-jar" depends="build-test,jar" description="Test clientutil jar">
+ <junit>
+ <test name="org.apache.cassandra.serializers.ClientUtilsTest" />
+ <formatter type="brief" usefile="false" />
+ <classpath>
+ <pathelement location="${test.classes}" />
+ <pathelement location="${build.dir}/${ant.project.name}-clientutil-${version}.jar" />
+ <pathelement location="${build.dir}/${ant.project.name}-thrift-${version}.jar" />
+ <pathelement location="${build.lib}/libthrift-0.9.0.jar" />
+ <pathelement location="${build.lib}/slf4j-api-1.7.2.jar" />
+ <pathelement location="${build.lib}/logback-core-1.1.2.jar" />
+ <pathelement location="${build.lib}/logback-classic-1.1.2.jar" />
+ <pathelement location="${build.lib}/jackson-core-asl-1.9.2.jar" />
+ <pathelement location="${build.lib}/jackson-mapper-asl-1.9.2.jar" />
+ <fileset dir="${build.dir.lib}">
+ <include name="**/junit*.jar" />
+ </fileset>
+ </classpath>
+ </junit>
+ </target>
+
+ <target name="testold" depends="build-test" description="Execute unit tests">
+ <testmacro suitename="unit" inputdir="${test.unit.src}" exclude="**/pig/*.java" timeout="${test.timeout}">
+ <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
+ <jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
+ <jvmarg value="-Dmigration-sstable-root=${test.data}/migration-sstables"/>
+ <jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
+ <jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
+ <jvmarg value="-Djava.io.tmpdir=${tmp.dir}"/>
+ </testmacro>
+ <fileset dir="${test.unit.src}">
+ <exclude name="**/pig/*.java" />
+ </fileset>
+ </target>
+
+ <target name="testlist">
+ <testmacro suitename="${testlist.name}" inputdir="${test.unit.src}" filelist="${test.file.list}" poffset="${testlist.offset}" exclude="**/*.java" timeout="${test.timeout}">
+ <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
+ <jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
+ <jvmarg value="-Dmigration-sstable-root=${test.data}/migration-sstables"/>
+ <jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
+ <jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
+ <jvmarg value="-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader"/>
+ </testmacro>
+ </target>
+
+ <!-- Use this with an FQDN for test class, and a csv list of methods like this:
+ ant testsome -Dtest.name=org.apache.cassandra.service.StorageServiceServerTest -Dtest.methods=testRegularMode,testGetAllRangesEmpty
+ -->
+ <target name="testsome" depends="build-test" description="Execute specific unit tests" >
+ <testmacro suitename="unit" inputdir="${test.unit.src}" exclude="**/pig/*.java" timeout="${test.timeout}">
+ <test name="${test.name}" methods="${test.methods}"/>
+ <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
+ <jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
+ <jvmarg value="-Dmigration-sstable-root=${test.data}/migration-sstables"/>
+ <jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
+ <jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
+ </testmacro>
+ </target>
+
+ <target name="test-compression" depends="build-test" description="Execute unit tests with sstable compression enabled">
+ <testmacro suitename="unit" inputdir="${test.unit.src}" exclude="**/pig/*.java" timeout="${test.timeout}">
+ <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
+ <jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
+ <jvmarg value="-Dmigration-sstable-root=${test.data}/migration-sstables"/>
+ <jvmarg value="-Dcassandra.test.compression=true"/>
+ <jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
+ <jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
+ </testmacro>
+ <fileset dir="${test.unit.src}">
+ <exclude name="**/pig/*.java" />
+ </fileset>
+ </target>
+
+ <target name="msg-ser-gen-test" depends="build-test" description="Generates message serializations">
+ <testmacro suitename="unit" inputdir="${test.unit.src}"
+ timeout="${test.timeout}" filter="**/SerializationsTest.java">
+ <jvmarg value="-Dcassandra.test-serialization-writes=True"/>
+ </testmacro>
+ </target>
+
+ <target name="msg-ser-test" depends="build-test" description="Tests message serializations">
+ <testmacro suitename="unit" inputdir="${test.unit.src}" timeout="${test.timeout}"
+ filter="**/SerializationsTest.java"/>
+ </target>
+
+ <target name="msg-ser-test-7" depends="build-test" description="Generates message serializations">
+ <testmacro suitename="unit" inputdir="${test.unit.src}"
+ timeout="${test.timeout}" filter="**/SerializationsTest.java">
+ <jvmarg value="-Dcassandra.version=0.7"/>
+ </testmacro>
+ </target>
+
+ <target name="msg-ser-test-10" depends="build-test" description="Tests message serializations on 1.0 messages">
+ <testmacro suitename="unit" inputdir="${test.unit.src}"
+ timeout="${test.timeout}" filter="**/SerializationsTest.java">
+ <jvmarg value="-Dcassandra.version=1.0"/>
+ </testmacro>
+ </target>
+
+ <target name="test-burn" depends="build-test" description="Execute functional tests">
+ <testmacro suitename="burn" inputdir="${test.burn.src}"
+ timeout="${test.burn.timeout}">
+ </testmacro>
+ </target>
+
+ <target name="long-test" depends="build-test" description="Execute functional tests">
+ <testmacro suitename="long" inputdir="${test.long.src}"
+ timeout="${test.long.timeout}">
+ <jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
+ <jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
+ </testmacro>
+ </target>
+
+ <target name="cql-test" depends="build-test" description="Execute CQL tests">
+ <sequential>
+ <echo message="running CQL tests"/>
+ <mkdir dir="${build.test.dir}/cassandra"/>
+ <mkdir dir="${build.test.dir}/output"/>
+ <junit fork="on" forkmode="once" failureproperty="testfailed" maxmemory="1024m" timeout="${test.timeout}">
+ <formatter type="brief" usefile="false"/>
+ <jvmarg value="-Dstorage-config=${test.conf}"/>
+ <jvmarg value="-Djava.awt.headless=true"/>
+ <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
+ <jvmarg value="-ea"/>
+ <jvmarg value="-Xss256k"/>
+ <jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
+ <jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
+ <classpath>
+ <path refid="cassandra.classpath" />
+ <pathelement location="${test.classes}"/>
+ <path refid="cobertura.classpath"/>
+ <pathelement location="${test.conf}"/>
+ <fileset dir="${test.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ </classpath>
+ <batchtest todir="${build.test.dir}/output">
+ <fileset dir="${test.unit.src}" includes="**/cql3/*Test.java">
+ <contains text="CQLTester" casesensitive="yes"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ <fail message="Some CQL test(s) failed.">
+ <condition>
+ <and>
+ <isset property="testfailed"/>
+ <not>
+ <isset property="ant.test.failure.ignore"/>
+ </not>
+ </and>
+ </condition>
+ </fail>
+ </sequential>
+ </target>
+
+ <target name="cql-test-some" depends="build-test" description="Execute specific CQL tests" >
+ <sequential>
+ <echo message="running ${test.methods} tests from ${test.name}"/>
+ <mkdir dir="${build.test.dir}/cassandra"/>
+ <mkdir dir="${build.test.dir}/output"/>
+ <junit fork="on" forkmode="once" failureproperty="testfailed" maxmemory="1024m" timeout="${test.timeout}">
+ <sysproperty key="net.sourceforge.cobertura.datafile" file="${cobertura.datafile}"/>
+ <formatter type="brief" usefile="false"/>
+ <jvmarg value="-Dstorage-config=${test.conf}"/>
+ <jvmarg value="-Djava.awt.headless=true"/>
+ <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
+ <jvmarg value="-ea"/>
+ <jvmarg value="-Xss256k"/>
+ <jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
+ <jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
+ <classpath>
+ <path refid="cassandra.classpath" />
+ <pathelement location="${test.classes}"/>
+ <path refid="cobertura.classpath"/>
+ <pathelement location="${test.conf}"/>
+ <fileset dir="${test.lib}">
+ <include name="**/*.jar" />
+ </fileset>
+ </classpath>
+ <test name="org.apache.cassandra.cql3.${test.name}" methods="${test.methods}" todir="${build.test.dir}/output"/>
+ </junit>
+ </sequential>
+ </target>
+
+ <target name="pig-test" depends="build-test,maven-ant-tasks-retrieve-pig-test" description="Excute Pig tests">
+ <testmacro suitename="pig" inputdir="${test.pig.src}"
+ timeout="1200000">
+ </testmacro>
+ </target>
+
+ <target name="test-all"
+ depends="test,long-test,test-compression,pig-test,test-clientutil-jar"
+ description="Run all tests" />
+
+ <!-- instruments the classes to later create code coverage reports -->
+ <target name="cobertura-instrument" depends="build,build-test">
+ <taskdef resource="tasks.properties">
+ <classpath refid="cobertura.classpath"/>
+ <classpath refid="cassandra.classpath"/>
+ </taskdef>
+
+ <delete file="${cobertura.datafile}"/>
+
+ <cobertura-instrument todir="${cobertura.classes.dir}" datafile="${cobertura.datafile}">
+ <ignore regex="ch.qos.logback.*"/>
+
+ <fileset dir="${build.classes.main}">
+ <include name="**/*.class"/>
+ <exclude name="**/*Test.class"/>
+ <exclude name="**/*TestCase.class"/>
+ <exclude name="**/test/*.class"/>
+ <!-- cobertura modifies the serialVersionUID of classes. Some of our unit tests rely on backward
+ wire compatability of these classes. It was easier to exlude them from instrumentation than to
+ force their serialVersionUIDs. -->
+ <exclude name="**/*Token.class"/>
+ <exclude name="${cobertura.excludes}"/>
+ </fileset>
+
+ </cobertura-instrument>
+ </target>
+
+ <!-- create both html and xml code coverage reports -->
+ <target name="cobertura-report">
+ <cobertura-report format="html" destdir="${cobertura.report.dir}" srcdir="${build.src.java}"
+ datafile="${cobertura.datafile}"/>
+ <cobertura-report format="xml" destdir="${cobertura.report.dir}" srcdir="${build.src.java}"
+ datafile="${cobertura.datafile}"/>
+ </target>
+
+ <!--
+ License audit tool
+ -->
+ <target name="rat-init" depends="maven-ant-tasks-init">
+ <artifact:dependencies pathId="rat.classpath">
+ <dependency groupId="org.apache.rat" artifactId="apache-rat-tasks" version="0.6" />
+ </artifact:dependencies>
+ <typedef uri="antlib:org.apache.rat.anttasks" classpathref="rat.classpath"/>
+ </target>
+
+ <target name="rat-check" depends="rat-init">
+ <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
+ reportFile="${build.dir}/rat-report.log">
+ <fileset dir="." excludesfile=".rat-excludes" />
+ </rat:report>
+ <condition property="rat.passed">
+ <isfileselected file="${build.dir}/rat-report.log">
+ <containsregexp expression="^0 Unknown Licenses"/>
+ </isfileselected>
+ </condition>
+ <fail unless="rat.passed">Unknown licenses: See build/rat-report.log.</fail>
+ </target>
+
+ <target name="rat-write" depends="rat-init">
+ <echo>RAT: invoking addLicense to write missing headers</echo>
+ <java classname="org.apache.rat.Report" fork="true"
+ output="${build.dir}/rat-report.log">
+ <classpath refid="rat.classpath" />
+ <arg value="-a" />
+ <arg value="--force" />
+ <arg value="." />
+ </java>
+ </target>
+
+ <target name="javadoc" depends="init" description="Create javadoc">
+ <create-javadoc destdir="${javadoc.dir}">
+ <filesets>
+ <fileset dir="${build.src.java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ <fileset dir="${interface.thrift.gen-java}" defaultexcludes="yes">
+ <include name="org/apache/**/*.java"/>
+ </fileset>
+ </filesets>
+ </create-javadoc>
+ </target>
+
+ <!-- Split test classes into n buckets and run across processes -->
+ <target name="test" depends="build-test" description="Parallel Test Runner">
+ <path id="all-test-classes-path">
+ <fileset dir="${test.unit.src}" excludes="**/pig/*.java" includes="**/${test.name}.java" />
+ </path>
+ <property name="all-test-classes" refid="all-test-classes-path"/>
+ <script language="javascript"> <![CDATA[
+ var Integer = java.lang.Integer;
+ sep = project.getProperty("path.separator");
+ all = project.getProperty("all-test-classes").split(sep);
+ dir = project.getProperty("test.unit.src");
+
+ numRunners = parseInt(project.getProperty("test.runners"));
+
+ buckets = new Array(numRunners);
+ for (i = 0; i < all.length; i++) {
+ bucketNum = i % numRunners;
+ if (buckets[bucketNum] == undefined)
+ buckets[bucketNum] = "";
+ else
+ buckets[bucketNum] += ",";
+
+ buckets[bucketNum] += all[i];
+ }
+
+
+ var p = project.createTask('parallel');
+ p.setThreadCount(numRunners);
+
+ for (i = 0; i < buckets.length; i++) {
+
+ if (buckets[i] == undefined) continue;
+
+ task = project.createTask( 'antcall' );
+
+ task.setTarget("testlist");
+ param = task.createParam();
+ param.setName("test.file.list");
+ param.setValue("" + buckets[i]);
+
+ param = task.createParam();
+ param.setName("testlist.name");
+ param.setValue("test bucket "+i);
+
+ param = task.createParam();
+ param.setName("testlist.offset");
+ param.setValue("" + i);
+
+ p.addTask(task);
+ }
+
+ p.perform();
+
+]]> </script>
+ </target>
+
+ <pathconvert property="eclipse.project.name">
+ <path path="${basedir}" />
+ <regexpmapper from="^.*/([^/]+)$$" to="\1" handledirsep="yes" />
+ </pathconvert>
+
+ <!-- Generate IDEA project description files -->
+ <target name="generate-idea-files" depends="build-test" description="Generate IDEA files">
+ <echo file="${eclipse.project.name}.iml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/.idea/out/main" />
+ <output-test url="file://$MODULE_DIR$/.idea/out/test" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/gen-java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/interface/thrift/gen-java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/tools/stress/src" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/test/unit" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/test/long" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/test/pig" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/test/microbench" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/test/resources" type="java-test-resource" />
+ <excludeFolder url="file://$MODULE_DIR$/.idea" />
+ <excludeFolder url="file://$MODULE_DIR$/.settings" />
+ <excludeFolder url="file://$MODULE_DIR$/build" />
+ <excludeFolder url="file://$MODULE_DIR$/data"/>
+ <excludeFolder url="file://$MODULE_DIR$/logs"/>
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />]]>
+ </echo>
+
+ <path id="idea-project-libs-path">
+ <fileset dir="lib">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="build/lib/jars">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="tools/lib">
+ <include name="**/*.jar" />
+ </fileset>
+ </path>
+ <mkdir dir=".idea"/>
+ <mkdir dir=".idea/libraries"/>
+ <copy todir=".idea">
+ <fileset dir="ide/idea"/>
+ </copy>
+ <property name="idea-project-libs" refid="idea-project-libs-path"/>
+ <script language="javascript" classpathref="cassandra.classpath"> <![CDATA[
+ var File = java.io.File;
+ var FilenameUtils = Packages.org.apache.commons.io.FilenameUtils;
+ var basedir = project.getProperty("basedir");
+ jars = project.getProperty("idea-project-libs").split(project.getProperty("path.separator"));
+
+ cp = "\n";
+ for (i=0; i< jars.length; i++) {
+ basename = FilenameUtils.getBaseName(jars[i]);
+ srcjar = basename + '-sources.jar';
+ srcdir = FilenameUtils.concat(project.getProperty("build.dir.lib"), 'sources');
+ srcfile = new File(FilenameUtils.concat(srcdir, srcjar));
+
+ cp += ' <orderEntry type="library" name="' + basename + '" level="project" />\n';
+
+ lib = '';
+ lib += '<component name="libraryTable">\n';
+ lib += ' <library name="' + basename + '">\n';
+ lib += ' <CLASSES>\n';
+ lib += ' <root url="jar://' + jars[i].replace(basedir,"$PROJECT_DIR$") + '!/" />\n';
+ lib += ' </CLASSES>\n';
+ lib += ' <JAVADOC />\n';
+ if (srcfile.exists()) {
+ lib += ' <SOURCES>\n';
+ lib += ' <root url="jar://' + srcfile.getAbsolutePath().replace(basedir,"$PROJECT_DIR$") + '!/" />\n';
+ lib += ' </SOURCES>\n';
+ } else {
+ lib += ' <SOURCES />\n';
+ }
+ lib += ' </library>\n';
+ lib += '</component>';
+
+ echo = project.createTask("echo");
+ echo.setMessage(lib);
+ echo.setFile(new File(".idea/libraries/" + basename.replace('-','_').replace('.','_') + ".xml"));
+ echo.setAppend(false);
+ echo.perform();
+ }
+
+ echo = project.createTask("echo");
+ echo.setMessage(cp);
+ echo.setFile(new File(project.getProperty("eclipse.project.name") + ".iml"));
+ echo.setAppend(true);
+ echo.perform();
+ ]]> </script>
+ <echo file="${eclipse.project.name}.iml" append="true"><![CDATA[
+ </component>
+</module>]]>
+ </echo>
+ <echo file=".idea/.name">Apache Cassandra ${eclipse.project.name}</echo>
+ <echo file=".idea/modules.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/]]>${eclipse.project.name}<![CDATA[.iml" filepath="$PROJECT_DIR$/]]>${eclipse.project.name}<![CDATA[.iml" />
+ </modules>
+ </component>
+</project>]]></echo>
+ <echo file=".idea/misc.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK" />
+</project>]]></echo>
+ <echo file=".idea/vcs.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
+</project>]]></echo>
+ <echo file=".idea/workspace.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="RunManager" selected="Application.Cassandra">
+ <configuration default="true" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="" />
+ <option name="VM_PARAMETERS" value="-Dcassandra.config=file://$PROJECT_DIR$/conf/cassandra.yaml -Dcassandra.storagedir=$PROJECT_DIR$/data -Dlogback.configurationFile=file://$PROJECT_DIR$/conf/logback.xml -Dcassandra.logdir=$PROJECT_DIR$/data/logs -ea" />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" value="" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method>
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-cql3-grammar" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-thrift-java" />
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="JUnit" factoryName="JUnit">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" value="" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" value="-Dcassandra.config=file://$PROJECT_DIR$/test/conf/cassandra.yaml -Dlogback.configurationFile=file://$PROJECT_DIR$/test/conf/logback-test.xml -Dcassandra.logdir=$PROJECT_DIR$/build/test/logs -ea" />
+ <option name="PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <envs />
+ <patterns />
+ <method>
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-cql3-grammar" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-thrift-java" />
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="false" name="Cassandra" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="org.apache.cassandra.service.CassandraDaemon" />
+ <option name="VM_PARAMETERS" value="-Dcassandra-foreground=yes -Dcassandra.config=file://$PROJECT_DIR$/conf/cassandra.yaml -Dcassandra.storagedir=$PROJECT_DIR$/data -Dlogback.configurationFile=file://$PROJECT_DIR$/conf/logback.xml -Dcassandra.logdir=$PROJECT_DIR$/data/logs -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -ea -Xmx1G" />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" value="" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="]]>${eclipse.project.name}<![CDATA[" />
+ <envs />
+ <RunnerSettings RunnerId="Debug">
+ <option name="DEBUG_PORT" value="" />
+ <option name="TRANSPORT" value="0" />
+ <option name="LOCAL" value="true" />
+ </RunnerSettings>
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Debug" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method>
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-cql3-grammar" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/build.xml" target="gen-thrift-java" />
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ </component>
+ <component name="antWorkspaceConfiguration">
+ <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+ <option name="FILTER_TARGETS" value="false" />
+ <buildFile url="file://$PROJECT_DIR$/build.xml">
+ <expanded value="true" />
+ </buildFile>
+ </component>
+</project>
+ ]]>
+ </echo>
+ </target>
+
+ <!-- Generate Eclipse project description files -->
+ <target name="generate-eclipse-files" depends="build-test" description="Generate eclipse files">
+ <echo file=".project"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>${eclipse.project.name}</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>]]>
+ </echo>
+ <echo file=".classpath"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="src" path="src/resources"/>
+ <classpathentry kind="src" path="src/gen-java"/>
+ <classpathentry kind="src" output="build/test/classes" path="test/unit"/>
+ <classpathentry kind="src" output="build/test/classes" path="test/long"/>
+ <classpathentry kind="src" output="build/test/classes" path="test/pig"/>
+ <classpathentry kind="src" output="build/test/classes" path="test/resources" />
+ <classpathentry kind="src" path="tools/stress/src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="build/classes/main"/>
+ <classpathentry kind="lib" path="build/classes/thrift" sourcepath="interface/thrift/gen-java/"/>
+ <classpathentry kind="lib" path="test/conf"/>
+]]>
+ </echo>
+ <path id="eclipse-project-libs-path">
+ <fileset dir="lib">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="build/lib/jars">
+ <include name="**/*.jar" />
+ </fileset>
+ <fileset dir="tools/lib">
+ <include name="**/*.jar" />
+ </fileset>
+ </path>
+ <property name="eclipse-project-libs" refid="eclipse-project-libs-path"/>
+ <script language="javascript" classpathref="cassandra.classpath"> <![CDATA[
+ var File = java.io.File;
+ var FilenameUtils = Packages.org.apache.commons.io.FilenameUtils;
+ jars = project.getProperty("eclipse-project-libs").split(project.getProperty("path.separator"));
+
+ cp = "";
+ for (i=0; i< jars.length; i++) {
+ srcjar = FilenameUtils.getBaseName(jars[i]) + '-sources.jar';
+ srcdir = FilenameUtils.concat(project.getProperty("build.dir.lib"), 'sources');
+ srcfile = new File(FilenameUtils.concat(srcdir, srcjar));
+
+ cp += ' <classpathentry kind="lib" path="' + jars[i] + '"';
+ if (srcfile.exists()) {
+ cp += ' sourcepath="' + srcfile.getAbsolutePath() + '"';
+ }
+ cp += '/>\n';
+ }
+
+ cp += '</classpath>';
+
+ echo = project.createTask("echo");
+ echo.setMessage(cp);
+ echo.setFile(new File(".classpath"));
+ echo.setAppend(true);
+ echo.perform();
+ ]]> </script>
+ <mkdir dir=".settings" />
+ </target>
+
+ <pathconvert property="eclipse.project.name">
+ <path path="${basedir}" />
+ <regexpmapper from="^.*/([^/]+)$$" to="\1" handledirsep="yes" />
+ </pathconvert>
+
+ <!-- Clean Eclipse project description files -->
+ <target name="clean-eclipse-files">
+ <delete file=".project" />
+ <delete file=".classpath" />
+ <delete dir=".settings" />
+ <delete dir=".externalToolBuilders" />
+ <delete dir="build/eclipse-classes" />
+ </target>
+
+ <!-- Publish artifacts to Maven repositories -->
+ <target name="mvn-install"
+ depends="maven-declare-dependencies,artifacts,jar,sources-jar,javadoc-jar"
+ description="Installs the artifacts in the Maven Local Repository">
+
+ <!-- the parent -->
+ <install pomFile="${build.dir}/${final.name}-parent.pom"
+ file="${build.dir}/${final.name}-parent.pom"
+ packaging="pom"/>
+
+ <!-- the distribution -->
+ <install pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-dist.pom"
+ packaging="pom"/>
+ <install pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-bin.tar.gz"
+ packaging="tar.gz"
+ classifier="bin"/>
+ <install pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-src.tar.gz"
+ packaging="tar.gz"
+ classifier="src"/>
+
+ <!-- the cassandra-thrift jar -->
+ <install pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ file="${build.dir}/${ant.project.name}-thrift-${version}.jar"/>
+ <install pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ file="${build.dir}/${ant.project.name}-thrift-${version}-sources.jar"
+ classifier="sources"/>
+ <install pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ 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"/>
+ <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+ file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar"
+ classifier="sources"/>
+ <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+ file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
+ classifier="javadoc"/>
+
+ <!-- the cassandra-all jar -->
+ <install pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}.jar"/>
+ <install pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}-sources.jar"
+ classifier="sources"/>
+ <install pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}-javadoc.jar"
+ classifier="javadoc"/>
+ </target>
+
+ <target name="publish"
+ depends="mvn-install"
+ if="release"
+ description="Publishes the artifacts to the Maven repository">
+
+ <!-- the parent -->
+ <deploy pomFile="${build.dir}/${final.name}-parent.pom"
+ file="${build.dir}/${final.name}-parent.pom"
+ packaging="pom"/>
+
+ <!-- the distribution -->
+ <deploy pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-dist.pom"
+ packaging="pom"/>
+ <deploy pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-bin.tar.gz"
+ packaging="tar.gz"
+ classifier="bin"/>
+ <deploy pomFile="${build.dir}/${final.name}-dist.pom"
+ file="${build.dir}/${final.name}-src.tar.gz"
+ packaging="tar.gz"
+ classifier="src"/>
+
+ <!-- the cassandra-thrift jar -->
+ <deploy pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ file="${build.dir}/${ant.project.name}-thrift-${version}.jar"/>
+ <deploy pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ file="${build.dir}/${ant.project.name}-thrift-${version}-sources.jar"
+ classifier="sources"/>
+ <deploy pomFile="${build.dir}/${ant.project.name}-thrift-${version}.pom"
+ 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"/>
+ <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+ file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar"
+ classifier="sources"/>
+ <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom"
+ file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar"
+ classifier="javadoc"/>
+ <!-- the cassandra-all jar -->
+ <deploy pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}.jar"/>
+ <deploy pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}-sources.jar"
+ classifier="sources"/>
+ <deploy pomFile="${build.dir}/${final.name}.pom"
+ file="${build.dir}/${final.name}-javadoc.jar"
+ classifier="javadoc"/>
+ </target>
+</project>
diff --git a/app-admin/scylla-tools/scylla-tools-1.6.4.ebuild b/app-admin/scylla-tools/scylla-tools-1.6.4.ebuild
new file mode 100644
index 0000000..87f5fa8
--- /dev/null
+++ b/app-admin/scylla-tools/scylla-tools-1.6.4.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+JAVA_PKG_IUSE="source doc"
+
+inherit java-pkg-2 java-ant-2
+
+MY_PN="${PN%%-*}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="scylla tools (Java part)"
+HOMEPAGE="https://github.com/scylladb/scylla-tools-java"
+SRC_URI="
+ https://github.com/scylladb/${PN}-java/archive/${MY_P}.tar.gz -> ${P}.tar.gz
+ https://repo1.maven.org/maven2/net/nicoulaj/compile-command-annotations/compile-command-annotations/1.2.1/compile-command-annotations-1.2.1.jar
+ https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
+ https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-core/0.20.2/hadoop-core-0.20.2.jar
+ https://repo1.maven.org/maven2/org/apache/pig/pig/0.8.0/pig-0.8.0.jar
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CDEPEND="dev-java/antlr:3.5"
+RDEPEND="
+ ${CDEPEND}
+ >=virtual/jre-1.8"
+DEPEND="
+ ${CDEPEND}
+ >=virtual/jdk-1.8"
+
+S="${WORKDIR}/${PN}-java-scylla-${PV}"
+
+EANT_BUILD_TARGET="jar"
+
+RESTRICT="test"
+
+src_prepare() {
+ default
+ find examples -type f -name \*.xml -exec rm -v {} \; || die
+ cp -v "${FILESDIR}/${P}-build.xml" "${S}/build.xml" || die
+ cp -v "${DISTDIR}"/*.jar lib || die
+}
+
+#src_install() {
+# java-pkg_newjar "build/apache-cassandra-clientutils-2.1.8.jar" "apache-cassandra-clientutils.jar"
+# java-pkg_newjar "build/apache-cassandra-thrift-2.1.8.jar" "apache-cassandra-thrift.jar"
+# java-pkg_newjar "build/apache-cassandra-2.1.8.jar" "apache-cassandra.jar"
+#}