<?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="3.7"/>
    <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.antlr" value="${basedir}/src/antlr"/>
    <property name="build.src.jdkoverride" value="${basedir}/src/jdkoverride" />
    <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.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.classlistfile" value="testlist.txt"/>
    <property name="benchmark.name" value=""/>
    <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.burn.src" value="${test.dir}/burn"/>
    <property name="test.microbench.src" value="${test.dir}/microbench"/>
    <property name="dist.dir" value="${build.dir}/dist"/>
    <property name="tmp.dir" value="${java.io.tmpdir}"/>
	
    <property name="source.version" value="1.8"/>
    <property name="target.version" value="1.8"/>
	
    <condition property="version" value="${base.version}">
      <isset property="release"/>
    </condition>
    <property name="version" value="${base.version}-SNAPSHOT"/>
    <property name="version.properties.dir"
              value="${build.src.resources}/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="240000" />
    <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" />

    <!-- skip flushing schema tables during tests -->
    <property name="cassandra.test.flush_local_schema_changes" value="false" />
    
    <!-- http://www.eclemma.org/jacoco/ -->
    <property name="jacoco.export.dir" value="${build.dir}/jacoco/" />
    <property name="jacoco.partials.dir" value="${jacoco.export.dir}/partials" />
    <property name="jacoco.partialexecfile" value="${jacoco.partials.dir}/partial.exec" />
    <property name="jacoco.finalexecfile" value="${jacoco.export.dir}/jacoco.exec" />
    <property name="jacoco.version" value="0.7.5.201505241946"/>

    <property name="byteman.version" value="3.0.3"/>

    <property name="ecj.version" value="4.4.2"/>

    <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>

    <!-- Check if all tests are being run or just one. If it's all tests don't spam the console with test output.
         If it's an individual test print the output from the test under the assumption someone is debugging the test
         and wants to know what is going on without having to context switch to the log file that is generated.
         Debug level output still needs to be retrieved from the log file.  -->
    <script language="javascript">
        if (project.getProperty("cassandra.keepBriefBrief") == null)
        {
            if (project.getProperty("test.name").equals("*Test"))
                project.setProperty("cassandra.keepBriefBrief", "true");
            else
                project.setProperty("cassandra.keepBriefBrief", "false");
        }
    </script>

    <!--
         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="${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>

  <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}"/>
        <mkdir dir="${jacoco.export.dir}"/>
        <mkdir dir="${jacoco.partials.dir}"/>
    </target>

    <target name="clean" description="Remove all locally created artifacts">
        <delete dir="${build.test.dir}" />
        <delete dir="${build.classes}" />
        <delete dir="${build.src.gen-java}" />
        <delete dir="${version.properties.dir}" />
        <delete dir="${jacoco.export.dir}" />
        <delete dir="${jacoco.partials.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 CQL grammar files from Cql.g
    -->
    <target name="check-gen-cql3-grammar">
        <uptodate property="cql3current"
                targetfile="${build.src.gen-java}/org/apache/cassandra/cql3/Cql.tokens">
            <srcfiles dir="${build.src.antlr}">
                <include name="*.g"/>
            </srcfiles>
        </uptodate>
    </target>
 
    <target name="gen-cql3-grammar" depends="check-gen-cql3-grammar" unless="cql3current">
      <echo>Building Grammar ${build.src.antlr}/Cql.g  ...</echo>
      <java classname="org.antlr.Tool"
            classpath="${build.dir.lib}/jars/antlr-3.5.2.jar;${build.lib}/antlr-runtime-3.5.2.jar;${build.lib}/ST4-4.0.8.jar"
            fork="true"
            failonerror="true">
         <jvmarg value="-Xmx512M" />
         <arg value="-Xconversiontimeout" />
         <arg value="10000" />
         <arg value="${build.src.antlr}/Cql.g" />
         <arg value="-fo" />
         <arg value="${build.src.gen-java}/org/apache/cassandra/cql3/" />
         <arg value="-Xmaxinlinedfastates"/>
         <arg value="10"/> <!-- default is 60 -->
      </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/cql3/*.textile"/>
            </fileset>
        </wikitext-to-html>
    </target>

    <!--
        Generates Java sources for tokenization support from jflex
        grammar files
    -->
    <target name="generate-jflex-java" description="Generate Java from jflex grammar">
        <taskdef classname="jflex.anttask.JFlexTask" classpath="${build.lib}/jflex-1.6.0.jar" name="jflex" />
        <jflex file="${build.src.java}/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex" destdir="${build.src.gen-java}/" />
    </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" />
      <copy file="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
            tofile="${maven-ant-tasks.local}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"/>
    </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.1.1.7"/>
          <dependency groupId="net.jpountz.lz4" artifactId="lz4" version="1.3.0"/>
          <dependency groupId="com.ning" artifactId="compress-lzf" version="0.8.4"/>
          <dependency groupId="com.google.guava" artifactId="guava" version="18.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.4"/>
          <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.7"/>
          <dependency groupId="org.slf4j" artifactId="log4j-over-slf4j" version="1.7.7"/>
          <dependency groupId="org.slf4j" artifactId="jcl-over-slf4j" version="1.7.7" />
          <dependency groupId="ch.qos.logback" artifactId="logback-core" version="1.1.3"/>
          <dependency groupId="ch.qos.logback" artifactId="logback-classic" version="1.1.3"/>
          <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="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">
	         <exclusion groupId="commons-logging" artifactId="commons-logging"/>
          </dependency>
          <dependency groupId="junit" artifactId="junit" version="4.6" />
          <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"/>
          	<exclusion groupId="commons-logging" artifactId="commons-logging"/>
          	<exclusion groupId="org.eclipse.jdt" artifactId="core"/>
		    <exclusion groupId="ant" artifactId="ant"/>
          </dependency>
          <dependency groupId="org.apache.hadoop" artifactId="hadoop-minicluster" version="1.0.3">
		    <exclusion groupId="asm" artifactId="asm"/> <!-- this is the outdated version 3.1 -->
          </dependency>
          <dependency groupId="net.java.dev.jna" artifactId="jna" version="4.0.0"/>

          <dependency groupId="org.jacoco" artifactId="org.jacoco.agent" version="${jacoco.version}"/>
          <dependency groupId="org.jacoco" artifactId="org.jacoco.ant" version="${jacoco.version}"/>

          <dependency groupId="org.jboss.byteman" artifactId="byteman" version="${byteman.version}"/>
          <dependency groupId="org.jboss.byteman" artifactId="byteman-submit" version="${byteman.version}"/>
          <dependency groupId="org.jboss.byteman" artifactId="byteman-bmunit" version="${byteman.version}"/>


          <dependency groupId="org.openjdk.jmh" artifactId="jmh-core" version="1.1.1"/>
          <dependency groupId="org.openjdk.jmh" artifactId="jmh-generator-annprocess" version="1.1.1"/>

          <dependency groupId="org.apache.cassandra" artifactId="cassandra-all" version="${version}" />
          <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
          <dependency groupId="io.dropwizard.metrics" artifactId="metrics-core" version="3.1.0" />
          <dependency groupId="com.addthis.metrics" artifactId="reporter-config3" version="3.0.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.36.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="3.0.1" classifier="shaded" />
          <dependency groupId="org.eclipse.jdt.core.compiler" artifactId="ecj" version="4.4.2" />
          <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core" version="0.4.3" />
          <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core-j8" version="0.4.3" />
          <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations" version="1.2.0" />
          <dependency groupId="org.fusesource" artifactId="sigar" version="1.6.4">
          	<exclusion groupId="log4j" artifactId="log4j"/>
          </dependency>
          <dependency groupId="joda-time" artifactId="joda-time" version="2.4" />
          <dependency groupId="com.carrotsearch" artifactId="hppc" version="0.5.4" />
          <dependency groupId="de.jflex" artifactId="jflex" version="1.6.0" />
          <dependency groupId="net.mintern" artifactId="primitive" version="1.0" />
          <dependency groupId="com.github.rholder" artifactId="snowball-stemmer" version="1.3.0.581.1" />
          <dependency groupId="com.googlecode.concurrent-trees" artifactId="concurrent-trees" version="2.4.0" />
	  <dependency groupId="com.github.ben-manes.caffeine" artifactId="caffeine" version="2.2.6" />
        </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="benjamin" name="Benjamin Lerer"/>
        <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="rstupp" name="Robert Stupp"/>
        <developer id="scode" name="Peter Schuller"/>
        <developer id="beobal" name="Sam Tunnicliffe"/>
        <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="org.apache.rat" artifactId="apache-rat"/>
        <dependency groupId="org.apache.hadoop" artifactId="hadoop-core"/>
      	<dependency groupId="org.apache.hadoop" artifactId="hadoop-minicluster"/>
      	<dependency groupId="com.google.code.findbugs" artifactId="jsr305"/>
        <dependency groupId="org.antlr" artifactId="antlr"/>
        <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core" classifier="shaded"/>
        <dependency groupId="org.eclipse.jdt.core.compiler" artifactId="ecj"/>
        <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core" version="0.4.3" />
        <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core-j8" version="0.4.3" />
        <dependency groupId="org.openjdk.jmh" artifactId="jmh-core"/>
        <dependency groupId="org.openjdk.jmh" artifactId="jmh-generator-annprocess"/>
        <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations"/>
        <dependency groupId="org.apache.ant" artifactId="ant-junit" version="1.9.4" />
      </artifact:pom>
      <!-- this build-deps-pom-sources "artifact" is the same as build-deps-pom but only with those
           artifacts that have "-source.jar" files -->
      <artifact:pom id="build-deps-pom-sources"
                    artifactId="cassandra-build-deps">
        <parent groupId="org.apache.cassandra"
                artifactId="cassandra-parent"
                version="${version}"/>
        <dependency groupId="junit" artifactId="junit"/>
        <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core" classifier="shaded"/>
        <dependency groupId="org.eclipse.jdt.core.compiler" artifactId="ecj"/>
        <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core"/>
        <dependency groupId="org.openjdk.jmh" artifactId="jmh-core"/>
        <dependency groupId="org.openjdk.jmh" artifactId="jmh-generator-annprocess"/>
        <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations"/>
        <dependency groupId="org.apache.ant" artifactId="ant-junit" version="1.9.4" />
      </artifact:pom>

      <artifact:pom id="coverage-deps-pom"
                    artifactId="cassandra-coverage-deps">
        <parent groupId="org.apache.cassandra"
                artifactId="cassandra-parent"
                version="${version}"/>
        <dependency groupId="org.jacoco" artifactId="org.jacoco.agent"/>
        <dependency groupId="org.jacoco" artifactId="org.jacoco.ant" />
        <dependency groupId="org.jboss.byteman" artifactId="byteman"/>
        <dependency groupId="org.jboss.byteman" artifactId="byteman-submit"/>
        <dependency groupId="org.jboss.byteman" artifactId="byteman-bmunit"/>
      </artifact:pom>

      <artifact:pom id="test-deps-pom"
                    artifactId="cassandra-test-deps">
        <parent groupId="org.apache.cassandra"
                artifactId="cassandra-parent"
                version="${version}"/>
        <dependency groupId="joda-time" artifactId="joda-time"/>
      </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.slf4j" artifactId="log4j-over-slf4j"/>
        <dependency groupId="org.slf4j" artifactId="jcl-over-slf4j"/>
        <dependency groupId="org.codehaus.jackson" artifactId="jackson-core-asl"/>
        <dependency groupId="org.codehaus.jackson" artifactId="jackson-mapper-asl"/>
        <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="io.dropwizard.metrics" artifactId="metrics-core"/>
        <dependency groupId="com.addthis.metrics" artifactId="reporter-config3"/>
        <dependency groupId="com.thinkaurelius.thrift" artifactId="thrift-server"/>
        <dependency groupId="com.clearspring.analytics" artifactId="stream"/>

        <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"/>

        <!-- don't need the Java Driver to run, but if you use the hadoop stuff or UDFs -->
        <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core" classifier="shaded" optional="true"/>

        <!-- don't need jna to run, but nice to have -->
        <dependency groupId="net.java.dev.jna" artifactId="jna"/>

        <!-- 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"/>
        <dependency groupId="joda-time" artifactId="joda-time"/>
        <dependency groupId="org.fusesource" artifactId="sigar"/>
        <dependency groupId="org.eclipse.jdt.core.compiler" artifactId="ecj"/>
        <dependency groupId="org.caffinitas.ohc" artifactId="ohc-core"/>
	<dependency groupId="com.github.ben-manes.caffeine" artifactId="caffeine" />
      </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.slf4j" artifactId="log4j-over-slf4j"/>
        <dependency groupId="org.slf4j" artifactId="jcl-over-slf4j"/>
        <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
        <dependency groupId="com.carrotsearch" artifactId="hppc" version="0.5.4" />
        <dependency groupId="de.jflex" artifactId="jflex" version="1.6.0" />
        <dependency groupId="net.mintern" artifactId="primitive" version="1.0" />
        <dependency groupId="com.github.rholder" artifactId="snowball-stemmer" version="1.3.0.581.1" />
        <dependency groupId="com.googlecode.concurrent-trees" artifactId="concurrent-trees" version="2.4.0" />

      </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">
      <!-- retrieve artifacts -->
      <artifact:dependencies pomRefId="build-deps-pom"
                             filesetId="build-dependency-jars"
                             cacheDependencyRefs="true"
                             dependencyRefsBuildFile="${build.dir}/build-dependencies.xml">
          <remoteRepository refid="central"/>
          <remoteRepository refid="apache"/>
          <remoteRepository refid="java.net2"/>
      </artifact:dependencies>
      <!-- retrieve -source.jar artifacts using the reference-pom with the artifacts that have these -->
      <artifact:dependencies pomRefId="build-deps-pom-sources"
                             sourcesFilesetId="build-dependency-sources"
                             cacheDependencyRefs="true"
                             dependencyRefsBuildFile="${build.dir}/build-dependencies-sources.xml">
          <remoteRepository refid="central"/>
          <remoteRepository refid="apache"/>
          <remoteRepository refid="java.net2"/>
      </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>
      <!-- code coverage tools -->
      <artifact:dependencies pomRefId="coverage-deps-pom"
                             filesetId="coverage-dependency-jars">
          <remoteRepository refid="central"/>
      </artifact:dependencies>
      <copy todir="${build.dir.lib}/jars">
          <fileset refid="coverage-dependency-jars"/>
          <mapper type="flatten"/>
      </copy>
      <!-- jacoco agent jar comes wrapped in a jar -->
      <unzip src="${build.dir.lib}/jars/org.jacoco.agent-${jacoco.version}.jar" dest="${build.dir.lib}/jars">
        <patternset>
            <include name="*.jar"/>
        </patternset>
        <mapper type="flatten"/>
      </unzip>
    </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>

    <!--
       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="maven-ant-tasks-retrieve-build,build-project" description="Compile Cassandra classes"/>
    <target name="codecoverage" depends="jacoco-run,jacoco-report" description="Create code coverage report"/>

    <target depends="init,gen-cql3-grammar,generate-cql-html,generate-jflex-java"
            name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <!-- Order matters! -->
        <javac fork="true"
               debug="true" debuglevel="${debuglevel}" encoding="utf-8"
               destdir="${build.classes.thrift}" includeantruntime="false" source="${source.version}" target="${target.version}"
               memorymaximumsize="512M">
            <src path="${interface.thrift.dir}/gen-java"/>
            <classpath refid="cassandra.classpath"/>
        </javac>
        <javac fork="true"
               debug="true" debuglevel="${debuglevel}" encoding="utf-8"
               destdir="${build.classes.main}" includeantruntime="false" source="${source.version}" target="${target.version}"
               memorymaximumsize="512M">
            <src path="${build.src.java}"/>
            <src path="${build.src.gen-java}"/>
        	<compilerarg value="-XDignore.symbol.file"/>
                <compilerarg value="-Xbootclasspath/p:${build.src.jdkoverride}"/>
            <classpath refid="cassandra.classpath"/>
        </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}" encoding="utf-8" destdir="${stress.build.classes}" includeantruntime="true" source="${source.version}" target="${target.version}">
            <src path="${stress.build.src}" />
            <classpath>
                <path refid="cassandra.classes" />
                <path>
                    <fileset dir="${build.lib}">
                        <include name="**/*.jar" />
                    </fileset>
                </path>
            </classpath>
        </javac>
        <copy todir="${stress.build.classes}">
            <fileset dir="${stress.build.src}/resources" />
        </copy>
    </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, build-test, stress-build, write-poms"
            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" />
        </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>

      <!-- 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" />
          <include name="org/apache/cassandra/io/util/*.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="${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}/doc">
        <fileset dir="doc">
          <exclude name="cql3/CQL.textile"/>
        </fileset>
      </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>
      </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="eclipse-warnings,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>
	 <compilerarg value="-XDignore.symbol.file"/>
     <src path="${test.unit.src}"/>
     <src path="${test.long.src}"/>
     <src path="${test.burn.src}"/>
     <src path="${test.microbench.src}"/>
    </javac>

    <!-- Non-java resources needed by the test suite -->
    <copy todir="${test.classes}">
      <fileset dir="${test.resources}"/>
    </copy>
  </target>

  <!-- Defines how to run a set of tests. If you change the defaults for attributes
       you should also update them in testmacro.,
       The two are split because the helper doesn't generate
       a junit report or fail on errors, since this is called in parallel to run tests
       when we choose to run tests in parallel -->
  <macrodef name="testmacrohelper">
    <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"/>
    <attribute name="testtag" default=""/>
    <attribute name="usejacoco" default="no"/>

    <sequential>
      <condition property="additionalagent"
                 value="-javaagent:${build.dir.lib}/jars/jacocoagent.jar=destfile=${jacoco.partialexecfile}"
                 else="">
        <istrue value="${usejacoco}"/>
      </condition>
      <mkdir dir="${build.test.dir}/cassandra"/>
      <mkdir dir="${build.test.dir}/output"/>
      <mkdir dir="${build.test.dir}/output/@{testtag}"/>
      <junit fork="on" forkmode="@{forkmode}" failureproperty="testfailed" maxmemory="1024m" timeout="@{timeout}">
        <formatter classname="org.apache.cassandra.CassandraXMLJUnitResultFormatter" extension=".xml" usefile="true"/>
        <formatter classname="org.apache.cassandra.CassandraBriefJUnitResultFormatter" usefile="false"/>
        <jvmarg value="-Dstorage-config=${test.conf}"/>
        <jvmarg value="-Djava.awt.headless=true"/>
        <!-- Cassandra 3.0+ needs <jvmarg line="... ${additionalagent}" /> here! (not value=) -->
        <jvmarg line="-javaagent:${basedir}/lib/jamm-0.3.0.jar ${additionalagent}" />
        <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.test.offsetseed=@{poffset}"/>
        <jvmarg value="-Dcassandra.test.sstableformatdevelopment=true"/>
        <!-- The first time SecureRandom initializes can be slow if it blocks on /dev/random -->
        <jvmarg value="-Djava.security.egd=file:/dev/urandom" />
        <jvmarg value="-Dcassandra.testtag=@{testtag}"/>
        <jvmarg value="-Dcassandra.keepBriefBrief=${cassandra.keepBriefBrief}" />
	<optjvmargs/>
        <classpath>
          <pathelement path="${java.class.path}"/>
          <path refid="cassandra.classpath" />
          <pathelement location="${test.classes}"/>
          <pathelement location="${test.conf}"/>
          <fileset dir="${test.lib}">
            <include name="**/*.jar" />
          </fileset>
        </classpath>
        <batchtest todir="${build.test.dir}/output/@{testtag}">
            <fileset dir="@{inputdir}" includes="@{filter}" excludes="@{exclude}"/>
            <filelist dir="@{inputdir}" files="@{filelist}"/>
        </batchtest>
      </junit>
      <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/commitlog:@{poffset}"/>
      <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/data:@{poffset}"/>
      <delete quiet="true" failonerror="false" dir="${build.test.dir}/cassandra/saved_caches:@{poffset}"/>
    </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 fork="on" forkmode="perTest" failureproperty="testfailed" maxmemory="1024m" timeout="${test.timeout}">
      <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.7.jar" />
        <pathelement location="${build.lib}/log4j-over-slf4j.jar" />
        <pathelement location="${build.lib}/logback-core-1.1.3.jar" />
        <pathelement location="${build.lib}/logback-classic-1.1.3.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>
      <fail message="Clientutil test(s) failed.">
          <condition>
              <and>
                  <isset property="testfailed"/>
                  <not>
                      <isset property="ant.test.failure.ignore"/>
                  </not>
              </and>
          </condition>
      </fail>
  </target>

  <target name="testold" depends="build-test" description="Execute unit tests">
    <testmacro inputdir="${test.unit.src}" timeout="${test.timeout}">
      <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
      <jvmarg value="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-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}"/>
      <jvmarg value="-Dcassandra.skip_sync=true" />
    </testmacro>
    <fileset dir="${test.unit.src}" />
  </target>
  
  <!-- Will not generate a junit report or fail on error since it is called in parallel for test-compression
       That is taken care of by testparallel -->
  <macrodef name="testlist">
    <attribute name="test.file.list"/>
    <attribute name="testlist.offset"/>
    <sequential>
      <testmacrohelper 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="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-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"/>
        <jvmarg value="-Dcassandra.skip_sync=true" />
      </testmacrohelper>
    </sequential>
  </macrodef>

  <!-- Will not generate a junit report or fail on error since it is called in parallel for test-compression
       That is taken care of by testparallel -->
  <macrodef name="testlist-compression">
    <attribute name="test.file.list" />
    <attribute name="testlist.offset" />
    <sequential>
      <property name="compressed_yaml" value="${build.test.dir}/cassandra.compressed.yaml"/>
      <testmacrohelper inputdir="${test.unit.src}" filelist="@{test.file.list}" poffset="@{testlist.offset}"
                       exclude="**/*.java" timeout="${test.timeout}" testtag="compression">
        <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
        <jvmarg value="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-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"/>
        <jvmarg value="-Dcassandra.config=file:///${compressed_yaml}"/>
        <jvmarg value="-Dcassandra.skip_sync=true" />
        <jvmarg value="-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader"/>
      </testmacrohelper>
    </sequential>
  </macrodef>

  <!--
    Run named ant task with jacoco, such as "ant jacoco-run -Dtaskname=test"
    the target run must enable the jacoco agent if usejacoco is 'yes' -->
  <target name="jacoco-run" description="run named task with jacoco instrumentation">
    <condition property="runtask" value="${taskname}" else="test">
      <isset property="taskname"/>
    </condition>
    <antcall target="${runtask}">
      <param name="usejacoco" value="yes"/>
    </antcall>
  </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 inputdir="${test.unit.src}" timeout="${test.timeout}">
      <test name="${test.name}" methods="${test.methods}"/>
      <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
      <jvmarg value="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-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.skip_sync=true" />
    </testmacro>
  </target>
    
  <target name="test-compression" depends="build-test" description="Execute unit tests with sstable compression enabled">
    <property name="compressed_yaml" value="${build.test.dir}/cassandra.compressed.yaml"/>
    <concat destfile="${compressed_yaml}">
      <fileset file="${test.conf}/cassandra.yaml"/>
      <fileset file="${test.conf}/commitlog_compression.yaml"/>
    </concat>
    <path id="all-test-classes-path">
      <fileset dir="${test.unit.src}" includes="**/${test.name}.java" />
    </path>
    <property name="all-test-classes" refid="all-test-classes-path"/>
    <testparallel testdelegate="testlist-compression" />
  </target>

  <target name="msg-ser-gen-test" depends="build-test" description="Generates message serializations">
    <testmacro 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 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 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 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 inputdir="${test.burn.src}"
               timeout="${test.burn.timeout}">
    </testmacro>
  </target>

  <target name="long-test" depends="build-test" description="Execute functional tests">
    <testmacro 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}"/>
        <jvmarg value="-Dcassandra.skip_sync=true" />
        <classpath>
          <path refid="cassandra.classpath" />
          <pathelement location="${test.classes}"/>
          <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}">
        <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"/>
        <jvmarg value="-Dcassandra.skip_sync=true" />
        <classpath>
          <path refid="cassandra.classpath" />
          <pathelement location="${test.classes}"/>
          <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="test-all" 
          depends="eclipse-warnings,test,long-test,test-compression,test-clientutil-jar" 
          description="Run all tests except for those under test-burn" />
  
  <!-- Use JaCoCo ant extension without needing externally saved lib -->
  <target name="jacoco-init" depends="maven-ant-tasks-init">
    <artifact:dependencies pathId="jacocoant.classpath">
      <dependency groupId="org.jacoco" artifactId="org.jacoco.ant" version="${jacoco.version}" />
    </artifact:dependencies>
    <typedef uri="antlib:org.jacoco.ant" classpathref="jacocoant.classpath"/>
  </target>

  <target name="jacoco-merge" depends="jacoco-init">
    <jacoco:merge destfile="${jacoco.finalexecfile}" xmlns:jacoco="antlib:org.jacoco.ant">
        <fileset dir="${jacoco.export.dir}" includes="*.exec,**/*.exec"/>
    </jacoco:merge>
  </target>

  <target name="jacoco-report" depends="jacoco-merge">
    <jacoco:report xmlns:jacoco="antlib:org.jacoco.ant">
      <executiondata>
        <file file="${jacoco.finalexecfile}" />
      </executiondata>
      <structure name="JaCoCo Cassandara Coverage Report">
        <classfiles>
          <fileset dir="${build.classes.main}">
            <include name="**/*.class"/>
          </fileset>
        </classfiles>
        <sourcefiles encoding="UTF-8">
          <dirset dir="${build.src}">
            <include name="java"/>
            <include name="gen-java"/>
          </dirset>
        </sourcefiles>
      </structure>
      <!-- to produce reports in different formats. -->
      <html destdir="${jacoco.export.dir}" />
      <csv destfile="${jacoco.export.dir}/report.csv" />
      <xml destfile="${jacoco.export.dir}/report.xml" />
    </jacoco:report>
  </target>

  <target name="jacoco-cleanup" description="Destroy JaCoCo exec data and reports">
    <delete file="${jacoco.partialexecfile}"/>
    <delete dir="${jacoco.export.dir}"/>
  </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" unless="no-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>

  <!-- Run tests not in parallel and reports errors and generates a junit report after -->
  <macrodef name="testmacro">
    <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"/>
    <attribute name="testtag" default=""/>

    <sequential>
      <testmacrohelper inputdir="@{inputdir}" timeout="@{timeout}"
                       forkmode="@{forkmode}" filter="@{filter}"
                       exclude="@{exclude}" filelist="@{filelist}" poffset="@{poffset}"
                       testtag="@{testtag}" >
          <optjvmargs/>
      </testmacrohelper>
      <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 test(s) failed.">
        <condition>
            <and>
            <isset property="testfailed"/>
            <not>
              <isset property="ant.test.failure.ignore"/>
            </not>
          </and>
        </condition>
      </fail>
    </sequential>
  </macrodef>

  <!-- Run tests in parallel and report errors after and generate a junit report -->
  <macrodef name="testparallel">
    <attribute name="testdelegate"/>
    <sequential>
      <testparallelhelper testdelegate="@{testdelegate}"/>
      <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 test(s) failed.">
        <condition>
            <and>
            <isset property="testfailed"/>
            <not>
              <isset property="ant.test.failure.ignore"/>
            </not>
          </and>
        </condition>
      </fail>
    </sequential>
  </macrodef>

  <!-- Run multiple junit tasks in parallel, but don't track errors or generate a report after
       If a test fails the testfailed property will be set. All the tests are run using te testdelegate
       macro that is specified as an attribute and they will be run concurrently in this ant process -->
  <scriptdef name="testparallelhelper" language="javascript">
    <attribute name="testdelegate"/>
    <![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"));

        var p = project.createTask('parallel');
        p.setThreadCount(numRunners);

        for (i = 0; i < all.length; i++) {

            if (all[i] == undefined) continue;

            task = project.createTask( attributes.get("testdelegate") );

            task.setDynamicAttribute( "test.file.list", "" + all[i]);

            task.setDynamicAttribute( "testlist.offset", "" + i );

            p.addTask(task);
        }

        p.perform();
    ]]>
  </scriptdef>

  <target name="test" depends="build-test" description="Parallel Test Runner">
    <path id="all-test-classes-path">
      <fileset dir="${test.unit.src}" includes="**/${test.name}.java" />
    </path>
    <property name="all-test-classes" refid="all-test-classes-path"/>
    <testparallel testdelegate="testlist"/>
  </target>

  <!-- run a list of tests as provided in -Dtest.classlistfile (or default of 'testnames.txt')
  The class list file should be one test class per line, with the path starting after test/unit
  e.g. org/apache/cassandra/hints/HintMessageTest.java -->
  <target name="testclasslist" depends="build-test" description="Parallel-run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
    <path id="all-test-classes-path">
      <fileset dir="${test.unit.src}" includesfile="${test.classlistfile}"/>
    </path>
    <property name="all-test-classes" refid="all-test-classes-path"/>
    <testparallel testdelegate="testlist"/>
  </target>

  <!-- run microbenchmarks suite -->
  <target name="microbench" depends="build-test">
      <java classname="org.openjdk.jmh.Main"
            fork="true"
            failonerror="true">
          <classpath>
              <path refid="cassandra.classpath" />
              <pathelement location="${test.classes}"/>
              <pathelement location="${test.conf}"/>
              <fileset dir="${test.lib}">
                  <include name="**/*.jar" />
              </fileset>
          </classpath>
          <arg value=".*microbench.*${benchmark.name}"/>
      </java>
  </target>

  <!-- Generate IDEA project description files -->
  <target name="generate-idea-files" depends="build-test" description="Generate IDEA files">
    <mkdir dir=".idea"/>
    <mkdir dir=".idea/libraries"/>
    <copy todir=".idea">
        <fileset dir="ide/idea"/>
    </copy>
    <copy tofile="${eclipse.project.name}.iml" file="ide/idea-iml-file.xml"/>
    <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>
  </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" path="interface/thrift/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/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"/>
  <classpathentry kind="lib" path="${java.home}/../lib/tools.jar"/>
]]>
	</echo>	  
  	<path id="eclipse-project-libs-path">
  	 <fileset dir="lib">
  	    <include name="**/*.jar" />
     </fileset>
 	 <fileset dir="build/lib/jars">
  	    <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>


  <target name="eclipse-warnings" depends="build" description="Run eclipse compiler code analysis">        
        <property name="ecj.log.dir" value="${build.dir}/ecj" />
        <property name="ecj.warnings.file" value="${ecj.log.dir}/eclipse_compiler_checks.txt"/>
        <mkdir  dir="${ecj.log.dir}" />

        <property name="ecj.properties" value="${basedir}/eclipse_compiler.properties" />                

        <echo message="Running Eclipse Code Analysis.  Output logged to ${ecj.warnings.file}" />        
        
	<java 
	    jar="${build.dir.lib}/jars/ecj-${ecj.version}.jar"
            fork="true"
	    failonerror="true"
            maxmemory="512m"> 
            <arg value="-source"/>
	    <arg value="${source.version}" /> 
	    <arg value="-target"/>
	    <arg value="${target.version}" /> 
	    <arg value="-d" />
            <arg value="none" />
	    <arg value="-proc:none" /> 
            <arg value="-log" />
            <arg value="${ecj.warnings.file}" /> 
            <arg value="-properties" />
            <arg value="${ecj.properties}" />
            <arg value="-cp" />
            <arg value="${toString:cassandra.classpath}" />
            <arg value="${build.src.java}" />
        </java>
  </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>
