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