<!--

    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<property name="stylesheet" value="${env.APS_HOME}/config/j2eeReporter.xsl" />
<property name="xmlfile" value="${env.APS_HOME}/test_resultsValid.xml" />
<property name="htmlfile" value="${env.APS_HOME}/test_results.html" />

<target name="report">
<echo message="Comparing results with expected results"/>

 
    <xslt style="${stylesheet}"
            in="${xmlfile}" out="${htmlfile}"
            basedir="." destdir="." />
    <antcall target="report-sh"/>
    <!--
    <ant dir="${env.APS_HOME}/util/filediff" target="modifyReport"/>
    -->
</target>

<target name="report-sh">
<antcall target="pecount"/>
<antcall target="eecount"/>
</target>

<target name="pecount" unless="ee">
    <exec executable="sh">
        <arg value="config/resultCount.sh"/>
    </exec>
</target>
<target name="eecount" if="ee">
    <exec executable="sh">
        <arg value="eeconfig/eeresultCount.sh"/>
    </exec>
</target>

<target name="create-report">
<echo message="Comparing results with expected results"/>
    <xslt style="${stylesheet}"
            in="${xmlfile}" out="${htmlfile}"
            basedir="." destdir="." />
    <!-- antcall target="report-java"/ -->
</target>

<target name="report-java">
<antcall target="pecount-java"/>
<antcall target="eecount-java"/>
</target>

<target name="compile-report">
  <antcall target="compile-common">
       <param name="src" value="${env.APS_HOME}/util/results"/>
  </antcall>
</target>

<target name="pecount-java" depends="init-common,compile-report" unless="ee">
    <java classname="ResultsProducer" fork="true" failonerror="true" maxmemory="128M" classpath="${build.classes.dir}">
        <arg value="${env.APS_HOME}/test_resultsValid.xml"/>
        <arg value="69"/>
        <arg value="${env.APS_HOME}/count.txt"/>
    </java>
</target>

<target name="eecount-java" depends="init-common,compile-report" if="ee">
    <java classname="ResultsProducer" fork="true" failonerror="true" maxmemory="128M" classpath="${build.classes.dir}">
        <arg value="${env.APS_HOME}/test_resultsValid.xml"/>
        <arg value="69"/>
        <arg value="${env.APS_HOME}/count.txt"/>
    </java>
</target>
