| <!-- |
| 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="penny"> |
| <!-- javac properties --> |
| <property name="javac.debug" value="on" /> |
| <property name="javac.level" value="source,lines,vars"/> |
| <property name="javac.optimize" value="on" /> |
| <property name="javac.deprecation" value="off" /> |
| <property name="javac.version" value="1.6" /> |
| <property name="javac.args" value="" /> |
| <!-- TODO we should use warning... <property name="javac.args.warnings" value="-Xlint:unchecked" /> --> |
| <property name="javac.args.warnings" value="" /> |
| |
| <!-- build properties --> |
| <property name="build.dir" value="${basedir}/build" /> |
| <property name="build.classes" value="${build.dir}/classes" /> |
| <property name="build.docs" value="${build.dir}/docs" /> |
| <property name="build.javadoc" value="${build.docs}/api" /> |
| <property name="pigjar" value="../../../pig.jar" /> |
| <property name="pigjar-withouthadoop" value="../../../pig-withouthadoop.jar" /> |
| <property name="pigtest" value="../../../build/test/classes" /> |
| <property name="pennyjar" value="penny.jar" /> |
| <property name="src.dir" value="src/main/java/org/apache/pig/penny" /> |
| <property name="netty.jar" value="../../../build/ivy/lib/Pig/netty-3.2.2.Final.jar"/> |
| |
| <!-- jar properties --> |
| <property name=".javadoc" value="${build.docs}/api" /> |
| |
| <!-- test properties --> |
| <property name="test.build.dir" value="${build.dir}/test" /> |
| <property name="test.classes" value="${test.build.dir}/classes" /> |
| <property name="test.logs" value="${test.build.dir}/logs" /> |
| <property name="test.timeout" value="900000" /> |
| <property name="test.junit.output.format" value="plain" /> |
| <property name="test.src.dir" value="src/test/java" /> |
| <property name="junit.hadoop.conf" value="${user.home}/pigtest/conf/"/> |
| |
| <path id="penny.classpath"> |
| <pathelement location="${build.classes}"/> |
| <pathelement location="${pigjar}"/> |
| <pathelement location="${pigjar-withouthadoop}"/> |
| <pathelement location="${pigtest}"/> |
| <fileset dir="../../../build/ivy/lib"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </path> |
| |
| <path id="test.classpath"> |
| <pathelement location="${build.classes}"/> |
| <pathelement location="${pigjar}"/> |
| <pathelement location="${pigjar-withouthadoop}"/> |
| <pathelement location="${test.classes}"/> |
| <pathelement location="${test.src.dir}"/> |
| <pathelement location="${junit.hadoop.conf}" /> |
| <pathelement location="${pigtest}"/> |
| <fileset dir="../../../build/ivy/lib"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </path> |
| |
| <target name="init"> |
| <mkdir dir="${build.dir}"/> |
| <mkdir dir="${build.classes}"/> |
| <mkdir dir="${test.build.dir}"/> |
| <mkdir dir="${test.classes}"/> |
| <mkdir dir="${build.javadoc}"/> |
| </target> |
| <target name="clean"> |
| <delete dir="build"/> |
| </target> |
| <target depends="init" name="compile" description="compile all of the class files"> |
| <echo> *** Compiling Penny ***</echo> |
| <javac srcdir="${src.dir}" debug="${javac.debug}" debuglevel="${javac.level}" destdir="${build.classes}" source="${javac.version}" |
| target="${javac.version}" optimize="${javac.optimize}" deprecation="${javac.deprecation}"> |
| <compilerarg line="${javac.args} ${javac.args.warnings}" /> |
| <classpath refid="penny.classpath"/> |
| </javac> |
| </target> |
| <target depends="init,compile" name="jar" description="create the jar files"> |
| <echo> *** Creating penny.jar ***</echo> |
| <jar destfile="${pennyjar}"> |
| <fileset dir="build/classes"/> |
| <zipfileset src="${netty.jar}" /> |
| </jar> |
| </target> |
| <target depends="compile" name="compile-test"> |
| <echo> *** Compiling Penny tests ***</echo> |
| <javac srcdir="${test.src.dir}" debug="${javac.debug}" debuglevel="${javac.level}" destdir="${test.classes}" source="${javac.version}" target="${javac.version}"> |
| <compilerarg line="${javac.args} ${javac.args.warnings}"/> |
| <classpath refid="test.classpath"/> |
| </javac> |
| </target> |
| <target depends="compile-test,jar" name="test"> |
| <echo> *** Running Penny tests ***</echo> |
| <delete dir="${test.logs}"/> |
| <mkdir dir="${test.logs}"/> |
| <junit printsummary="yes" haltonfailure="no" fork="yes" maxmemory="512m" dir="${basedir}" timeout="${test.timeout}" errorProperty="tests.failed" failureProperty="tests.failed"> |
| <sysproperty key="hadoop.log.dir" value="${test.logs}"/> |
| <classpath refid="test.classpath"/> |
| <formatter type="${test.junit.output.format}" /> |
| <batchtest fork="yes" todir="${test.logs}" unless="testcase"> |
| <fileset dir="${test.src.dir}"> |
| <include name="**/*Test*.java" /> |
| </fileset> |
| </batchtest> |
| <batchtest fork="yes" todir="${test.logs}" if="testcase"> |
| <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/> |
| </batchtest> |
| </junit> |
| <fail if="tests.failed">Tests failed!</fail> |
| </target> |
| <target depends="init" name="javadoc" |
| description="build javadoc for all of the packages"> |
| <echo> *** Creating Javadocs ***</echo> |
| <javadoc destdir="build/javadoc" |
| author="true"> |
| <fileset dir="${src.dir}/evaluation" includes="**/*.java"/> |
| <fileset dir="${src.dir}/storage" includes="**/*.java"/> |
| <fileset dir="${src.dir}/filtering" includes="**/*.java"/> |
| <fileset dir="${src.dir}/grouping" includes="**/*.java"/> |
| <fileset dir="${src.dir}/comparison" includes="**/*.java"/> |
| </javadoc> |
| </target> |
| |
| </project> |