| <project name="AppEnginePipeline" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <description> |
| Pipeline is a framework for building dynamic, complex workflows on Google App Engine. |
| </description> |
| |
| <!-- Ivy Configurations --> |
| <property name="thirdparty" value="thirdparty"/> |
| <property name="sdk" value="sdk"/> |
| <property name="test" value="test"/> |
| <property name="sdk_version" value="[1.9.1,1.10)"/> |
| |
| <property name="java_version" value="1.7" /> |
| |
| <!-- Paths --> |
| <property name="src" location="src/main/java"/> |
| <property name="test_src" location="src/test/java"/> |
| <property name="build" location="target/classes"/> |
| <property name="test_build" location="target/test-classes"/> |
| <property name="javadoc" location="javadoc"/> |
| <property name="lib" location="lib"/> |
| <property name="lib_thirdparty" location="${lib}/${thirdparty}"/> |
| <property name="lib_sdk" location="${lib}/${sdk}"/> |
| <property name="lib_test" location="${lib}/${test}"/> |
| <property name="dist" location="dist"/> |
| <property name="ui" location="src/main/resources/ui"/> |
| <property name="example" location="example"/> |
| <property name="example_src" location="${example}/src"/> |
| <property name="example_war" location="${example}/war"/> |
| |
| <!-- Ivy Bootstrap Properties --> |
| <property name="ivy_version" value="2.3.0"/> |
| <property name="mvn_repo" value="http://repo2.maven.org/maven2"/> |
| <property name="ivy_jar" value="ivy-${ivy_version}.jar"/> |
| <property name="ivy_url" value="${mvn_repo}/org/apache/ivy/ivy/${ivy_version}/${ivy_jar}"/> |
| <property name="ivy_dir" value="${lib}/ivy"/> |
| |
| |
| <!-- Targets for the Pipeline framework --> |
| <target name="init"> |
| <mkdir dir="${build}"/> |
| </target> |
| |
| <target name="ivy_probe" description="Check if Ivy is already loaded"> |
| <condition property="ivy_found"> |
| <typefound uri="antlib:org.apache.ivy.ant" name="retrieve"/> |
| </condition> |
| </target> |
| |
| <target name="ivy_download" depends="ivy_probe,init" unless="ivy_found"> |
| <mkdir dir="${ivy_dir}"/> |
| <get src="${ivy_url}" dest="${ivy_dir}/${ivy_jar}" usetimestamp="true"/> |
| </target> |
| |
| <target name="ivy_init" depends="ivy_probe,ivy_download" unless="ivy_found"> |
| <typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader"> |
| <classpath> |
| <pathelement location="${ivy_dir}/${ivy_jar}"/> |
| </classpath> |
| </typedef> |
| <fail> |
| <condition> |
| <not> |
| <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/> |
| </not> |
| </condition> |
| You need Apache Ivy 2.0 or later from http://ant.apache.org/ |
| It could not be loaded from ${ivy_url} |
| </fail> |
| </target> |
| |
| <target name="dependencies_thirdparty" depends="ivy_init"> |
| <ivy:retrieve conf="thirdparty" pattern="${lib_thirdparty}/[artifact]-[revision].[ext]" |
| sync="true"/> |
| </target> |
| |
| <target name="dependencies_sdk" depends="ivy_init"> |
| <ivy:retrieve conf="sdk" pattern="${lib_sdk}/[artifact]-[revision].[ext]" sync="true"/> |
| </target> |
| |
| <target name="dependencies_test" depends="ivy_init"> |
| <ivy:retrieve conf="test" pattern="${lib_test}/[artifact]-[revision].[ext]" sync="true"/> |
| </target> |
| |
| <target name="compile" depends="init,dependencies_thirdparty,dependencies_sdk"> |
| <javac srcdir="${src}" destdir="${build}" debug="on" debuglevel="lines,source" |
| source="${java_version}" target="${java_version}" includeantruntime="false"> |
| <compilerarg value="-Xlint:all"/> |
| <classpath> |
| <fileset dir="${lib_thirdparty}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="dist" depends="compile"> |
| <mkdir dir="${dist}"/> |
| <jar jarfile="${dist}/appengine-pipeline.jar" basedir="${build}"> |
| <manifest> |
| <section name="com/google/appengine/tools/pipeline"> |
| <attribute name="Specification-Vendor" value="Google" /> |
| <attribute name="Implementation-Vendor" value="Google" /> |
| <attribute name="Implementation-Vendor-Id" value="com.google.appengine.tools" /> |
| </section> |
| </manifest> |
| <zipfileset dir="${src}"/> |
| <zipfileset dir="${ui}" prefix="com/google/appengine/tools/pipeline/impl/servlets/ui"/> |
| </jar> |
| <copy todir="${dist}"> |
| <fileset dir="${lib_thirdparty}"/> |
| </copy> |
| </target> |
| |
| <target name="test_init"> |
| <mkdir dir="${test_build}"/> |
| </target> |
| |
| <target name="test_compile" |
| depends="test_init,dependencies_test,dependencies_sdk,dist,compile_example"> |
| <javac srcdir="${test_src}" destdir="${test_build}" debug="on" debuglevel="lines,source" |
| source="${java_version}" target="${java_version}" includeantruntime="false"> |
| <classpath> |
| <fileset dir="${dist}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_test}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| <pathelement path="${example_war}/WEB-INF/classes"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="test_small" depends="dependencies_test,dependencies_sdk,dist,test_compile"> |
| <junit filtertrace="off" fork="yes" haltonfailure="yes"> |
| <test name="com.google.appengine.tools.pipeline.impl.backend.AppEngineTaskQueueTest"/> |
| <test name="com.google.appengine.tools.pipeline.BarrierTest"/> |
| <test name="com.google.appengine.tools.pipeline.DelayedValueTest"/> |
| <test name="com.google.appengine.tools.pipeline.FanoutTaskTest"/> |
| <test name="com.google.appengine.tools.pipeline.FutureListTest"/> |
| <test name="com.google.appengine.tools.pipeline.JsonClassFilterHandlerTest"/> |
| <test name="com.google.appengine.tools.pipeline.JsonListHandlerTest"/> |
| <test name="com.google.appengine.tools.pipeline.MiscPipelineTest"/> |
| <test name="com.google.appengine.tools.pipeline.OrphanedJobGraphTest"/> |
| <test name="com.google.appengine.tools.pipeline.StaticContentHandlerTest"/> |
| <test name="com.google.appengine.tools.pipeline.UserGuideTest"/> |
| <classpath> |
| <pathelement location="${test_build}"/> |
| <fileset dir="${dist}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_test}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| <pathelement path="${example_war}/WEB-INF/classes"/> |
| </classpath> |
| <formatter type="brief" usefile="false"/> |
| </junit> |
| </target> |
| |
| <target name="test" depends="dependencies_test,dependencies_sdk,dist,test_compile,test_small"> |
| <junit filtertrace="off" fork="yes" haltonfailure="yes"> |
| <test name="com.google.appengine.tools.pipeline.GCDTest"/> |
| <test name="com.google.appengine.tools.pipeline.LetterCounterTest"/> |
| <test name="com.google.appengine.tools.pipeline.PipelinesErrorHandlingTest"/> |
| <test name="com.google.appengine.tools.pipeline.RetryTest"/> |
| <classpath> |
| <pathelement location="${test_build}"/> |
| <fileset dir="${dist}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_test}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| <pathelement path="${example_war}/WEB-INF/classes"/> |
| </classpath> |
| <formatter type="brief" usefile="false"/> |
| </junit> |
| </target> |
| |
| <target name="runtest" description="Runs the test specified on the command line with -DtestName=" |
| depends="dist,test_compile"> |
| <fail message="You must run this target with -DtestName=TestName" unless="testName" /> |
| <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes"> |
| <batchtest> |
| <fileset dir="${test_src}"> |
| <include name="**/${testName}.java" /> |
| </fileset> |
| </batchtest> |
| <classpath> |
| <pathelement location="${test_build}"/> |
| <fileset dir="${dist}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_test}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| <pathelement path="${example_war}/WEB-INF/classes"/> |
| </classpath> |
| <formatter type="brief" usefile="false"/> |
| </junit> |
| </target> |
| |
| <target name="javadoc" depends="dependencies_test,dependencies_sdk,dependencies_thirdparty"> |
| <delete dir="${javadoc}"/> |
| <mkdir dir="${javadoc}"/> |
| <javadoc packagenames="com.google.appengine.tools.pipeline" sourcepath="${src}" |
| destdir="${javadoc}" author="false" version="false" use="true" |
| windowtitle="App Engine Pipeline Framework"> |
| <classpath> |
| <fileset dir="${lib_thirdparty}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| </classpath> |
| <doctitle> |
| <![CDATA[<h1>Google App Engine Pipeline Framework</h1>]]> |
| </doctitle> |
| <bottom> |
| <![CDATA[<i>Copyright © 2011 Google Inc. All Rights Reserved.</i>]]> |
| </bottom> |
| </javadoc> |
| </target> |
| |
| <target name="clean" depends="clean_example"> |
| <delete dir="${build}"/> |
| <delete dir="${dist}"/> |
| <delete dir="${test_build}"/> |
| <delete dir="${lib}"/> |
| <delete dir="${javadoc}"/> |
| </target> |
| |
| <!-- Targets for Pipeline example --> |
| <target name="copy_libs_to_example" depends="dist,javadoc,dependencies_sdk"> |
| <mkdir dir="${example_war}/WEB-INF/lib"/> |
| <copy todir="${example_war}/WEB-INF/lib"> |
| <fileset dir="${dist}"/> |
| <fileset dir="${lib_sdk}"/> |
| </copy> |
| <symlink link="${example_war}/javadoc" resource="${javadoc}" overwrite="true"/> |
| </target> |
| |
| <target name="compile_example" depends="dependencies_test,dependencies_sdk,copy_libs_to_example"> |
| <mkdir dir="${example_war}/WEB-INF/classes"/> |
| <javac srcdir="${example_src}" destdir="${example_war}/WEB-INF/classes" debug="on" |
| source="${java_version}" target="${java_version}" debuglevel="lines,source" |
| includeantruntime="false"> |
| <compilerarg value="-Xlint:all"/> |
| <classpath> |
| <fileset dir="${example_war}/WEB-INF/lib"/> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_test}"> |
| <include name="*.jar"/> |
| </fileset> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="clean_example"> |
| <delete dir="${example_war}/WEB-INF/lib"/> |
| <delete dir="${example_war}/WEB-INF/classes"/> |
| <delete dir="${example_war}/WEB-INF/appengine-generated"/> |
| <delete dir="${example_war}/javadoc"/> |
| </target> |
| </project> |