<?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="common-impl" default="all" basedir=".">
    
    <property file="${ws.root}/build.properties"/>
    <property environment="env"/>
    <property name="config.dir" value="${ant.file}"/>
    <property name="is.war.module" value="true"/>
    <property name="is.persistence.module" value="true"/>
    <property name="result.output" value="${ws.root}/test-output"/>
    <property name="assemble.dir" value="${ws.root}/dist/${testsuite.name}"/>
    <property name="class.output" value="${ws.root}/classes/${testsuite.name}/app"/>
    <!--<property name="test.class.output" value="${ws.root}/classes/${testsuite.name}/test"/>-->
    <property name="test.class.output" value="${ws.root}/classes/test"/>
    <property name="dist.dir" value="${ws.root}/dist/${testsuite.name}"/>

    
    <target name="clean">
        <delete dir="${ws.root}/classes"/>
        <delete dir="${result.output}"/>
        <delete dir="${ws.root}/dist"/>
        <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>
    
    <path id="run.testng.classpath">
	    <fileset dir="${ws.root}/lib">
            <include name="**/*.jar"/>
        </fileset>
        <pathelement location="${class.output}"/>
        <pathelement location="${test.class.output}"/>
    </path>
    
    <path id="class.path">
        <fileset dir="${glassfish.home}">
            <include name="**/*javaee*.jar"/>
        </fileset>
        <pathelement location="${class.output}"/>
        <pathelement location="${test.class.output}"/>
        <pathelement path="${plugin_classpath}"/>
    </path>
    
    <!-- TestNG class fileset -->
    
    <path id="path2testng">
	    <pathelement location="${ws.root}/lib/testng-5.0-jdk15.jar"/>
    </path>
    
    <taskdef name="testng" classname="org.testng.TestNGAntTask">
        <classpath>
	    <pathelement path="${plugin_classpath}"/>
        </classpath>
    </taskdef>
    
    
    <target name="compile-tests"
	    description="compile the test ng example" depends="">
	    <echo message="compiling test client to ${test.class.output}"/>

        <mkdir dir="${test.class.output}"/>
        <javac   debug="true"
                 fork="true"
                 source="1.5"
                 srcdir="src/test"
                 destdir="${test.class.output}">
		 <classpath>
		   <pathelement path="${plugin_classpath}"/>
      		 </classpath>
        </javac>
    </target>
    
    
    
    
    <!-- Generate the TestNG report -->
    <target name="report">
        <delete dir="${result.output}"/>
        <mkdir dir="${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>
    </target>
    
    <target name="archive-type">
        <echo message="archive-type is ${archive.type}"/>
        <condition property="archive.war">
            <equals arg1="war" arg2="${archive.type}"/>
        </condition>
        <!-- condition property="archive.ear">
            <equals pattern="ear" string="${archive.type}"/>
        </condition>
        <condition property="archive.jar">
            <equals pattern="jar" string="${archive.type}"/>            
        </condition -->
    </target>
    
    <target name="build-impl">
        <antcall target="build-war"/>
        <antcall target="build-ear"/>
        <antcall target="build-jar"/>
    </target>
    
    <target name="compile-single">
	    <delete dir="$class.output}"/>
	    <mkdir dir="${class.output}"/>
        <javac   debug="true"
                 fork="true"
                 source="1.5"
                 classpathref="class.path"
                 srcdir="src"
                 destdir="${class.output}"/>
        
    </target>
    

<target name="build-war" depends="archive-type" if="archive.war">  
    <echo message="Now creating a war file ${dist.dir}/${war.file.ext}"/>
    
    <delete dir="${class.output}"/>
    <delete dir="${dist.dir}"/>
    <delete file="${war.file.ext}"/>
    <mkdir dir="${class.output}"/>
    <mkdir dir="${dist.dir}"/>
    <echo message="Now compiling"/>
    <javac   debug="true"
    fork="true"
    source="1.5"
    classpathref="class.path"
    srcdir="src/java"
    destdir="${class.output}"/>
    
    <mkdir dir="${class.output}/META-INF"/>
    <copy file="metadata/persistence.xml" todir="${class.output}/META-INF" failonerror="false"/> 
    <copy file="src/java/ApplicationResource.properties" todir="${class.output}" failonerror="false"/>
    
    
    <war destfile="${dist.dir}/${war.file.ext}" webxml="metadata/web.xml">
        <fileset dir="web/html"/>
        <fileset dir="web/jsp"/>
        <!--<lib dir="thirdparty/libs">
        <exclude name="jdbc1.jar"/>
        </lib>-->
        <classes dir="${class.output}">        
            <include name="**/*.class"/>
	    <include name="**/persistence.xml"/>
	    <include name="**/*.properties"/>
        </classes>
        <!--<zipfileset dir="src/graphics/images/gifs"
        prefix="images"/>-->
        <webinf dir="metadata">                  
            <include name="**/*.xml"/>                  
            <exclude name="**/persistence.xml"/>
        </webinf>        
    </war>
    <antcall target="update-war-struts"/>
    <copy file="${dist.dir}/${war.file.ext}" tofile="./${war.file.ext}"/>
    <echo message="======================================================="/>
    <echo message="Packaged Archive at ${dist.dir}/${war.file.ext} and at ${war.file.ext}"/>
    <echo message="======================================================="/>
