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

    Copyright (c) 1997, 2021 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-QuickLook" default="all" basedir=".">
    <property environment="env" />

    <property file="build.properties" />
    <property file="${basedir}/gfproject/derby.properties" />
    <import file="${basedir}/gfproject/db-targets.xml" />
    <import file="${basedir}/gfproject/utils.xml" />

    <description>Builds, tests, and runs the project Quicklook</description>


    <target name="initprops">
        <property name="build.class.dir" value="${basedir}/classes/test" />
        <property name="Java_SE" value="${basedir}/classes/EJB_remoteview/app" />
        <property name="test.report" value="${basedir}/test-output" />

        <mkdir dir="${test.report}" />

        <path id="junit.path">
            <pathelement path="${plugin_classpath}" />
        </path>

        <typedef name="junitreport" classname="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator" classpathref="junit.path" />

        <path id="run.testng.classpath">
            <fileset dir="${glassfish.home}/modules">
                <include name="**/hk2*.jar" />
                <include name="**/glassfish-api.jar" />
                <include name="**/amx-core.jar" />
                <include name="**/amx-javaee.jar" />
                <include name="**/management-api.jar" />
            </fileset>
            <fileset dir="${glassfish.home}/lib">
                <include name="**/gf-client.jar" />
            </fileset>
            <pathelement path="${plugin_classpath}" />
            <pathelement location="${Java_SE}" />
            <pathelement location="${build.class.dir}" />
        </path>

        <path id="embedded.testng.classpath">
            <fileset dir="${glassfish.home}/lib/embedded">
                <include name="**/glassfish-embedded-static-shell.jar" />
            </fileset>
            <pathelement location="${build.class.dir}" />
            <pathelement location="${build.class.dir}/../EJB_Embedded/app" />
        </path>
    </target>

    <target name="all_cluster">
        <record name="${basedir}/allrun.output" action="start" />
        <antcall target="start-server-felix" />
        <antcall target="build-cluster" />
        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_cluster.xml" />
        </antcall>
        <antcall target="stop-server" />
        <antcall target="testng-summary" />
        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <target name="all_embedded">
        <record name="${basedir}/embeddedrun.output" action="start" />
        <ant dir="ejb/embedded" target="build" />
        <antcall target="runtest-embedded">
            <param name="testng.xml" value="testng/testng_em.xml" />
        </antcall>
        <record name="${basedir}/embeddedrun.output" action="stop" />
    </target>

    <target name="build-cluster">
        <ant dir="cluster/clustersetup" target="build" />
        <ant dir="cluster/helloworld" target="build" />
        <ant dir="cluster/clusterteardown" target="build" />
    </target>

    <!-- target name="all_wd" depends="clean" -->
    <target name="all_wd">
        <record name="${basedir}/allrun.output" action="start" />

        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|            all_wd           |</echo>
        <echo>|                             |</echo>
        <echo>+-----------------------------+</echo>

        <property name="env.security_manager" value="OFF" />
        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="start-server-felix" />
        <antcall target="build-deploy" />

        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_wd.xml" />
        </antcall>

        <antcall target="undeploy" />
        <antcall target="quicklook-summary_wd" />
        <antcall target="stop-server" />
        <antcall target="stop-derby" />
        <copy file="test-output/emailable-report.html" tofile="test-output/QL-WP-report.html" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary_wd" />

        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <target name="all_wd_security">
        <record name="${basedir}/allrun.output" action="start" />

        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|       all_wd_security       |</echo>
        <echo>|                             |</echo>
        <echo>+-----------------------------+</echo>

        <antcall target="add-quicklook-policy-grants" />
        <property name="env.security_manager" value="ON" />

        <antcall target="start_server_with_security_manager_enabled" />
        <antcall target="build-deploy" />

        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_wd.xml" />
        </antcall>

        <antcall target="undeploy" />
        <antcall target="quicklook-summary_wd" />

        <antcall target="remove-quicklook-policy-grants" />
        <antcall target="stop_server_with_security_manager_enabled" />

        <copy file="test-output/emailable-report.html" tofile="test-output/QL-WP-report.html" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary_wd" />
        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <!-- Target for testing glassfish distribution (containing EJB)  -->
    <target name="all" depends="clean">
        <record name="${basedir}/allrun.output" action="start" />


        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|             all             |</echo>
        <echo>|                             |</echo>
        <echo>+-----------------------------+</echo>

        <property name="env.security_manager" value="OFF" />
        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="start-server-felix" />
        <antcall target="build-deploy-gd" />
        <antcall target="build-deploy" />
        <antcall target="build-cluster" />

        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_gd.xml" />
        </antcall>

        <antcall target="undeploy" />
        <antcall target="undeploy-gd" />
        <antcall target="quicklook-summary" />
        <antcall target="stop-server" />
        <antcall target="stop-derby" />
        <copy file="test-output/emailable-report.html" tofile="test-output/QL-GP-report.html" failonerror="false" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary" />
        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <!-- Target for testing glassfish distribution (containing EJB)  -->
    <target name="all_ri" depends="clean">
        <record name="${basedir}/allrun.output" action="start" />


        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|            all_ri           |</echo>
        <echo>|                             |</echo>
        <echo>+-----------------------------+</echo>

        <property name="env.security_manager" value="OFF" />
        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="start-server-felix" />
        <antcall target="build-deploy" />
        <antcall target="build-deploy-gd" />

        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_ri.xml" />
        </antcall>

        <antcall target="undeploy" />
        <antcall target="undeploy-gd" />
        <antcall target="quicklook-summary" />
        <antcall target="stop-server" />
        <antcall target="stop-derby" />
        <copy file="test-output/emailable-report.html" tofile="test-output/QL-GP-report.html" failonerror="false" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary" />

        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <!-- Target for testing glassfish distribution (GD) (containing EJB)  -->
    <target name="all_gd_security" depends="clean">
        <record name="${basedir}/allrun.output" action="start" />


        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|       all_gd_security       |</echo>
        <echo>|     glassfish distribution  |</echo>
        <echo>+-----------------------------+</echo>


        <antcall target="add-quicklook-policy-grants" />
        <property name="env.security_manager" value="ON" />
        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="start-server-felix" />
        <antcall target="enable-security-manager" />
        <antcall target="stop-server" />
        <antcall target="start-server-felix" />
        <antcall target="build-deploy" />
        <antcall target="build-deploy-gd" />

        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_gd.xml" />
        </antcall>

        <antcall target="undeploy" />
        <antcall target="undeploy-gd" />
        <antcall target="quicklook-summary" />
        <antcall target="remove-quicklook-policy-grants" />
        <antcall target="disable-security-manager" />
        <antcall target="stop-server" />
        <antcall target="stop-derby" />
        <copy file="test-output/emailable-report.html" tofile="test-output/QL-GP-report.html" failonerror="false" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary" />
        <record name="${basedir}/allrun.output" action="stop" />
    </target>

    <!-- Target for testing glassfish distribution (containing EJB)  -->
    <target name="dev_debug" depends="clean">
        <record name="${basedir}/allrun.output" action="start" />

        <echo>+-----------------------------+</echo>
        <echo>|                             |</echo>
        <echo>|        R u n n i n g        |</echo>
        <echo>|           dev_debug         |</echo>
        <echo>|     glassfish distribution  |</echo>
        <echo>+-----------------------------+</echo>

        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="build-deploy" />
        <antcall target="runtest">
            <param name="testng.xml" value="testng/testng_debug.xml" />
        </antcall>
        <antcall target="undeploy" />
        <antcall target="stop-derby" />
        <antcall target="check-logged-messages" />
        <antcall target="testng-summary" />

        <record name="${basedir}/allrun.output" action="stop" />
    </target>



    <!--  S T A R T    S E R V E R  -->


    <target name="start_server_with_security_manager_enabled">
        <property name="env.security_manager" value="ON" />
        <antcall target="verify-xml" />
        <antcall target="start-derby" />
        <antcall target="start-server-felix" />
        <antcall target="enable-security-manager" />
        <antcall target="stop-server" />
        <antcall target="start-server-felix" />
    </target>

    <target name="stop_server_with_security_manager_enabled">
        <property name="env.security_manager" value="ON" />
        <antcall target="disable-security-manager" />
        <antcall target="stop-server" />
        <antcall target="stop-derby" />
    </target>

    <target name="start-server-hk2" depends="setOSConditions">

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

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

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

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

    <target name="start-server-felix" depends="setOSConditions">

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

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

    <target name="start-server-felix-windows" if="isWindows">
        <exec executable="cmd" spawn="true">
            <arg value="/c" />
            <arg value="${glassfish.home}\bin\asadmin.bat" />
            <arg value="start-domain" />
            <arg value="domain1" />
        </exec>
        <waitfor maxwait="30" maxwaitunit="second" checkevery="500">
            <http url="http://localhost:4848/" />
        </waitfor>
    </target>

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



    <!--  B U I L D  &  D E P L O Y    T E S T    A R C H I V E S  -->

    <target name="build-deploy">
        <record name="${basedir}/build.output" action="start" />
        <echo message="ANT PROJECT ${ant.project.name}" />

        <run-quicklook-test path="amx" target="build" />
        <run-quicklook-test path="admin" target="build" />
        <run-quicklook-test path="admincli" target="build" />
        <run-quicklook-test path="adminconsole" target="build" />
        <run-quicklook-test path="rest" target="build" />
        <!--<run-quicklook-test path="osgitest/basicosgi" target="build"/>-->
        <run-quicklook-test path="web/helloworld" target="build-deploy" />
        <run-quicklook-test path="web/jsfastrologer" target="build-deploy" />
        <run-quicklook-test path="web/jsfinjection" target="build-deploy" />
        <run-quicklook-test path="jdbc/jdbcusertx" target="build-deploy" />
        <run-quicklook-test path="persistence/jpainjectemf" target="build-deploy" />
        <run-quicklook-test path="persistence/jpavalidation" target="build-deploy" />
        <run-quicklook-test path="security/helloworld" target="build-deploy" />
        <run-quicklook-test path="security/basicauth" target="build-deploy" />
        <run-quicklook-test path="ejb/slsbnicmt" target="build-deploy" />
        <run-quicklook-test path="ejb/sfulnoi" target="build-deploy" />
        <run-quicklook-test path="bean-validator/simple-bv-servlet" target="build-deploy" />
        <run-quicklook-test path="weld/numberguess" target="build-deploy" />
        <run-quicklook-test path="weld/osgiweld" target="build-deploy" />
        <run-quicklook-test path="weld/extensions" target="build-deploy" />

        <record name="${basedir}/build.output" action="stop" />
    </target>

    <target name="build-deploy-gd">
        <echo message="Glassfish Distribution Build Deploy" />
        <ant dir="ejb/remoteview" target="build-deploy" />
        <ant dir="ejb/singleton" target="build-deploy" />
        <ant dir="ejb/cmp" target="build-deploy" />
        <ant dir="ejb/mdb" target="build" />
        <ant dir="jms/injection" target="build-deploy" />
        <ant dir="wsit/JaxwsFromWsdl" target="build-deploy" />
        <ant dir="wsit/jsr109tester" target="build-deploy" />
        <ant dir="security/appperms" target="build-deploy" />
    </target>

    <target name="undeploy">
        <record name="${basedir}/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="persistence/jpainjectemf" target="undeploy" />
        <ant dir="persistence/jpavalidation" target="undeploy" />
        <ant dir="security/helloworld" target="undeploy" />
        <ant dir="security/basicauth" target="undeploy" />
        <ant dir="ejb/slsbnicmt" target="undeploy" />
        <ant dir="ejb/sfulnoi" target="undeploy" />
        <ant dir="bean-validator/simple-bv-servlet" target="undeploy" />
        <ant dir="weld/numberguess" target="undeploy" />
        <ant dir="weld/osgiweld" target="undeploy" />
        <ant dir="weld/extensions" target="undeploy" />
        <ant dir="jms/injection" target="undeploy" />
        <record name="${basedir}/undeploy.output" action="stop" />
    </target>



    <!--  R U N    T E S T S -->


    <!-- Target is re-definted here as didn't want to specify ws.root property -->
    <target name="runtest" depends="initprops,setOSConditions,asenv-unix,asenv-windows">
        <record name="${basedir}/runtestng.output" action="start" />

        <echo message="${line.separator}${line.separator}" />
        <echo message="=============================================================================" />
        <echo message="=                                                                           =" />
        <echo message="=         S t a r t i n g   TestNG   f u n c t i o n a l    t e s t s       =" />
        <echo message="=                                                                           =" />
        <echo message="= TEST FILE = ${testng.xml}                                                 =" />
        <echo message="= BASEDIR   = ${basedir}                                                    =" />
        <echo message="=                                                                           =" />
        <echo message="=============================================================================" />
        <echo message="${line.separator}${line.separator}" />

        <property name="hasTestNGXML" value="true" />
        <loadfile property="tests" srcfile="${testng.xml}">
            <filterchain>
                <linecontainsregexp>
                    <regexp pattern="test name"/>
                </linecontainsregexp>
            </filterchain>
        </loadfile>
        
        <echo message="${line.separator}${line.separator}" />
        <echo message="=============================================================================" />
        <echo message="=  R u n n i n g   t h e   f o l l o w i n g    t e s t s:                  =" />
        <echo message="= From TEST FILE = ${testng.xml}                                                 =" />
        <echo message="${tests}" />
        <echo message="=============================================================================" />

        <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}" />
            <jvmarg value="-DASADMIN=${ASADMIN}" />
            <jvmarg value="-DAPPCLIENT=${APPCLIENT}" />
            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" />
            <sysproperty key="glassfish.home" value="${glassfish.home}" />
            <sysproperty key="BASEDIR" value="${basedir}" />
            <xmlfileset dir="." includes="${testng.xml}" />
        </testng>

        <record name="${basedir}/runtestng.output" action="stop" />
    </target>

    <target name="runtest-embedded" depends="initprops">
        <record name="${basedir}/runtestng.output" action="start" />
        <mkdir dir="${test.report}" />
        <testng outputdir="${test.report}" classpathref="embedded.testng.classpath">
            <jvmarg value="-Djava.compiler=NONE" />
            <sysproperty key="glassfish.home" value="${glassfish.home}" />
            <sysproperty key="BASEDIR" value="${basedir}" />
            <xmlfileset dir="." includes="${testng.xml}" />
        </testng>
        <record name="${basedir}/runtestng.output" action="stop" />
    </target>




    <!--  U N D E P L O Y    T E S T    A R C H I V E S  -->

    <target name="undeploy-gd">
        <ant dir="ejb/singleton" target="undeploy" />
        <ant dir="ejb/remoteview" target="undeploy" />
        <ant dir="ejb/cmp" target="undeploy" />
        <!-- <ant dir="wsit/JaxwsFromWsdl" target="undeploy"/>
        <ant dir="wsit/jsr109tester" target="undeploy"/>-->
        <ant dir="security/appperms" target="undeploy" />
    </target>

    <!-- Target is re-defined here as someone 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" />
            </fileset>
        </delete>
    </target>




    <!-- S U M M A R Y -->



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

    <!-- Fail the build unless the expected number of tests has passed -->
    <target name="assert.expected.passed.test.count">
        <taskdef resource="net/sf/antcontrib/antlib.xml">
            <classpath>
                <pathelement location="${maven.repo.local}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar" />
            </classpath>
        </taskdef>

        <if>
            <isset property="expected.passed.test.count" />
            <then>
                <echo>perform the assertion</echo>
                <sequential>
                    <property name="test.report.dir" value="${basedir}/test-output" />
                    <loadfile property="report.summary" srcFile="${test.report.dir}/index.html" />
                    <propertyregex property="actual.passed.test.count" input="${report.summary}" regexp="(?s)(.*)(invocation-passed...td..em.Total./em../td..td..em.)([0-9]{1,6})(.*)" select="\3" />
                    <math result="passed.test.count.difference" datatype="int" operation="subtract" operand1="${actual.passed.test.count}" operand2="${expected.passed.test.count}" />
                    <propertyregex property="actual.lessthan.expected" input="${passed.test.count.difference}" regexp="^-.*" replace="actual.lessthan.expected" />
                    <fail if="actual.lessthan.expected" status="-1" message="
