<project>
  <property name="appengine-sdk.dir" location="../../appengine-java-sdk" />

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

  <path id="project.classpath">
    <pathelement path="war/WEB-INF/classes" />
    <fileset dir="war/WEB-INF/lib">
      <include name="**/*.jar" />
    </fileset>
    <fileset dir="${appengine-sdk.dir}/lib">
      <include name="shared/**/*.jar" />
    </fileset>
  </path>

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

  <target name="compile" depends="copyjars"
          description="Compiles Java source and copies other source files to the WAR.">
    <mkdir dir="war/WEB-INF/classes" />
    <copy todir="war/WEB-INF/classes">
      <fileset dir="src">
        <exclude name="**/*.java" />
      </fileset>
    </copy>
    <javac srcdir="src" destdir="war/WEB-INF/classes" classpathref="project.classpath" debug="on"
           includeAntRuntime="false"/>
  </target>

  <target name="runserver" depends="compile" description="Starts the development server.">
    <dev_appserver war="war" />
  </target>

  <target name="update" depends="compile" description="Uploads the application to App Engine.">
    <appcfg action="update" war="war" />
  </target>

  <target name="rollback" depends="compile"
          description="Rolls back an interrupted application update.">
    <appcfg action="rollback" war="war" />
  </target>

  <target name="request_logs" description="Downloads log data from App Engine for the application.">
    <appcfg action="request_logs" war="war">
      <options>
        <arg value="--num_days=5"/>
      </options>
      <args>
        <arg value="logs.txt"/>
      </args>
    </appcfg>
  </target>
</project>