<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 1997, 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

-->

<project name="GlassFish-V3-CommunityTests" default="default" basedir=".">
    <property file="build.properties"/>
     <property file="${basedir}/gfproject/derby.properties"/>
     <import file="${basedir}/gfproject/db-targets.xml"/>

    <description>Builds, tests, and runs the project V3 Quicklook</description>
    <target name="all" depends="clean">
        <record name="allrun.output" action="start"/>
    <!-- resolveArtifact artifactId="testng" property="testng.jar"/>
        <echo message="testng jar value: ${testng.jar}"/ -->
        <!-- antcall target="setup.toplink"/ -->
        <antcall target="start-server"/>
        <antcall target="startDerby"/>
        <antcall target="build"/>
        <antcall target="deploy"/>
        <antcall target="runtest"/>
        <antcall target="undeploy"/>
        <antcall target="stop-server"/>
        <antcall target="stopDerby"/>
        <!-- antcall target="report"/ -->
        <record name="allrun.output" action="stop"/>
    </target>

    <!-- <import file="nbproject/build-impl.xml"/>-->

    <target name="copyJARS">
        <echo message="Copying testng.jar to ${ant.home}/lib"/>
        <copy todir="${ant.home}/lib" verbose="true">
            <fileset dir="${basedir}/lib">
                <include name="**/testng*.*"/>
            </fileset>
        </copy>
    </target>
    <target name="default">
        <echo message="ANT.HOME is ${ant.home}"/>
        <antcall target="copyJARS"/>
        <echo message="ant build (Compiles and Packages testsuites)"/>
        <echo message="ant deploy (Deploys test to GlassFish server)"/>
        <echo message="ant compile-tests (Compiles TestNG test)"/>
        <echo message="ant runtest (Runs TestNG test)"/>
        <echo message="ant report (Creates TestNG Report)"/>
        <echo message="ant archive (Creates zip of testbase}"/>
        <echo message=""/>
    </target>

    <target name="build">
        <record name="build.output" action="start"/>
        <echo message="ANT PROJECT ${ant.project.name}"/>
        <ant dir="web/helloworld" target="build"/>
        <ant dir="web/jsfastrologer" target="build"/>
        <ant dir="web/jsfinjection" target="build"/>
        <ant dir="jdbc/jdbcusertx" target="build"/>
        <!-- ant dir="web/strutsbasic" target="build"/ -->
        <!-- ant dir="persistence/servlet-jpa-app" target="build"/ -->
        <!--<ant dir="ejb30/hello" target="build"/>
        <ant dir="adminweb/basic" target="build"/>-->
        <record name="build.output" action="stop"/>
    </target>


    <target name="compile-tests">
        <record name="compiletests.output" action="start"/>
        <ant dir="web/helloworld" target="compile-tests"/>
        <ant dir="web/jsfastrologer" target="compile-tests"/>
        <ant dir="web/jsfinjection" target="compile-tests"/>
        <ant dir="jdbc/jdbcusertx" target="compile-tests"/>
        <!-- ant dir="web/strutsbasic" target="compile-tests"/ -->
        <!-- ant dir="persistence/servlet-jpa-app" target="compile-tests"/ -->
        <record name="compiletests.output" action="stop"/>
    </target>

    <target name="deploy">
        <record name="deploy.output" action="start"/>
        <ant dir="web/helloworld" target="deploy"/>
        <ant dir="web/jsfastrologer" target="deploy"/>
        <ant dir="web/jsfinjection" target="deploy"/>
        <ant dir="jdbc/jdbcusertx" target="deploy"/>
        <!-- ant dir="web/strutsbasic" target="deploy"/ -->
        <!-- ant dir="persistence/servlet-jpa-app" target="deploy"/ -->
        <record name="deploy.output" action="stop"/>
    </target>

    <target name="undeploy">
        <record name="undeploy.output" action="start"/>
        <ant dir="web/helloworld" target="undeploy"/>
        <ant dir="web/jsfastrologer" target="undeploy"/>
        <ant dir="web/jsfinjection" target="undeploy"/>
        <ant dir="jdbc/jdbcusertx" target="undeploy"/>
        <!-- ant dir="web/strutsbasic" target="undeploy"/ -->
        <!-- ant dir="persistence/servlet-jpa-app" target="undeploy"/ -->
        <record name="undeploy.output" action="stop"/>
    </target>

    <target name="noproject">
        <delete includeemptydirs="true">
        <fileset dir="${basedir}">
            <include name="**/nbproject"/>
        </fileset>
    </delete>
    </target>


    <!-- Target is re-definted here as didn't want to specify ws.root property -->
    <target name="clean">
        <delete dir="${basedir}/classes"/>
    <delete verbose="true" includeemptydirs="true">
        <fileset dir="${basedir}" includes="**/classes"/>
    </delete>
        <delete dir="${basedir}/test-output" includeemptydirs="true"/>
        <delete dir="${basedir}/dist" includeemptydirs="true"/>
    <delete includeemptydirs="true">
        <fileset dir="${basedir}">
            <include name="**/*.output"/>
            <include name="**/*.log"/>
        </fileset>
    </delete>
        <delete>
            <fileset dir="${basedir}" includes="*.zip"/>
        </delete>
        <echo message="Deleting all WAR/EAR in local testsuite directories!!!"/>
        <echo message="There should not be any WAR file checked in."/>
        <delete>
            <fileset dir="." includes="**/*.war"/>
        </delete>
    </target>


    <target name="-post-test-run">
        <loadfile property="startserver.log" srcFile="${glassfish.home}/domains/domain1/logs/server.log"/>
        <echo message="${startserver.log}"/>
    </target>

    <path id="path2testng">
        <pathelement location="./lib/testng-5.0-jdk15.jar"/>
    </path>

    <taskdef name="testng" classname="org.testng.TestNGAntTask">
        <classpath>
        <pathelement path="${plugin_classpath}"/>
        </classpath>
    </taskdef>

    <!-- Target is re-definted here as didn't want to specify ws.root property -->
    <target  name="runtest" depends="compile-tests,initprops">
        <record name="runtestng.output" action="start"/>
        <echo message="=============Starting TestNG functional tests from testng.xml ============"/>
        <property name="hasTestNGXML" value="true"/>

        <mkdir dir="${test.report}"/>
        <testng outputdir="${test.report}"
                classpathref="run.testng.classpath">
            <jvmarg value="-Djava.compiler=NONE"/>
            <jvmarg value="-Dhttp.host=${glassfish.http.host}"/>
            <jvmarg value="-Dhttp.port=${glassfish.http.port}"/>
            <sysproperty key="basedir" value="${basedir}"/>
            <!--<classfileset dir="classes/test" includes="**/SeleniumTest.class"/>-->
            <xmlfileset dir="." includes="testng.xml"/>

        </testng>

        <record name="runtestng.output" action="stop"/>


        <!-- <antcall target="-post-test-run"/>-->

    </target>


    <!-- Generate the TestNG report -->
    <target name="report" depends="initprops">
        <echo message="Generating report at ${test.report}"/>
        <junitreport todir="${test.report}">
            <fileset dir=".">
                <include name="**/test-output/**/*.xml"/>
                <!--<exclude name="**/testng-failed.xml"/>-->
            </fileset>
            <report format="noframes" todir="${test.report}"/>
        </junitreport>
        <echo message="Test Report available at ${test.report}/index.html"/>
    </target>

    <target name="initprops">
        <property name="build.class.dir" value="${basedir}/classes/test"/>
        <property name="test.report" value="${basedir}/test-output"/>
        <mkdir dir="${test.report}"/>
        <path id="run.testng.classpath">
            <!-- fileset dir="${basedir}/lib">
                <include name="**/*.jar"/>
            </fileset -->
        <pathelement path="${plugin_classpath}"/>
            <pathelement location="${build.class.dir}"/>
        </path>
    </target>


    <target name="archive" depends="initprops,clean">
        <tstamp>
            <!--<format property="TODAY_UK" pattern="d-MMMM-yyyy" locale="en,UK"/>-->
        </tstamp>
        <property name="final.src.name" value="glassfish_testng_${DSTAMP}.zip"/>
        <delete>
            <fileset dir="${basedir}" includes="*.zip"/>
        </delete>
        <delete file="{final.src.name}" failonerror="false"/>

        <zip zipfile="${final.src.name}" basedir=".">

            <exclude name="${test.report}/**"/>
            <exclude name="${build.class.dir}/**"/>
            <exclude name="**/*.log"/>
            <exclude name="**/*.output"/>
            <exclude name="**/*.war"/>
            <exclude name="**/*.class"/>
            <exclude name="**/CVS"/>
            <exclude name="**/nbproject"/>

        </zip>

    </target>