--JOB FAILED!-- Fewer than expected tests passed.  Expected: ${expected.passed.test.count} Actual: ${actual.passed.test.count}" />
                </sequential>
            </then>
        </if>
    </target>

    <!-- added few messages in order to show testng summary of wsit related tests along with final summary as wsit tests are ran seperately as a workaround for GLASSFISH-21672 -->
    <target name="testng-summary">
        <loadfile srcfile="runtestng.output" property="testng_output">
            <filterchain>
                <tailfilter lines="6" />
            </filterchain>
        </loadfile>
        <loadfile srcfile="wsit/JaxwsFromWsdl/wsit1run.output" property="testng1_output">
            <filterchain>
                <tailfilter lines="3" />
            </filterchain>
        </loadfile>
        <loadfile srcfile="wsit/jsr109tester/wsit2run.output" property="testng2_output">
            <filterchain>
                <tailfilter lines="3" />
            </filterchain>
        </loadfile>

        <echo message="              JaxwsFromWsdl Tests" />
        <echo message="${testng1_output}" />
        <echo message="              Jsr109tester Tests" />
        <echo message="${testng2_output}" />
        <echo message="${testng_output}" />
    </target>

    <!-- created new target for web-distribution summary as it is different from glassfish distribution summary-->
    <target name="testng-summary_wd">
        <loadfile srcfile="runtestng.output" property="testng_output">
            <filterchain>
                <tailfilter lines="6" />
            </filterchain>
        </loadfile>
        <echo message="${testng_output}" />
    </target>

    <!-- added few messages in order to show testng summary of wsit related tests along with final summary as wsit tests are ran seperately as a workaround for GLASSFISH-21672 -->
    <target name="quicklook-summary">
        <tstamp>
            <format property="end.timestamp" pattern="EE MM/dd/yyyy HH:mm:ss zz" />
        </tstamp>
        <echo file="quicklook_summary.txt" message="    Test completed: ${end.timestamp} ${line.separator}" />
        <loadfile srcfile="runtestng.output" property="testng_output">
            <filterchain>
                <tailfilter lines="4" skip="1" />
                <tokenfilter>
                    <replacestring from="[testng]" to="" />
                </tokenfilter>
            </filterchain>
        </loadfile>
        <loadfile srcfile="wsit/JaxwsFromWsdl/wsit1run.output" property="testng1_output">
            <filterchain>
                <tailfilter lines="4" skip="1" />
                <tokenfilter>
                    <replacestring from="[testng]" to="" />
                    <replacestring from="QuickLookTests" to="JaxwsFromWsdl Tests" />
                </tokenfilter>
            </filterchain>
        </loadfile>
        <loadfile srcfile="wsit/jsr109tester/wsit2run.output" property="testng2_output">
            <filterchain>
                <tailfilter lines="4" skip="1" />
                <tokenfilter>
                    <replacestring from="[testng]" to="" />
                    <replacestring from="QuickLookTests" to=" Jsr109tester Tests" />
                </tokenfilter>
            </filterchain>
        </loadfile>
        <echo file="quicklook_summary.txt" append="true" message="${testng_output}" />

        <echo file="quicklook_summary.txt" append="true" message="${testng1_output}" />

        <echo file="quicklook_summary.txt" append="true" message="${testng2_output}" />
        <antcall target="build-version" />
        <available file="test-output/emailable-report.html" property="report.present" />
        <antcall target="quicklook-report" />
        <delete file="version.output" />
    </target>

    <target name="quicklook-summary_wd">
        <tstamp>
            <format property="end.timestamp" pattern="EE MM/dd/yyyy HH:mm:ss zz" />
        </tstamp>
        <echo file="quicklook_summary.txt" message="    Test completed: ${end.timestamp} ${line.separator}" />
        <loadfile srcfile="runtestng.output" property="testng_output">
            <filterchain>
                <tailfilter lines="4" skip="1" />
                <tokenfilter>
                    <replacestring from="[testng]" to="" />
                </tokenfilter>
            </filterchain>
        </loadfile>
        <echo file="quicklook_summary.txt" append="true" message="${testng_output}" />
        <antcall target="build-version" />
        <available file="test-output/emailable-report.html" property="report.present" />
        <antcall target="quicklook-report" />
        <delete file="version.output" />
    </target>

    <target name="quicklook-report" if="report.present">
        <loadfile srcfile="version.output" property="build_version">
            <filterchain>
                <headfilter lines="1" />
            </filterchain>
        </loadfile>
        <exec executable="hostname" outputproperty="host.name" />
        <property name="titleTime" value="&lt;H1&gt; GF QuickLook Test Results &lt;/H1&gt; &lt;HR&gt; Build Info: ${build_version} &lt;p&gt; Test Completed at: ${end.timestamp}" />
        <property name="confRow1" value="&lt;TABLE class=param&gt; &lt;TR&gt; &lt;TD&gt;OS arch&lt;/TD&gt; &lt;TD&gt;Java version &lt;/TD&gt; &lt;TD&gt;Machine Name &lt;/TD&gt; &lt;TD&gt;Security Manager&lt;/TD&gt; &lt;/TR&gt;" />
        <property name="confRow2" value="&lt;TR&gt; &lt;TD&gt;${os.name}-${os.arch}&lt;/TD&gt; &lt;TD&gt;${java.version}&lt;/TD&gt; &lt;TD&gt;${host.name}&lt;/TD&gt; &lt;TD&gt;${env.security_manager}&lt;/TD&gt; &lt;/TR&gt; &lt;/TABLE&gt;" />
        <replace file="test-output/emailable-report.html" token="&lt;body&gt;" value="&lt;body&gt; ${titleTime} ${confRow1} ${confRow2} &lt;HR&gt; &lt;p&gt;" />
    </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="asenv-unix" if="isUnix">
        <property name="asenv_conf" value="${glassfish.home}/config/asenv.conf" />
        <property name="ASADMIN" value="${glassfish.home}/bin/asadmin" />
        <property name="APPCLIENT" value="${glassfish.home}/bin/appclient" />
    </target>

    <target name="asenv-windows" if="isWindows">
        <property name="asenv_conf" value="${glassfish.home}/config/asenv.bat" />
        <property name="ASADMIN" value="${glassfish.home}\bin\asadmin.bat" />
        <property name="APPCLIENT" value="${glassfish.home}\bin\appclient.bat" />
    </target>



    <target name="build-version" depends="setOSConditions">
        <antcall target="build-version-unix" />
        <antcall target="build-version-windows" />
    </target>

    <target name="build-version-unix" if="isUnix">
        <exec executable="${glassfish.home}/bin/asadmin" output="version.output">
            <arg value="version" />
        </exec>
    </target>

    <target name="build-version-windows" if="isWindows">
        <exec executable="cmd" output="version.output">
            <arg value="/c" />
            <arg value="${glassfish.home}\bin\asadmin.bat" />
            <arg value="version" />
        </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>

    <target name="verify-xml" depends="setOSConditions">
        <echo message="Verify Domain.xml" />
        <antcall target="verify-xml-unix" />
        <antcall target="verify-xml-windows" />
    </target>

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

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




    <!-- D E F S -->

    <presetdef name="javac">
        <javac includeantruntime="false" />
    </presetdef>

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

    <macrodef name="run-quicklook-test" xmlns:if="ant:if" xmlns:unless="ant:unless">
        <attribute name="path" />
        <attribute name="target" />
        <sequential>
            <local name="do-run-test" />
            <condition property="do-run-test" else="false">
                <or>
                    <equals arg1="${env.cdi_all}" arg2="@{path}" />
                    <not>
                        <isset property="env.cdi_all" />
                    </not>
                </or>
            </condition>

            <sequential if:true="${do-run-test}">
                <local name="absolute.path" />
                <property name="absolute.path" location="@{path}" />
                <echo message="${line.separator}" />
                <echo message=" *************************" />
                <echo message=" * @{target} @{path} " />
                <echo message=" * Path: ${absolute.path} " />
                <echo message=" *************************" />
                <echo message="${line.separator}" />
                <ant dir="@{path}" target="@{target}"/>
            </sequential>
        </sequential>
    </macrodef>

</project>
