<!--
 * 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: anorth@google.com (Alex North)
 -->
<project name="macros">
  <!-- Macro which compiles a set of PST message templates -->
  <macrodef name="pstmessage">
    <attribute name="proto" description="Protocol buffer class file"/>
    <sequential>
      <runpst proto="@{proto}"
        templates='"${src.dir}/org/waveprotocol/pst/templates/api/api.st"
                   "${src.dir}/org/waveprotocol/pst/templates/builder/builder.st"
                   "${src.dir}/org/waveprotocol/pst/templates/pojo/pojo.st"
                   "${src.dir}/org/waveprotocol/pst/templates/jso/jso.st"
                   "${src.dir}/org/waveprotocol/pst/templates/util/util.st"
                   "${src.dir}/org/waveprotocol/pst/templates/gson/gson.st"
                   "${src.dir}/org/waveprotocol/pst/templates/proto/proto.st"'
        outputdir="${gen.dir}/messages"/>
    </sequential>
  </macrodef>

  <!-- Macro which runs the PST compiler.
       Don't use this directly, use pstmessage. -->
  <macrodef name="runpst">
    <attribute name="proto" description="Protocol buffer class file"/>
    <attribute name="templates" description="Template files"/>
    <attribute name="outputdir" description="Output directory"/>
    <sequential>
      <java failonerror="true" fork="true" classname="org.waveprotocol.pst.PstMain">
        <classpath>
          <path refid="libpath"/>
          <path location="${dist.dir}/pst.jar"/>
          <path location="${build.proto.dir}"/>
          <fileset dir="${lib.codegen}">
            <include name="*/*.jar"/>
          </fileset>
        </classpath>
        <arg line="-s pst"/>
        <arg value="-d"/><arg value="@{outputdir}"/>
        <arg value="-f"/><arg value="@{proto}"/>
        <arg line="@{templates}"/>
      </java>
    </sequential>
  </macrodef>

  <!-- Macro which builds a collection of sources -->
  <macrodef name="buildjava">
    <attribute name="srcpattern" description="Pattern id describing files to build"
        default="default-src-pattern"/>
    <!--attribute name="srcdir" description="Source root directory"/-->
    <attribute name="destdir" description="Build root directory"/>
    <element name="javac-elements" description="Extra elements to pass to javac" implicit="true"/>
    <sequential>
      <patternset id="default-src-pattern">
        <include name="**/*.java"/>
      </patternset>
      <javac destdir="@{destdir}" debug="true">
        <exclude name="org/waveprotocol/pst/**"/>
        <patternset refid="@{srcpattern}"/>
        <compilerarg value="-Xlint:all"/>
        <compilerarg value="-Xlint:-serial"/>
        <!-- Deprecation warnings are generated for .class files for some
             compilers, e.g. org.hamcrest.Matcher -> org.hamcrest.BaseMatcher. -->
        <compilerarg value="-Xlint:-deprecation"/>
        <compilerarg value="-Werror"/>
        <javac-elements/>
      </javac>
    </sequential>
  </macrodef>

  <!-- TODO(akaplanov): remove this and use buildjava after protobuf issue
       https://code.google.com/p/protobuf/issues/detail?id=323 will be fixed -->
  <macrodef name="buildproto">
    <attribute name="srcpattern" description="Pattern id describing files to build"
        default="default-src-pattern"/>
    <!--attribute name="srcdir" description="Source root directory"/-->
    <attribute name="destdir" description="Build root directory"/>
    <element name="javac-elements" description="Extra elements to pass to javac" implicit="true"/>
    <sequential>
      <patternset id="default-src-pattern">
        <include name="**/*.java"/>
      </patternset>
      <javac destdir="@{destdir}" debug="true">
        <exclude name="org/waveprotocol/pst/**"/>
        <patternset refid="@{srcpattern}"/>
        <compilerarg value="-Xlint:none"/>
        <javac-elements/>
      </javac>
    </sequential>
  </macrodef>
  
  <!-- Macro which packages class and source files into jars -->
  <macrodef name="distlib">
    <attribute name="srcpattern" description="Pattern id describing files to package"/>
    <attribute name="libname" description="Name prefix for the jars"/>
    <sequential>
      <jar destfile="${dist.dir}/@{libname}.jar" basedir="${build.src.dir}">
        <patternset refid="@{srcpattern}"/>
      </jar>
      <jar destfile="${dist.dir}/@{libname}-src.jar" basedir="${src.dir}">
        <patternset refid="@{srcpattern}"/>
        <patternset>
          <exclude name="**/build.xml"/>
        </patternset>
      </jar>
    </sequential>
  </macrodef>

  <!-- Macro which runs unit tests with JUnit -->
  <macrodef name="runtests">
    <attribute name="forkmode" description="How to fork the JVM for each test/batch"/>
    <attribute name="coverage" description="Whether to calculate coverage with EMMA"/>
    <element name="tests" description="Fileset describing tests to run" implicit="true"/>
    <sequential>
      <delete dir="${test.out.dir}"/>
      <mkdir dir="${test.out.dir}"/>

      <!-- Add instrumentation code -->
      <emma enabled="@{coverage}">
        <instr instrpath="${build.src.dir}" destdir="${coverage.dir}"
          metadatafile="${coverage.dir}/metadata.emma" mode="copy"/>
      </emma>

      <junit fork="yes" forkmode="@{forkmode}" printsummary="yes"
          showoutput="no" haltonfailure="no" failureProperty="test.failed">
        <jvmarg value="-Xmx512M"/>
	<jvmarg value="-XX:-UseSplitVerifier"/>
        <jvmarg value="-ea"/>
        <!-- Emma arguments -->
        <jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma" />
        <jvmarg value="-Demma.coverage.out.merge=true" />

        <!-- This classpath includes src folders for the gwt.xml files -->
        <classpath>
          <path location="${coverage.dir}"/>
          <path location="${build.proto.dir}"/>
          <path location="${build.messages.dir}"/>
          <path location="${build.src.dir}"/>
          <path location="${build.test.dir}"/>
          <path location="${src.dir}"/>
          <path location="${test.dir}"/>
          <path refid="libpath"/>
          <path refid="test.libpath"/>
        </classpath>

        <!-- Set formatter so that the output is saved in xml files -->
        <formatter type="xml"/>

        <batchtest todir="${test.out.dir}">
          <tests/>
        </batchtest>
      </junit>

      <!-- Parses the xml files previously saved into readable HTML -->
      <junitreport todir="${test.out.dir}">
        <fileset dir="${test.out.dir}">
          <include name="TEST*.xml"/> 
        </fileset>
        <report format="frames" todir="${test.out.dir}"/>
      </junitreport>

      <!-- Generates the Emma Report -->
      <emma enabled="@{coverage}">
        <report sourcepath="${src.dir}" depth="method">
          <fileset dir="${coverage.dir}" >
            <include name="*.emma" />
          </fileset>
          <html outfile="${coverage.dir}/coverage.html" />
        </report>
      </emma>

      <echo>Test results: file://${test.out.dir}/index.html</echo>
      <echo>Coverage results: file://${coverage.dir}/coverage.html</echo>
      <fail message="Tests failed. Check log and/or reports: ${test.out.dir}/index.html" if="test.failed"/>
    </sequential>
  </macrodef>

  <target name="define-gxpc" depends="get-third-party-runtime">
    <!-- Task which compiles GXP templates -->
    <taskdef name="gxpc" classname="com.google.gxp.compiler.ant.GxpcTask"
      classpath="${lib.runtime}/google-gxp-0.2.4-beta.jar" />
  </target>
</project>