<target name="setOSConditions">
  <condition property="isUnix">
    <os family="unix"/>
  </condition>
  <condition property="isWindows">
    <os family="windows" />
  </condition>
</target>

<target name="start-server" depends="setOSConditions" if="v3">

    <echo>+-----------------------------+</echo>
    <echo>|                             |</echo>
    <echo>| S T A R T I N G   GLASSFISH |</echo>
    <echo>|                             |</echo>
    <echo>+-----------------------------+</echo>

    <antcall target="start-server-unix"/>
    <antcall target="start-server-windows"/>
</target>

<target name="start-server-windows" if="isWindows">
    <exec executable="cmd" spawn="true">
        <arg value="/c"/>
        <arg value="${glassfish.home}/bin/asadmin.bat"/>
        <arg value="start-domain"/>
    </exec>
</target>

<target name="start-server-unix" if="isUnix">
    <exec executable="${glassfish.home}/bin/asadmin">
        <arg value="start-domain"/>
    </exec>
</target>

<target name="stop-server" depends="setOSConditions">
    <echo message="stopping server"/>
    <antcall target="stop-server-unix"/>
    <antcall target="stop-server-windows"/>
</target>

<target name="stop-server-windows" if="isWindows">
     <exec executable="cmd">
         <arg value="/c"/>
         <arg value="${glassfish.home}/bin/asadmin.bat"/>
         <arg value="stop-domain"/>
     </exec>
</target>

<target name="stop-server-unix" if="isUnix">
     <exec executable="${glassfish.home}/bin/asadmin">
        <arg value="stop-domain"/>
    </exec>
</target>

</project>