</target>

<target name="update-war-struts" if="add.struts.jar">
	<echo message="Adding struts jar to WEB-INF/lib"/>
<war destfile="${dist.dir}/${war.file.ext}" update="true">
	<lib dir="${ws.root}/web/lib/struts-1.2.9">
		<include name="**/*.jar"/>
	</lib>
</war>
	
</target>

<target name="build-jar" depends="archive-type" if="archive.jar">    
    <delete dir="${class.output}"/>
    <delete dir="${dist.dir}"/>
    <mkdir dir="${class.output}"/>
    <mkdir dir="${dist.dir}"/>
    <echo message="Now compiling"/>
    <javac   debug="true"
    fork="true"
    source="1.5"
    classpathref="class.path"
    srcdir="src/java"
    destdir="${class.output}/app"/>
    <echo message="Now creating a war file ${dist.dir}/${war.file.ext}"/>
    <war destfile="${dist.dir}/${war.file.ext}" webxml="metadata/web.xml" needxmlfile="true">
	    <fileset dir="src/java/html"/>
        <fileset dir="src/myapp/jsp"/>
        <!--<lib dir="thirdparty/libs">
        <exclude name="jdbc1.jar"/>
        </lib>-->
        <classes dir="${class.output}/app">        
            <include name="**/*.class"/>        
        </classes>
        <!--<zipfileset dir="src/graphics/images/gifs"
        prefix="images"/>-->
        <!--<webinf dir="metadata">                  
            <include name="**/*.xml"/>                                        
        </webinf>-->
    </war>
    <copy file="${dist.dir}/${war.file.ext}" tofile="./${war.file.ext}"/>
    <echo message="======================================================="/>
    <echo message="Packaged Archive at ${dist.dir}/${war.file.ext}"/>
    <echo message="======================================================="/>
</target>


<target name="build-ear" depends="archive-type" if="archive.ear">    
    <delete dir="${class.output}/app"/>
    <delete dir="${dist.dir}"/>
    <mkdir dir="${class.output}/app"/>
    <mkdir dir="${dist.dir}"/>
    <echo message="Now compiling"/>
    <javac   debug="true"
    fork="true"
    source="1.5"
    classpathref="class.path"
    srcdir="src/myapp/java"
    destdir="${class.output}/app"/>
    <echo message="Now creating a war file ${dist.dir}/${war.file.ext}"/>
    <war destfile="${dist.dir}/${war.file.ext}" webxml="metadata/web.xml" needxmlfile="true">
        <fileset dir="src/myapp/html"/>
        <fileset dir="src/myapp/jsp"/>
        <!--<lib dir="thirdparty/libs">
        <exclude name="jdbc1.jar"/>
        </lib>-->
        <classes dir="${class.output}/app">        
            <include name="**/Hello.class"/>        
        </classes>
        <!--<zipfileset dir="src/graphics/images/gifs"
        prefix="images"/>-->
        <!--<webinf dir="metadata">                  
            <include name="**/*.xml"/>                                        
        </webinf>-->
    </war>
    <copy file="${dist.dir}/${war.file.ext}" tofile="./${war.file.ext}"/>
    <echo message="======================================================="/>
    <echo message="Packaged Archive at ${dist.dir}/${war.file.ext}"/>
    <echo message="======================================================="/>
</target>


<target name="checkTestNGXML">
<available file="testng.xml" property="testng.xml.present"/>
</target>


<target name="runtest-impl">
	<antcall target="runtest-impl-class"/>
	<antcall target="runtest-impl-xml"/>
</target>

<target name="runtest-impl-class" depends="compile-tests,checkTestNGXML" unless="testng.xml.present">
    <echo message="=============Starting TestNG test at ${test.class.output}  ============"/>    
    <mkdir dir="${result.output}"/>
    <testng outputdir="${result.output}"
    suitename="${testsuite.name}"
    testname="${testng.test.name}"
            classpathref="class.path">
        <classfileset dir="${test.class.output}" includes="**/${testng.testclient}.class"/>
        <jvmarg value="-Dhttp.host=${glassfish.http.host}" />
        <jvmarg value="-Dhttp.port=${glassfish.http.port}" />
    </testng>
</target>

<target name="runtest-impl-xml" depends="checkTestNGXML" if="testng.xml.present">
    <echo message="=============Starting TestNG test at ${test.class.output} from testng.xml  ============"/>    
    <mkdir dir="${result.output}"/>
    <testng outputdir="${result.output}"
    suitename="${testsuite.name}"
    testname="${testng.test.name}"
            classpathref="${plugin.classpath}">
        <xmlfileset dir="." includes="testng.xml"/>
        <jvmarg value="-Dhttp.host=${glassfish.http.host}" />
        <jvmarg value="-Dhttp.port=${glassfish.http.port}" />
    </testng>
</target>

</project>
