<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 * Author: dhanji@google.com (Dhanji R. Prasanna)
 *         anorth@google.com (Alex North)
 -->
<project name="waveinabox" default="dist">
  <description>Wave in a Box</description>

  <property file="build.properties"/>

  <!-- Import classpath definitions. -->
  <import file="${build.classpath.path}"/>

  <!-- Import macros -->
  <import file="${build.macros.path}"/>

  <property name="gwt.args" value=""/>

  <!-- Standard time properties and a timestamp pattern -->
  <tstamp>
    <format property="DSTAMP_INT" pattern="-yyyy-MM-dd"/>
  </tstamp>
  <tstamp>
    <format property="LOG_STAMP" pattern="yyyy-MM-dd_HH-mm-ss"/>
  </tstamp>
  <property name="release.robot.name" value="wave-robot-client${DSTAMP_INT}.zip"/>
  <property name="release.robot.python.name" value="wave-robot-python-client${DSTAMP_INT}.zip"/>
  <property name="build.log.filename" value="build_${LOG_STAMP}.log"/>

  <!--=====
      Initialization
      =====-->

  <target name="clean" description="Cleans up the build artifacts and temporary directories">
    <delete dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>
    <delete dir="${doc.dir}"/>
    <delete dir="${gen.dir}"/>
    <delete dir="${test.out.dir}"/>
    <delete dir="war/waveharness"/>
    <delete dir="war/webclient"/>
  </target>

  <target name="clean-lib" description="Cleans up the third party libraries">
    <delete dir="${lib.test}"/>
    <delete dir="${lib.codegen}"/>
    <delete dir="${lib.runtime}"/>
    <delete dir="${lib.release}"/>
    <delete dir="${lib.solr}"/>
  </target>

  <target name="init-logging" description="Enable logging to file">
    <mkdir dir="${build.log.dir}"/>
    <record name="${build.log.dir}/${build.log.filename}"
        loglevel="verbose" append="false"/>
    <echo message="Logging to ${build.log.dir}/${build.log.filename}"/>
  </target>

  <target name="init" depends="init-logging">
    <mkdir dir="${build.proto.dir}"/>
    <mkdir dir="${build.messages.dir}"/>
    <mkdir dir="${build.src.dir}"/>
    <mkdir dir="${build.test.dir}"/>
    <mkdir dir="${coverage.dir}"/>
    <mkdir dir="${dist.dir}"/>
    <mkdir dir="${staging.dir}"/>
    <mkdir dir="${dep}"/>
    <mkdir dir="${test.out.dir}"/>
    <mkdir dir="${lib.test}"/>
    <mkdir dir="${lib.codegen}"/>
    <mkdir dir="${lib.runtime}"/>
    <mkdir dir="${lib.release}"/>
    <mkdir dir="${lib.solr}"/>
    <mkdir dir="${gen.dir}/gxp"/>
    <mkdir dir="${gen.dir}/messages"/>
  </target>

  <!-- === IDE helper targets === -->

  <!-- TODO(danilatos): Make this work on Windows as well. For now,
       windows users can just copy the .project_template file manually. -->
  <target name="eclipse" description="Generates an eclipse .project file">
    <exec executable="tools/eclipse.sh"/>
  </target>

  <!--=====
      Builds
      ======-->

  <!-- ===
      Protocol buffer targets.
      Compiles generated proto sources. See build-proto.xml for generating
      proto sources from .proto files.
  === -->
  <target name="compile-proto-dep">
    <uptodate targetfile="${dep}/compile-proto" property="skip.compile-proto">
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${src.proto.dir}" includes="**/*.java"/>
    </uptodate>
  </target>

  <target name="compile-proto" depends="init, compile-proto-dep"
      unless="skip.compile-proto" description="Compiles protocol buffers">
    <buildproto destdir="${build.proto.dir}">
      <src path="${src.proto.dir}"/>
      <classpath>
        <path refid="libpath"/>
      </classpath>
    </buildproto>
    <touch file="${dep}/compile-proto"/>
  </target>

  <!-- === GXP targets === -->
  <target name="gen-gxp-dep">
    <uptodate targetfile="${dep}/gen-gxp" property="skip.gen-gxp">
      <srcfiles dir="${src.dir}" includes="org/waveprotocol/box/server/gxp/*.gxp"/>
    </uptodate>
  </target>

  <!-- Generates the Java files from templates -->
  <target name="gen-gxp" description="Generates GXP files"
      depends="init, define-gxpc, gen-gxp-dep" unless="skip.gen-gxp">
    <gxpc srcdir="${src.dir}" srcpaths="${src.dir}" destdir="${gen.dir}/gxp"
        target="org.waveprotocol.box.server.gxp" />
    <touch file="${dep}/gen-gxp"/>
  </target>

  <target name="compile-gxp-dep">
    <uptodate targetfile="${dep}/compile-gxp" property="skip.compile-gxp">
      <srcfiles dir="${gen.dir}/gxp"/>
    </uptodate>
  </target>

  <target name="compile-gxp" depends="init, gen-gxp, compile-gxp-dep"
      unless="skip.compile-gxp" description="Compiles GXP classes">
    <buildjava destdir="${build.src.dir}">
      <src path="${gen.dir}/gxp" />
      <classpath>
        <path refid="libpath"/>
      </classpath>
    </buildjava>
    <touch file="${dep}/compile-gxp"/>
  </target>

  <!-- === PST targets === -->
  <target name="dist-pst-dep">
    <uptodate targetfile="${dep}/dist-pst" property="skip.dist-pst">
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${src.dir}" includes="org/waveprotocol/pst/**/*.java"/>
    </uptodate>
  </target>

  <target name="dist-pst" depends="init, dist-pst-dep, compile-proto"
      unless="skip.dist-pst" description="Builds the PST tool">
    <delete dir="${build.dir}/pst"/>
    <mkdir dir="${build.dir}/pst"/>
    <javac srcdir="${src.dir}" destdir="${build.dir}/pst" includes="org/waveprotocol/pst/**/*">
      <classpath>
        <path refid="libpath"/>
        <path location="${build.proto.dir}/"/>
      </classpath>
    </javac>
    <copy todir="${build.dir}/pst">
      <fileset dir="${src.dir}">
        <include name="org/waveprotocol/pst/**/*.st"/>
        <include name="org/waveprotocol/pst/**/properties"/>
      </fileset>
    </copy>
    <jar destfile="${dist.dir}/pst.jar" basedir="${build.dir}/pst"/>
    <touch file="${dep}/dist-pst"/>
  </target>

  <target name="gen-messages-dep">
    <uptodate targetfile="${dep}/gen-messages" property="skip.gen-messages">
      <srcfiles dir="${src.dir}" includes="org/waveprotocol/pst/**/*.st"/>
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${dist.dir}" includes="pst.jar"/>
      <srcfiles dir="${build.proto.dir}"/>
    </uptodate>
  </target>

  <target name="gen-messages" depends="dist-pst, compile-proto, gen-messages-dep"
      unless="skip.gen-messages"
      description="Generates the DTO message source">
    <delete dir="${gen.dir}/messages"/>
    <mkdir dir="${gen.dir}/messages"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/box/common/comms/WaveClientRpc.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/box/search/SearchProto.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/box/profile/ProfilesProto.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/box/server/rpc/Rpc.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/box/attachment/AttachmentProto.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/wave/federation/Proto.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/wave/concurrencycontrol/ClientServer.class"/>
    <pstmessage proto="${build.proto.dir}/org/waveprotocol/wave/diff/Diff.class"/>
    <touch file="${dep}/gen-messages"/>
  </target>

  <target name="compile-messages-dep">
    <uptodate targetfile="${dep}/compile-messages" property="skip.compile-messages">
      <srcfiles dir="${gen.dir}/messages"/>
      <srcfiles dir="${src.dir}" includes="org/waveprotocol/wave/communication/**"/>
    </uptodate>
  </target>

  <target name="compile-messages" depends="gen-messages, compile-messages-dep"
      unless="skip.compile-messages" description="Compiles the DTO messages">
    <!--
      The generated DTOs depend on code in wave/communication.  At this stage of
      the build process, that code is still in source form, so it is exposed to
      javac via sourcepath not classpath.  Since javac is too aggressive, and
      gobbles up those files and compiles them too, a subsequent step has to
      go and delete those overzealously compiled files, because they will be
      compiled again later.
    -->
    <javac srcdir="${gen.dir}/messages"
           destdir="${build.messages.dir}"
           sourcepath="${src.dir}">
      <classpath>
        <path refid="libpath"/>
        <pathelement location="${build.proto.dir}"/>
      </classpath>
    </javac>
    <delete dir="${build.messages.dir}/org/waveprotocol/wave/communication"/>
    <touch file="${dep}/compile-messages"/>
  </target>

  <!-- === Java targets === -->
  <target name="compile-dep">
    <uptodate targetfile="${dep}/compile" property="skip.compile">
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${src.dir}" includes="**"/>
      <srcfiles dir="${gen.dir}" includes="**"/>
    </uptodate>
  </target>

  <target name="compile" depends="compile-proto, compile-gxp, compile-messages, compile-dep"
      unless="skip.compile" description="Compiles all source">
    <subant target="compile" inheritall="true">
      <property name="build.common.path" location="build-common.xml"/>
      <fileset dir="${src.dir}" includes="*/**/build.xml"/>
    </subant>

    <!-- copy non binary resources in src tree to output classpath. Why? -->
    <copy todir="${build.src.dir}">
      <fileset dir="${src.dir}">
        <include name="**/*.js"/>
        <include name="**/*.xml"/>
        <include name="**/*.html"/>
        <include name="**/*.properties"/>
        <include name="**/*.proto"/>
      </fileset>
    </copy>

    <touch file="${dep}/compile"/>
  </target>

  <target name="compile-tests" depends="get-third-party,compile"
      description="Compiles all unit tests">
            <!-- Pull in the Emma tasks -->
    <taskdef resource="emma_ant.properties" classpathref="test.libpath"/>
    <buildjava destdir="${build.test.dir}">
      <src path="${test.dir}" />
      <classpath>
        <path refid="libpath"/>
        <path refid="test.libpath"/>
        <pathelement location="${build.src.dir}"/>
        <pathelement location="${build.proto.dir}"/>
      </classpath>
    </buildjava>

    <!-- copy non binary resources in src tree to output classpath -->
    <copy todir="${build.test.dir}">
      <fileset dir="${test.dir}">
        <include name="**/*.xml"/>
        <include name="**/*.html"/>
        <include name="**/*.properties"/>
      </fileset>
    </copy>
  </target>

  <!--=====
      Tests
      ======-->

  <target name="test" depends="compile-tests" description=
    "Runs all the unit tests in the project excluding external persistence">
    <!-- EMMA disabled due to incompatibility with EventSerializer -->
    <!-- Tests are run in a single new VM, when forkmode is set to once -->
    <runtests forkmode="once" coverage="true">
      <fileset dir="${test.dir}">
        <include name="**/*Test.java"/>
        <exclude name="**/*GwtTest.java"/>
        <exclude name="**/*LargeTest.java"/>
        <!-- Exclude all persistence tests -->
        <exclude name="**/server/persistence/**"/>
      </fileset>
      <!-- Include the persistence tests that aren't run elsewhere -->
      <fileset dir="${test.dir}">
        <include name="**/server/persistence/memory/*Test.java"/>
        <include name="**/server/persistence/file/*Test.java"/>
      </fileset>
    </runtests>
  </target>

  <target name="test-large" depends="compile-tests" description="Runs large tests (slow)">
    <runtests forkmode="perTest" coverage="true">
      <fileset dir="${test.dir}">
        <include name="**/*LargeTest.java"/>
      </fileset>
    </runtests>
  </target>

  <target name="test-gwt" depends="compile-tests" description="Runs GWT tests (slow)">
    <!-- Fork per test due to GWT test failure in shared JVM -->
    <!-- EMMA disabled due to GWT incompatibility -->
    <runtests forkmode="perTest" coverage="false">
      <fileset dir="${test.dir}">
        <include name="**/*GwtTest.java"/>
      </fileset>
    </runtests>
  </target>

  <target name="test-mongodb" depends="compile-tests" description="Runs the MongoDb tests">
    <runtests forkmode="once" coverage="true">
      <fileset dir="${test.dir}">
        <!-- Include the mongoDb tests -->
        <include name="**/server/persistence/mongodb/**/*Test.java"/>
      </fileset>
    </runtests>
  </target>

  <target name="test-all" depends="compile-tests, test, test-gwt, test-large, test-mongodb"
      description="Run all tests, including GWT"/>

  <!--=====
      GWT
      ======-->

  <target name="compile-gwt-dep">
    <uptodate targetfile="${dep}/compile-gwt" property="skip.compile-gwt">
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${src.dir}"/>
      <srcfiles dir="${gen.dir}/messages"/>
    </uptodate>
  </target>

  <target name="compile-gwt" depends="compile, compile-gwt-dep"
      description="GWT compile to production JavaScript" unless="skip.compile-gwt">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
      <classpath>
        <pathelement location="${src.dir}"/>
        <pathelement location="${gen.dir}/messages"/>
        <path refid="libpath"/>
        <path refid="test.libpath"/>
      </classpath>
      <jvmarg value="-Xmx1024M"/>
      <!-- Small Javascript size. -->
      <arg line="-style OBFUSCATED"/>
      <!-- Do not include class and package names in compiled JS. -->
      <arg line="-XdisableClassMetadata"/>
      <arg line="-XdisableCastChecking"/>
      <arg line="-localWorkers 4"/>
      <arg line="${gwt.args}"/>
      <arg value="org.waveprotocol.box.webclient.WebClientProd"/>
    </java>
    <!-- Only one GWT compile output is valid at any one time. -->
    <delete file="${dep}/compile-gwt-dev"/>
    <touch file="${dep}/compile-gwt"/>
  </target>

  <target name="compile-gwt-dev-dep">
    <uptodate targetfile="${dep}/compile-gwt-dev" property="skip.compile-gwt-dev">
      <srcfiles dir="${lib.dir}"/>
      <srcfiles dir="${src.dir}"/>
      <srcfiles dir="${gen.dir}/messages"/>
    </uptodate>
  </target>

  <target name="compile-gwt-demo" depends="compile, compile-gwt-dev-dep"
       description="GWT compile to a 'demo' production JavaScript with remote logging enabled."
       unless="skip.compile-gwt-dev">
     <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
       <classpath>
         <pathelement location="${src.dir}"/>
         <pathelement location="${gen.dir}/messages"/>
         <path refid="libpath"/>
         <path refid="test.libpath"/>
       </classpath>
       <jvmarg value="-Xmx1024M"/>
       <!-- Human-readable JS. -->
       <arg line="-style PRETTY"/>
       <!-- Assertions on. -->
       <arg line="-ea"/>
       <arg line="${gwt.args}"/>
       <arg value="org.waveprotocol.box.webclient.WebClientDemo"/>
     </java>
     <!-- Only one GWT compile output is valid at any one time. -->
     <delete file="${dep}/compile-gwt"/>
     <touch file="${dep}/compile-gwt-dev"/>
   </target>

  <target name="compile-gwt-dev" depends="compile, compile-gwt-dev-dep"
      description="GWT compile of a restricted set of permutations suitable for development."
      unless="skip.compile-gwt-dev">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
      <classpath>
        <pathelement location="${src.dir}"/>
        <pathelement location="${gen.dir}/messages"/>
        <path refid="libpath"/>
        <path refid="test.libpath"/>
      </classpath>
      <jvmarg value="-Xmx1024M"/>
      <!-- Human-readable JS. -->
      <arg line="-style PRETTY"/>
      <!-- Less optimal JS, but faster compile. -->
      <arg line="-draftCompile"/>
      <!-- Assertions on. -->
      <arg line="-ea"/>
      <arg line="${gwt.args}"/>
      <arg value="org.waveprotocol.box.webclient.WebClientDev"/>
    </java>
    <!-- Only one GWT compile output is valid at any one time. -->
    <delete file="${dep}/compile-gwt"/>
    <touch file="${dep}/compile-gwt-dev"/>
  </target>

  <!--=====
      Hosted and Superdev
      ======-->

  <target name="hosted-gwt" depends="compile"
      description="Runs the hosted mode server, for debugging the GWT client in a JVM.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
      <classpath>
        <pathelement location="${src.dir}"/>
        <pathelement location="${build.src.dir}"/>
        <pathelement location="${gen.dir}/messages"/>
        <path refid="libpath"/>
      </classpath>
      <jvmarg value="-Xmx1024M"/>
      <jvmarg value="-ea"/>
      <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8001"/>
      <arg value="-noserver" />
      <arg line="-bindAddress 127.0.0.1" />
      <arg line="${gwt.args}"/>
      <arg line="-startupUrl http://localhost:9898"/>
      <arg line="-logLevel DEBUG"/>
      <arg value="org.waveprotocol.box.webclient.WebClientDev"/>
    </java>
  </target>

  <target name="superdev-gwt" depends="compile"
      description="Runs the superdev mode, for debugging the GWT client in a browser.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
      <classpath>
        <pathelement location="${src.dir}"/>
        <pathelement location="${gen.dir}/messages"/>
        <path refid="libpath"/>
      </classpath>
      <arg line="${gwt.args}"/>
      <arg line="-src src"/>
      <arg value="org.waveprotocol.box.webclient.WebClientDev"/>
    </java>
  </target>

  <target name="editor-hosted" depends="compile" description="Runs the editor harness through the GWT hosted mode server, for debugging in a JVM.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
      <classpath>
        <pathelement location="${src.dir}"/>
        <path refid="libpath"/>
      </classpath>
      <jvmarg value="-Xmx512M"/>
      <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8001"/>
      <arg line="${gwt.args}"/>
      <arg line="-war war"/>
      <arg line="-startupUrl org.waveprotocol.wave.client.editor.harness.EditorTest/EditorTest.html"/>
      <arg value="org.waveprotocol.wave.client.editor.harness.EditorTest"/>
    </java>
  </target>

  <target name="editor-superdev" depends="compile" description="Runs the editor harness through the GWT superdev mode server, for debugging in a browser.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
      <classpath>
        <pathelement location="${src.dir}"/>
        <path refid="libpath"/>
      </classpath>
      <arg line="${gwt.args}"/>
      <arg line="-src src"/>
      <arg value="org.waveprotocol.wave.client.editor.harness.EditorTest"/>
    </java>
  </target>

  <target name="waveharness-hosted" depends="compile" description="Runs the wave panel harness through the GWT hosted mode server, for debugging in a JVM.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
      <classpath>
        <pathelement location="${src.dir}"/>
        <path refid="libpath"/>
      </classpath>
      <jvmarg value="-Xmx512M"/>
      <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8001"/>
      <arg line="${gwt.args}"/>
      <arg line="-war war"/>
      <arg line="-startupUrl waveharness/UndercurrentHarness.html"/>
      <arg value="org.waveprotocol.wave.client.testing.UndercurrentHarness"/>
    </java>
  </target>

  <target name="waveharness-superdev" depends="compile" description="Runs the wave panel harness through the GWT superdev mode server, for debugging in a browser.">
    <java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
      <classpath>
        <pathelement location="${src.dir}"/>
        <path refid="libpath"/>
      </classpath>
      <arg line="${gwt.args}"/>
      <arg line="-src src"/>
      <arg value="org.waveprotocol.wave.client.testing.UndercurrentHarness"/>
    </java>
  </target>

  <!--=====
      Server
      ======-->

  <target name="check-server-config" description="Checks server configuration is available">
    <available file="server.config" property="server.config.present"/>
    <fail message="You need to copy server.config.example to server.config and edit it."
      unless="server.config.present"/>
  </target>

  <target name="run-server" depends="compile, check-server-config"
      description="Runs Wave in a Box server">
    <java failonerror="true" fork="true" classname="org.waveprotocol.box.server.ServerMain">
      <classpath>
        <path refid="libpath"/>
        <path location="${build.src.dir}"/>
        <path location="${build.proto.dir}"/>
        <path location="${build.messages.dir}"/>
      </classpath>
      <jvmarg value="-Dorg.eclipse.jetty.LEVEL=DEBUG"/>
      <jvmarg value="-Djava.security.auth.login.config=jaas.config"/>
      <jvmarg value="-Dwave.server.config=server.config"/>
    </java>
  </target>

  <target name="debug-server" depends="compile, check-server-config"
      description="Runs Wave in a Box server with debugging">
    <java failonerror="true" fork="true" classname="org.waveprotocol.box.server.ServerMain">
      <classpath>
        <path refid="libpath"/>
        <path location="${build.src.dir}"/>
        <path location="${build.proto.dir}"/>
        <path location="${build.messages.dir}"/>
      </classpath>
      <jvmarg value="-Dorg.eclipse.jetty.LEVEL=DEBUG"/>
      <jvmarg value="-Djava.security.auth.login.config=jaas.config"/>
      <jvmarg value="-Dwave.server.config=server.config"/>
      <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10898"/>
    </java>
  </target>

  <!--=====
      Distribution
      ======-->

  <target name="stage-dep">
    <uptodate targetfile="${dep}/stage" property="skip.stage">
      <srcfiles dir="${lib.runtime}" includes="*.jar"/>
      <srcfiles dir="${lib.codegen}" includes="gwt/gwt-user-*.jar"/>
      <srcfiles dir="${build.src.dir}"/>
    </uptodate>
  </target>

  <target name="stage" depends="compile, stage-dep"
      description="Copy classes and runtime dependencies to the staging directory" unless="skip.stage">
    <!-- Unzip and copy all the runtime deps into a staging dir -->
    <unzip dest="${staging.dir}">
      <fileset dir="${lib.runtime}">
        <include name="*.jar"/>
      </fileset>
    </unzip>
    <unzip dest="${staging.dir}">
      <fileset dir="${lib.codegen}">
         <include name="gwt-*.jar"/>
      </fileset>
      <patternset>
        <exclude name="javax/servlet/**/*"/>
        <exclude name="org/eclipse/**/*"/>
      </patternset>
    </unzip>
    <copy todir="${staging.dir}" preservelastmodified="true">
      <fileset dir="${build.src.dir}"/>
      <fileset dir="${build.proto.dir}"/>
      <fileset dir="${build.messages.dir}"/>
    </copy>
    <touch file="${dep}/stage"/>
  </target>

  <target name="dist" depends="test, compile-gwt, dist-server, dist-export-import"
      description="Compiles, tests and creates the binary executable.">
  </target>

  <target name="dist-proto" depends="compile-proto" description="Builds the proto jar">
    <jar destfile="${dist.dir}/proto.jar" basedir="${build.proto.dir}"/>
    <jar destfile="${dist.dir}/proto-src.jar" basedir="${src.proto.dir}"/>
    <jar destfile="${dist.dir}/proto-msg.jar" basedir="${gen.dir}/messages"/>
  </target>

  <target name="dist-libraries" depends="compile, dist-proto, dist-pst" description="Builds the distribution libraries">
    <subant target="dist" inheritall="true">
      <fileset dir="${src.dir}" includes="*/**/build.xml"/>
    </subant>
  </target>

  <target name="dist-robot-client-api" depends="compile">
  	<jar destfile="${robotclient.jar.out}">
      <fileset dir="${staging.dir}">
      	<include name="com/google/wave/api/*" />
      	<include name="com/google/wave/api/event/**/*" />
      	<include name="com/google/wave/api/impl/**/*" />
      	<include name="com/google/wave/api/oauth/**/*" />
      	<include name="com/google/wave/api/v2/**/*" />
      </fileset>
      <manifest>
        <attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Specification-Title" value="Apache Wave Robot Client API"/>
        <attribute name="Specification-Version" value="${waveinabox.version}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Implementation-Title" value="Apache Wave Robot Client API"/>
        <attribute name="Implementation-Version" value="${waveinabox.version}"/>
        <attribute name="Built-By" value="${user.name}"/>
      </manifest>
      <metainf dir="." includes="LICENSE, NOTICE" />
    </jar>
  </target>

  <!-- dist-api is broken due to non-runnable dependencies in the waveserver directory.  TODO: fix. -->
  <target name="dist-api" depends="stage" description="Assembles the Wave in a Box API">
    <jar destfile="${api.jar.out}">
      <fileset dir="${staging.dir}">
        <include name="org/waveprotocol/**/*" />
        <!-- Only exclude runnable targets -->
        <exclude name="org/waveprotocol/box/consoleclient/**/*" />
        <exclude name="org/waveprotocol/box/server/waveserver/**/*" />
      </fileset>
      <manifest>
        <attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Specification-Title" value="Apache Wave Reference Impl API"/>
        <attribute name="Specification-Version" value="${waveinabox.version}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Implementation-Title" value="Apache Wave Reference Impl API"/>
        <attribute name="Implementation-Version" value="${waveinabox.version}"/>
        <attribute name="Built-By" value="${user.name}"/>
      </manifest>
      <metainf dir="." includes="LICENSE, NOTICE" />
    </jar>
  </target>

  <!-- A healthy mix of hyphens and underscores never hurt anyone.  Sigh. -->
  <target name="dist-server-dep">
    <!-- Note: this check is still very slow (~30secs) -->
    <uptodate targetfile="${dep}/dist-server" property="skip.dist-server">
      <srcfiles dir="${staging.dir}"/>
    </uptodate>
  </target>

  <target name="dist-server" depends="stage, dist-server-dep" description="Assembles the Wave in a Box server" unless="skip.dist-server">
    <jar destfile="${server.jar.out}">
      <fileset dir="${staging.dir}">
        <include name="META-INF/services/*" />
        <include name="com/mongodb/**/*" />
        <include name="org/slf4j/**/*" />
	<include name="org/atmosphere/**/*" />
        <include name="com/google/common/**/*" />
        <include name="com/google/gson/**/*" />
        <include name="com/google/gxp/**/*" />
        <include name="com/google/gwt/core/server/**/*" />
        <include name="com/google/gwt/core/shared/**/*" />
        <include name="com/google/gwt/logging/**/*" />
        <include name="com/google/gwt/user/server/**/*" />
        <include name="com/google/gwt/user/client/rpc/**/*" />
        <include name="com/google/inject/**/*" />
        <include name="com/google/protobuf/**/*" />
        <include name="com/google/wave/**/*" />
        <include name="gnu/inet/**/*" />
        <include name="javax/inject/**/*" />
        <include name="javax/servlet/**/*" />
        <include name="javax/xml/**/*" />
        <include name="net/oauth/**/*" />
        <include name="org/aopalliance/**/*" />
        <include name="org/apache/commons/cli/**/*" />
        <include name="org/apache/commons/codec/**/*" />
        <include name="org/apache/commons/collections/**/*" />
        <include name="org/apache/commons/configuration/**/*" />
        <include name="org/apache/commons/fileupload/**/*" />
        <include name="org/apache/commons/httpclient/**/*" />
        <include name="org/apache/commons/lang/**/*" />
        <include name="org/apache/commons/logging/**/*" />
        <include name="org/apache/lucene/**/*" />
        <include name="org/apache/commons/io/**/*" />
        <include name="org/apache/xerces/**/*" />
        <include name="org/bson/**/*" />
        <include name="org/dom4j/**/*" />
        <include name="org/eclipse/**/*" />
        <include name="org/jdom/**/*" />
        <include name="org/jivesoftware/**/*" />
        <include name="org/joda/time/**/*" />
        <include name="org/json/**/*" />
        <include name="org/waveprotocol/**/*" />
        <include name="org/xmlpull/**/*" />
        <include name="org/xmpp/**/*" />
        <include name="cc/kune/initials/**/*" />
        <exclude name="org/waveprotocol/box/webclient/**/*"/>
        <exclude name="org/waveprotocol/box/consoleclient/**/*"/>
        <exclude name="org/waveprotocol/box/expimp/**/*"/>
        <exclude name="org/waveprotocol/wave/client/*"/>
        <exclude name="org/waveprotocol/wave/client/account/**/*"/>
        <exclude name="org/waveprotocol/wave/client/autohide/**/*"/>
        <exclude name="org/waveprotocol/wave/client/clipboard/**/*"/>
        <exclude name="org/waveprotocol/wave/client/common/**/*"/>
        <exclude name="org/waveprotocol/wave/client/concurrencycontrol/**/*"/>
        <exclude name="org/waveprotocol/wave/client/debug/**/*"/>
        <exclude name="org/waveprotocol/wave/client/doodad/**/*"/>
        <exclude name="org/waveprotocol/wave/client/paging/**/*"/>
        <exclude name="org/waveprotocol/wave/client/render/**/*"/>
        <exclude name="org/waveprotocol/wave/client/scheduler/**/*"/>
        <exclude name="org/waveprotocol/wave/client/scroll/**/*"/>
        <exclude name="org/waveprotocol/wave/client/state/**/*"/>
        <exclude name="org/waveprotocol/wave/client/testing/**/*"/>
        <exclude name="org/waveprotocol/wave/client/uibuilder/**/*"/>
        <exclude name="org/waveprotocol/wave/client/uibuilder/**/*"/>
        <exclude name="org/waveprotocol/wave/client/util/**/*"/>
        <exclude name="org/waveprotocol/wave/client/wave/**/*"/>
        <exclude name="org/waveprotocol/wave/client/wavepanel/**/*"/>
        <exclude name="org/waveprotocol/wave/client/widget/**/*"/>
        <exclude name="com/google/api/client/**/*"/>
      </fileset>
      <manifest>
        <!-- Application entry point -->
        <attribute name="Main-Class"
          value="org.waveprotocol.box.server.ServerMain"/>
        <attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Specification-Title" value="Apache Wave Server"/>
        <attribute name="Specification-Version" value="${waveinabox.version}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Implementation-Title" value="Apache Wave Server"/>
        <attribute name="Implementation-Version" value="${waveinabox.version}"/>
        <attribute name="Built-By" value="${user.name}"/>
      </manifest>
      <metainf dir="." includes="LICENSE, NOTICE" />
    </jar>
    <touch file="${dep}/dist-server"/>
  </target>

  <target name="dist-export-import-dep">
    <uptodate targetfile="${dep}/dist-export-import" property="skip.dist-export-import">
      <srcfiles dir="${staging.dir}"/>
    </uptodate>
  </target>

  <target name="dist-export-import" depends="stage, dist-export-import-dep" description="Assembles the Wave Export/Import utilities" unless="skip.dist-export-import">
    <jar destfile="${export-import.jar.out}">
      <fileset dir="${staging.dir}">
	<include name="org/waveprotocol/box/server/common/**/*"/>
        <include name="org/waveprotocol/box/expimp/**/*"/>
        <include name="org/waveprotocol/box/server/persistence/**/*"/>
        <include name="org/waveprotocol/box/server/rpc/**/*"/>
        <include name="org/waveprotocol/wave/**/*"/>
        <include name="org/waveprotocol/protobuf/**/*"/>
        <include name="org/waveprotocol/box/attachment/**/*"/>
        <include name="org/waveprotocol/box/common/comms/**/*"/>
        <include name="org/apache/http/**/*"/>
        <include name="org/apache/commons/**/*"/>
        <include name="com/google/wave/api/**/*"/>
        <include name="com/google/common/**/*"/>
        <include name="com/google/gson/**/*"/>
        <include name="com/google/protobuf/**/*"/>
        <include name="org/json/**/*"/>
        <include name="net/oauth/**/*"/>
      </fileset>
      <manifest>
        <attribute name="Specification-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Specification-Title" value="Apache Wave Export/Import Utilities"/>
        <attribute name="Specification-Version" value="${waveinabox.version}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
        <attribute name="Implementation-Title" value="Apache Wave Export/Import Utilities"/>
        <attribute name="Implementation-Version" value="${waveinabox.version}"/>
        <attribute name="Built-By" value="${user.name}"/>
      </manifest>
      <metainf dir="." includes="LICENSE, NOTICE" />
    </jar>
    <touch file="${dep}/dist-export-import"/>
  </target>

  <!-- This rule should be run whenever the build configuration (i.e. build files, libraries) is changed -->
  <target name="dist-test" depends="dist, test" description="Runs all the unit tests in the project against the jar files">
    <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
      <classpath refid="test.libpath"/>
    </taskdef>

    <junit fork="yes" showoutput="no" haltonerror="yes">
      <classpath>
        <path refid="libpath"/>
        <path refid="test.libpath"/>
        <pathelement location="${server.jar.out}"/>
        <pathelement location="${build.test.dir}"/>
      </classpath>
      <batchtest>
        <fileset dir="${test.dir}">
          <include name="**/*Test.java"/>
        </fileset>
      </batchtest>
      <formatter type="xml"/>
    </junit>
  </target>

  <!--=====
      Release creation
      ======-->

  <target name="release" depends="release-bin,release-src" description="Creates unsigned release">
  </target>

  <target name="release-src" description="Creates unsigned tar+zip for server source release">
    <delete file="${dist.dir}/${release.src.path}.tar.bz2" />
    <delete file="${dist.dir}/${release.src.path}.zip" />
    <copy file="LICENSE.src" tofile="LICENSE" />
    <copy file="NOTICE.src" tofile="NOTICE" />
    <tar destfile="${dist.dir}/${release.src.path}.tar" longfile="gnu">
      <!-- Include everything except built stuff in tree -->
      <tarfileset dir="." prefix="${release.src.path}">
        <exclude name="build/" />
        <exclude name="dist/" />
        <exclude name="_*/" />
        <exclude name="bin/" />
        <exclude name="gen/" />
        <exclude name="test_out/" />
        <exclude name="third_party/" />
        <exclude name="war/webclient/" />
        <exclude name="gwt-unitCache/" />
        <exclude name="LICENSE.*" />
        <exclude name="NOTICE.*" />
      </tarfileset>
      <!-- Setup permissions -->
      <tarfileset dir="." prefix="${release.src.path}" filemode="755">
        <include name="check-certificates.sh" />
        <include name="make_cert.sh" />
        <include name="run-server.sh" />
        <include name="run-export.sh" />
        <include name="run-import.sh" />
      </tarfileset>
    </tar>
    <bzip2 destfile="${dist.dir}/${release.src.path}.tar.bz2" src="${dist.dir}/${release.src.path}.tar" />
    <zip destfile="${dist.dir}/${release.src.path}.zip">
      <tarfileset src="${dist.dir}/${release.src.path}.tar" />
    </zip>
    <delete file="${dist.dir}/${release.src.path}.tar" />
    <delete file="LICENSE" />
    <delete file="NOTICE" />
  </target>

  <target name="release-bin" depends="compile-gwt, dist-server, dist-export-import" description="Creates unsigned tar+zip for server binary release">
    <delete file="${dist.dir}/${release.bin.path}.tar.bz2"/>
    <delete file="${dist.dir}/${release.bin.path}.zip"/>
    <antcall target="gen-server-config"/> 
    <copy file="LICENSE.bin" tofile="LICENSE" />
    <copy file="NOTICE.bin" tofile="NOTICE" />
    <tar destfile="${dist.dir}/${release.bin.path}.tar" longfile="gnu">
      <!-- Actual jars -->
      <tarfileset dir="${dist.dir}" includes="*.jar" prefix="${release.bin.path}/dist" />
      <tarfileset dir="${basedir}" prefix="${release.bin.path}">
        <!-- Documentation + Licensing -->
        <include name="CHANGES" />
        <include name="DISCLAIMER" />
        <include name="KEYS" />
        <include name="LICENSE" />
        <include name="NOTICE" />
        <include name="README" />
        <include name="README.export-import" />
        <include name="RELEASE-NOTES" />
        <include name="THANKS" />
        <!-- Helper scripts -->
        <include name="process-script-args.sh" />
        <!-- Configuration -->
        <include name="build.properties" />
        <include name="jaas.config" />
        <include name="jsongadgets.json" />
        <include name="server.config.example" />
        <include name="server.config" />
        <include name="server-config.xml" />
        <include name="server.federation.config" />
        <include name="server.federation.config.example" />
        <include name="wiab-logging.conf" />
      </tarfileset>
      <!-- Helper scripts -->
      <tarfileset dir="${basedir}" prefix="${release.bin.path}" filemode="755">
        <include name="check-certificates.sh" />
        <include name="make_cert.sh" />
        <include name="run-server.sh" />
        <include name="run-server.bat" />
        <include name="run-export.sh" />
        <include name="run-import.sh" />
        <include name="run-solr.sh" />
        <include name="run-solr.bat" />
      </tarfileset>
      <!-- WAR static content -->
      <tarfileset dir="." includes="war/" prefix="${release.bin.path}" />
      <tarfileset dir="." includes="thumbnail_patterns/" prefix="${release.bin.path}" />
      <tarfileset dir="." includes="platforms/" prefix="${release.bin.path}" />
    </tar>
    <bzip2 destfile="${dist.dir}/${release.bin.path}.tar.bz2" src="${dist.dir}/${release.bin.path}.tar" />
    <zip destfile="${dist.dir}/${release.bin.path}.zip">
      <tarfileset src="${dist.dir}/${release.bin.path}.tar" />
    </zip>
    <delete file="${dist.dir}/${release.bin.path}.tar"/>
    <delete file="LICENSE" />
    <delete file="NOTICE" />
  </target>

  <target name="gen-server-config">
    <ant antfile="server-config.xml" />
  </target>

  <!-- TODO: re-use these when the api code is useful again -->
  <target name="release-robot-client-api" depends="dist-libraries" description="Creates a zip for the java robot client release">
    <delete file="${dist.dir}/${release.robot.name}"/>
    <zip destfile="${dist.dir}/${release.robot.name}">
      <zipfileset dir="${dist.dir}" includes="model.jar"/>
      <zipfileset dir="${dist.dir}" includes="wave-api-${waveinabox.version}.jar"/>
      <zipfileset dir="${lib.dir}/runtime/commons_codec" includes="*.jar"/>
      <zipfileset dir="${lib.dir}/runtime/gson" includes="*.jar"/>
      <zipfileset dir="${lib.dir}/runtime/jdo" includes="*.jar"/>
      <zipfileset dir="${lib.dir}/runtime/oauth" includes="*.jar"/>
      <zipfileset dir="${basedir}" includes="COPYING"/>
    </zip>
  </target>

  <target name="release-robot-client-python-api" description="Creates a zip for the python robot client release">
    <delete file="${dist.dir}/${release.robot.python.name}"/>
    <zip destfile="${dist.dir}/${release.robot.python.name}">
      <zipfileset dir="${src.dir}/python/api" includes="**/*.py"/>
      <zipfileset dir="${basedir}" includes="COPYING"/>
    </zip>
  </target>

  <!--=====
      Other
      ======-->

  <!-- TODO: move notices/licenses as required? -->
  <!-- TODO: checksums? Most of these could be intercepted during download! -->
  <target name="get-third-party" depends="init, get-third-party-codegen, get-third-party-runtime, get-third-party-test" description="Download all third party dependencies">
  </target>

  <target name="get-third-party-codegen" description="Download code generating third party dependencies">
    <get dest="${lib.codegen}" usetimestamp="true" skipexisting="true">
      <url url="http://www.antlr3.org/download/antlr-3.2.jar" />
      <url url="http://central.maven.org/maven2/com/google/gwt/gwt-dev/2.6.1/gwt-dev-2.6.1.jar" />
      <url url="http://central.maven.org/maven2/com/google/gwt/gwt-user/2.6.1/gwt-user-2.6.1.jar" />
      <url url="http://central.maven.org/maven2/com/google/gwt/gwt-codeserver/2.6.1/gwt-codeserver-2.6.1.jar" />
      <url url="http://repo1.maven.org/maven2/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar" />
      <url url="http://repo1.maven.org/maven2/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final-sources.jar" />
      <url url="https://archive.apache.org/dist/velocity/engine/1.6.3/velocity-1.6.3.jar" />
      <url url="https://archive.apache.org/dist/velocity/engine/1.6.3/velocity-1.6.3-dep.jar" />
    </get>
  </target>

  <target name="get-jetty-dep" description="Download run time third party dependencies">
	<get dest="${lib.runtime}" usetimestamp="true" skipexisting="true">
	  <url url="https://olex-secure.openlogic.com/content/openlogic/jetty/9.1.1/jetty-distribution-9.1.1.v20140108.zip" />
	</get>
	<unzip src="${lib.runtime}/jetty-distribution-9.1.1.v20140108.zip" dest="${lib.runtime}">
	  <patternset>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-client-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-annotations-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-continuation-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-http-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-io-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-proxy-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-security-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-server-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-servlet-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-servlets-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-util-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-webapp-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/jetty-xml-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/servlet-api-3.1.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/websocket/websocket-api-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/websocket/websocket-client-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/websocket/websocket-common-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/websocket/websocket-server-9.1.1.v20140108.jar"/>
        <include name="jetty-distribution-9.1.1.v20140108/lib/websocket/websocket-servlet-9.1.1.v20140108.jar"/>
      </patternset>
	  <mapper type="flatten"/>
    </unzip>
  </target>

  <target name="get-atmosphere-dep" description="Download atmosphere framework runtime, java and javascript dependencies">
    <get dest="${lib.runtime}" usetimestamp="true" skipexisting="true">
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/org/atmosphere/atmosphere-runtime/2.1.0/atmosphere-runtime-2.1.0.jar" />
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/org/atmosphere/atmosphere-guice/0.8.3/atmosphere-guice-0.8.3.jar" />
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/eu/infomas/annotation-detector/3.0.0/annotation-detector-3.0.0.jar" />
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/org/slf4j/slf4j-simple/1.6.1/slf4j-simple-1.6.1.jar" />
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" />
      <url url="https://oss.sonatype.org/service/local/repositories/releases/content/org/atmosphere/client/javascript/2.1.5/javascript-2.1.5.war"  />
    </get>
    <!-- Add Atmosphere Framework javascript client to the server classpath  -->
    <unzip src="${lib.runtime}/javascript-2.1.5.war" dest="${lib.runtime}/javascript-2.1.5" >
     <patternset>
         <include name="javascript/atmosphere-min.js"/>
         <include name="javascript/atmosphere.js"/>
     </patternset>
    </unzip>
    <copy file="${lib.runtime}/javascript-2.1.5/javascript/atmosphere.js" todir="${src.dir}/org/waveprotocol/box/server/rpc/atmosphere" />
    <copy file="${lib.runtime}/javascript-2.1.5/javascript/atmosphere-min.js" todir="${src.dir}/org/waveprotocol/box/server/rpc/atmosphere" />
  </target>

  <target name="get-third-party-runtime" depends="get-jetty-dep, get-atmosphere-dep" description="Download run time third party dependencies">
    <get dest="${lib.runtime}" usetimestamp="true" skipexisting="true">
      <url url="http://central.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" />
      <url url="http://central.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.45/bcprov-jdk16-1.45.jar" />
      <url url="http://central.maven.org/maven2/commons-fileupload/commons-fileupload/1.2.2/commons-fileupload-1.2.2.jar" />
      <url url="https://archive.apache.org/dist/commons/fileupload/source/commons-fileupload-1.2.2-src.zip" />
      <url url="http://central.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.jar" />
      <url url="http://central.maven.org/maven2/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" />
      <url url="https://archive.apache.org/dist/commons/codec/source/commons-codec-1.4-src.zip" />
      <url url="http://central.maven.org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" />
      <url url="http://central.maven.org/maven2/commons-configuration/commons-configuration/1.6/commons-configuration-1.6.jar" />
      <url url="http://central.maven.org/maven2/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar" />
      <url url="https://archive.apache.org/dist/httpcomponents/commons-httpclient/source/commons-httpclient-3.1-src.zip" />
      <url url="http://central.maven.org/maven2/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" />
      <url url="http://central.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-api.jar" />
      <url url="http://central.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" />
      <url url="http://central.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" />
      <url url="http://central.maven.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" />
      <url url="http://central.maven.org/maven2/com/google/guava/guava/15.0/guava-15.0.jar" />
      <url url="http://central.maven.org/maven2/com/google/guava/guava-gwt/15.0/guava-gwt-15.0.jar"/>
      <url url="http://central.maven.org/maven2/com/google/inject/extensions/guice-assistedinject/3.0/guice-assistedinject-3.0.jar" />
      <url url="http://central.maven.org/maven2/com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar" />
      <url url="http://central.maven.org/maven2/com/google/inject/guice/3.0/guice-3.0.jar" />
      <url url="http://central.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar" />
      <url url="http://central.maven.org/maven2/com/google/gxp/google-gxp/0.2.4-beta/google-gxp-0.2.4-beta.jar" />
      <url url="http://people.apache.org/repo/m1-ibiblio-rsync-repository/javax.jdo/jars/jdo2-api-2.2.jar" />
      <url url="http://central.maven.org/maven2/org/jdom/jdom/1.1.3/jdom-1.1.3.jar" />
      <url url="http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar" />

      <url url="http://central.maven.org/maven2/jline/jline/0.9.94/jline-0.9.94.jar" />
      <url url="http://central.maven.org/maven2/joda-time/joda-time/1.6/joda-time-1.6.jar" />
      <url url="http://central.maven.org/maven2/org/apache/lucene/lucene-core/3.5.0/lucene-core-3.5.0.jar" />
      <url url="http://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/2.11.2/mongo-java-driver-2.11.2.jar" />
      <url url="https://oauth.googlecode.com/svn/code/maven/net/oauth/core/oauth-provider/20100527/oauth-provider-20100527-sources.jar" />
      <url url="https://oauth.googlecode.com/svn/code/maven/net/oauth/core/oauth/20100527/oauth-20100527.jar" />
      <url url="https://oauth.googlecode.com/svn/code/maven/net/oauth/core/oauth-provider/20100527/oauth-provider-20100527.jar" />
      <url url="https://oauth.googlecode.com/svn/code/maven/net/oauth/core/oauth-consumer/20100527/oauth-consumer-20100527.jar" />
      <url url="http://central.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar" />
      <url url="https://protobuf-java-format.googlecode.com/files/protobuf-format-java-1.1.jar" />
      <url url="http://central.maven.org/maven2/org/igniterealtime/tinder/1.2.1/tinder-1.2.1.jar" />
      <url url="http://central.maven.org/maven2/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar" />
      <url url="http://central.maven.org/maven2/xpp3/xpp3_xpath/1.1.4c/xpp3_xpath-1.1.4c.jar" />
      <url url="http://repo1.maven.org/maven2/org/gnu/inet/libidn/1.15/libidn-1.15.jar" />
      <url url="http://archiva.comunes.org/repository/comunes-snapshots/cc/kune/gwt-initials-avatars-shared/1.0-SNAPSHOT/gwt-initials-avatars-shared-1.0-20140324.102812-16.jar" />
      <url url="http://archiva.comunes.org/repository/comunes-snapshots/cc/kune/gwt-initials-avatars-shared/1.0-SNAPSHOT/gwt-initials-avatars-shared-1.0-20140324.102812-16-sources.jar" />
      <url url="http://archiva.comunes.org/repository/comunes-snapshots/cc/kune/gwt-initials-avatars-server/1.0-SNAPSHOT/gwt-initials-avatars-server-1.0-20140324.102825-10.jar" />
    </get>
    <get dest="${lib.runtime}/whack_1_0_0.zip" usetimestamp="true" skipexisting="true">
      <url url="http://www.igniterealtime.org/downloadServlet?filename=whack/whack_1_0_0.zip" />
    </get>
    <unzip src="${lib.runtime}/whack_1_0_0.zip" dest="${lib.runtime}">
      <patternset>
        <include name="whack_1_0_0/whack.jar" />
      </patternset>
      <mapper type="flatten"/>
    </unzip>
  </target>

  <target name="get-third-party-test" description="Download testing third party dependencies">
    <get dest="${lib.test}" usetimestamp="true" skipexisting="true">
      <url url="http://central.maven.org/maven2/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar" />
      <url url="http://download.forge.objectweb.org/asm/asm-3.2.jar" />
      <url url="http://central.maven.org/maven2/cglib/cglib/2.2/cglib-2.2.jar" />
      <url url="http://central.maven.org/maven2/emma/emma/2.0.5312/emma-2.0.5312.jar" />
      <url url="http://central.maven.org/maven2/emma/emma_ant/2.1.5320/emma_ant-2.1.5320.jar" />
      <url url="https://hamcrest.googlecode.com/files/hamcrest-all-1.2.jar" />
      <url url="http://central.maven.org/maven2/org/jmock/jmock-junit3/2.6.0/jmock-junit3-2.6.0.jar" />
      <url url="http://central.maven.org/maven2/org/jmock/jmock/2.6.0/jmock-2.6.0.jar" />
      <url url="http://central.maven.org/maven2/junit/junit/4.10/junit-4.10.jar" />
      <url url="http://central.maven.org/maven2/org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar" />
    </get>
  </target>

  <target name="get-third-party-release-dep" depends="init" description="Download release tool third party dependencies">
    <get dest="${lib.release}" usetimestamp="true" skipexisting="true">
      <url url="http://apache.spd.co.il/creadur/apache-rat-0.10/apache-rat-0.10-bin.zip" />
    </get>
    <unzip src="${lib.release}/apache-rat-0.10-bin.zip" dest="${lib.release}">
      <patternset>
        <include name="apache-rat-0.10/apache-rat-0.10.jar"/>
      </patternset>
      <mapper type="flatten"/>
    </unzip>
  </target>

  <target name="get-third-party-solr-dep" depends="init" description="Download Solr third party dependencies.">
    <get dest="${lib.solr}" usetimestamp="true" skipexisting="true">
      <url url="http://apache.spd.co.il/lucene/solr/4.9.0/solr-4.9.0.zip" />
    </get>
    <unzip src="${lib.solr}/solr-4.9.0.zip" dest="${lib.solr}">
      <patternset>
        <include name="solr-4.9.0/example/"/>
      </patternset>
    </unzip>
  </target>

  <target name="audit-licenses" depends="get-third-party-release-dep" description="Run the Apache Rat - release audit tool.">
    <taskdef resource="org/apache/rat/anttasks/antlib.xml">
        <classpath>
          <pathelement location="${lib.release}/apache-rat-0.10.jar"/>
        </classpath>
    </taskdef>
    <report>
      <fileset dir="src"/>
     </report>
  </target>

  <target name="doc" depends="stage" description="Builds the Java documentation for the mode, protocol, and Wave in a Box">
    <javadoc sourcepath="${src.dir}" destdir="${docs.dir}" linksource="yes" author="yes" protected="yes"
        windowtitle="${ant.project.name} Documentation">
      <classpath>
        <pathelement location="${staging.dir}" />
        <path refid="libpath"/>
        <path location="${build.proto.dir}"/>
      </classpath>
      <doctitle>${ant.project.name}</doctitle>
      <footer>&lt;a href="http://www.waveprotocol.org/"&gt;Wave Project&lt;a/&gt;</footer>
    </javadoc>
  </target>
</project>
