<?xml version="1.0" encoding="utf-8" ?>
<project name="MobileWebApp" default="build" basedir=".">
  <property file="local.properties" />
  <!-- Arguments to gwtc and devmode targets -->
  <property name="gwt.args" value="" />
  <property name="src.dir" value="src" />
  <property name="war.dir" value="war" />
  <property name="gwt.sdk" value="../.." />

  <fail unless="appengine.sdk">Missing property:
    The property 'appengine.sdk' is not set.
    Either specity the property by passing an argument

    -Dappengine.sdk="path-to-your-appengine-sdk"

    or create a 'local.properties' file containing the
    location of the App Engine SDK. i.e. the line:

    appengine.sdk=path-to-your-appengine-sdk
  </fail>

  <!-- Configure AppEngine macros -->
  <import file="${appengine.sdk}/config/user/ant-macros.xml" />

  <path id="project.class.path">
    <pathelement location="${war.dir}/WEB-INF/classes"/>
    <pathelement location="${gwt.sdk}/gwt-user.jar"/>
    <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
    <fileset dir="${gwt.sdk}" includes="validation-api-1.0.0.GA-sources.jar"/>
    <fileset dir="${gwt.sdk}" includes="validation-api-1.0.0.GA.jar"/>
    <!-- Add any additional non-server libs (such as JUnit) -->
    <fileset dir="${war.dir}/WEB-INF/lib" includes="**/*.jar"/>
  </path>

  <path id="tools.class.path">
    <path refid="project.class.path"/>
    <pathelement location="${appengine.sdk}/lib/appengine-tools-api.jar"/>
    <fileset dir="${appengine.sdk}/lib/tools">
      <include name="**/asm-*.jar"/>
      <include name="**/datanucleus-enhancer-*.jar"/>
    </fileset>
  </path>

  <target name="appengine-copyjars"
      description="Copies the App Engine JARs to the WAR.">
    <copy
        todir="${war.dir}/WEB-INF/lib"
        flatten="true">
      <fileset dir="${appengine.sdk}/lib/user">
        <include name="**/*.jar" />
      </fileset>
    </copy>
  </target>

  <target name="libs" description="Copy libs to WEB-INF/lib">
    <mkdir dir="${war.dir}/WEB-INF/lib" />
    <copy todir="${war.dir}/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
    <copy todir="${war.dir}/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet-deps.jar" />
    <copy todir="${war.dir}/WEB-INF/lib" file="${gwt.sdk}/validation-api-1.0.0.GA.jar"/>
    <copy todir="${war.dir}/WEB-INF/lib" file="${gwt.sdk}/validation-api-1.0.0.GA-sources.jar"/>
    <!-- Add any additional server libs that need to be copied -->
  </target>

  <target name="javac" depends="libs,appengine-copyjars" description="Compile java source to bytecode">
    <mkdir dir="${war.dir}/WEB-INF/classes"/>
    <javac srcdir="${src.dir}/" includes="**" encoding="utf-8"
        destdir="${war.dir}/WEB-INF/classes"
        source="1.6" target="1.6" nowarn="true"
        debug="true" debuglevel="lines,vars,source">
      <classpath refid="project.class.path"/>
    </javac>
    <copy todir="${war.dir}/WEB-INF/classes">
      <fileset dir="${src.dir}/" excludes="**/*.java"/>
    </copy>
  </target>

  <target name="gwtc" depends="javac" description="GWT compile to JavaScript (production mode)">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
      <classpath>
        <pathelement location="${src.dir}/"/>
        <path refid="project.class.path"/>
      </classpath>
      <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
      <jvmarg value="-Xmx256M"/>
      <arg line="-war"/>
      <arg value="${war.dir}/"/>
      <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
      <arg line="${gwt.args}"/>
      <arg value="com.google.gwt.sample.mobilewebapp.MobileWebApp"/>
    </java>
  </target>

  <target name="datanucleusenhance" depends="javac"
      description="Performs JDO enhancement on compiled data classes.">
    <enhance_war war="${war.dir}/" />
  </target>

  <target name="devmode" depends="javac,datanucleusenhance" description="Run development mode">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
      <classpath>
        <pathelement location="${src.dir}/"/>
        <path refid="project.class.path"/>
        <path refid="tools.class.path"/>
      </classpath>
      <jvmarg value="-Xmx256M"/>
      <jvmarg value="-javaagent:${appengine.sdk}/lib/agent/appengine-agent.jar"/>
      <arg value="-startupUrl"/>
      <arg value="MobileWebApp.html"/>
      <arg line="-war"/>
      <arg value="${war.dir}/"/>
      <arg value="-server"/>
      <arg value="com.google.appengine.tools.development.gwt.AppEngineLauncher"/>
      <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
      <arg line="${gwt.args}"/>
      <arg value="com.google.gwt.sample.mobilewebapp.MobileWebApp"/>
    </java>
  </target>

  <target name="build" depends="gwtc,datanucleusenhance" description="Build this project" />

  <target name="war" depends="build" description="Create a war file">
    <zip destfile="MobileWebApp.war" basedir="${war.dir}/"/>
  </target>

  <target name="clean" description="Cleans this project">
    <delete file="MobileWebApp.war" failonerror="false" />
    <delete dir="war/WEB-INF/appengine-generated/" failonerror="false" />
    <delete dir="war/WEB-INF/classes/com" failonerror="false" />
    <delete dir="war/WEB-INF/classes/META-INF" failonerror="false" />
    <delete file="war/WEB-INF/classes/log4j.properties" failonerror="false" />
    <delete dir="war/WEB-INF/deploy/" failonerror="false" />
    <delete dir="war/WEB-INF/lib/" failonerror="false" />
    <delete dir="war/mobilewebapp/" failonerror="false" />
  </target>

</project>
