<!--

    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" 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="25"/>
        <arg value="${env.APS_HOME}/devtests/lazyInit/count.txt"/>
    </java>
</target>

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