| <project name="AppEngineGcsJavaClient" default="dist" basedir="." |
| xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <description> |
| A Google Cloud Storage client library for App Engine. |
| </description> |
| |
| <!-- Ivy Configurations --> |
| <property name="thirdparty" value="thirdparty"/> |
| <property name="sdk" value="sdk"/> |
| <property name="test" value="test"/> |
| <property name="war" value="war"/> |
| <property name="sdk_version" value="[1.8.9,2.0)"/> |
| |
| <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="javadoc" location="javadoc"/> |
| <property name="test_build" location="target/test-classes"/> |
| <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="lib_war" location="${lib}/${war}"/> |
| <property name="dist" location="dist"/> |
| <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 GCS library --> |
| <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="dependencies_war" depends="ivy_init"> |
| <ivy:retrieve conf="war" pattern="${lib_war}/[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="javadoc" depends="dependencies_thirdparty,dependencies_sdk"> |
| <delete dir="${javadoc}"/> |
| <mkdir dir="${javadoc}"/> |
| <javadoc sourcepath="${src}" destdir="${javadoc}" windowtitle="App Engine GCS Library"> |
| <classpath> |
| <fileset dir="${lib_thirdparty}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${lib_sdk}"> |
| <include name="*.jar"/> |
| </fileset> |
| </classpath> |
| <doctitle> |
| <![CDATA[<h1>App Engine GCS Library</h1>]]> |
| </doctitle> |
| <bottom> |
| <![CDATA[<i>Copyright © 2013 Google Inc. All Rights Reserved.</i>]]> |
| </bottom> |
| </javadoc> |
| </target> |
| |
| <target name="dist" depends="compile"> |
| <mkdir dir="${dist}"/> |
| <copy todir="${build}"> |
| <fileset dir="${src}"/> |
| </copy> |
| <jar jarfile="${dist}/appengine-gcs-client.jar" basedir="${build}"> |
| <manifest> |
| <section name="com/google/appengine/tools/cloudstorage"> |
| <attribute name="Specification-Vendor" value="Google"/> |
| <attribute name="Implementation-Vendor" value="Google"/> |
| <attribute name="Implementation-Vendor-Id" value="com.google.appengine.tools"/> |
| </section> |
| </manifest> |
| </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,dist"> |
| <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> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="test" depends="test_compile"> |
| <junit filtertrace="off" fork="yes" haltonfailure="yes"> |
| <batchtest> |
| <fileset dir="${test_src}"> |
| <include name="**/*Test*.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> |
| </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> |
| </classpath> |
| <formatter type="brief" usefile="false"/> |
| </junit> |
| </target> |
| |
| <target name="clean" depends="clean_example"> |
| <delete dir="${build}"/> |
| <delete dir="${javadoc}"/> |
| <delete dir="${dist}"/> |
| <delete dir="${test_build}"/> |
| <delete dir="${lib}"/> |
| </target> |
| |
| <!-- Targets for GCS example --> |
| <target name="copy_libs_to_example" depends="dist"> |
| <mkdir dir="${example_war}/WEB-INF/lib"/> |
| <copy todir="${example_war}/WEB-INF/lib"> |
| <fileset dir="${dist}"/> |
| </copy> |
| </target> |
| |
| <target name="compile_example" depends="copy_libs_to_example,dependencies_test,dependencies_war"> |
| <mkdir dir="${example_war}/WEB-INF/classes"/> |
| <javac srcdir="${example_src}" destdir="${example_war}/WEB-INF/classes" |
| source="${java_version}" target="${java_version}" debug="on" 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> |
| <fileset dir="${lib_war}"> |
| <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"/> |
| </target> |
| </project> |