blob: c9e81501d8a31c20c4ac074cca2e1291808b5aa7 [file] [log] [blame] [edit]
<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 &#169; 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>