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

    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

-->

<project name="ejb30-session-hello" default="default" basedir=".">
    <property file="build.properties"/>

 <description>Builds, tests, and runs the project Hello JSP Application</description>
<!-- <import file="nbproject/build-impl.xml"/>-->

<target name="echo">
    <echo message="Hello World"/>
</target>
<target name="sun-taskdef">
    <taskdef name="sun-appserv-deploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask">
        <classpath>
            <pathelement location="${sun.appserver.antjar}" />
        </classpath>
    </taskdef>
    <taskdef name="sun-appserv-undeploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.UndeployTask">
        <classpath>
            <pathelement location="${sun.appserver.antjar}" />
        </classpath>
    </taskdef>
</target>

<!--<env key="APPCPATH" path="${env.APS_HOME}/lib/testng.jar"/>-->

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



<path id="class.path">
    <fileset dir="${install.dir}/lib">
        <include name="**/*.jar"/>
    </fileset>
    <pathelement location="classes"/>
</path>

<path id="test.classpath">
    <fileset dir="${install.dir}/lib">
        <include name="**/*.jar"/>
    </fileset>
    <fileset dir="../../../lib">
        <include name="**/*.jar"/>
    </fileset>
    <pathelement location="classes/app"/>
    <pathelement location="classes/test"/>
</path>

<!-- TestNG class fileset -->

<target name="build">
    <delete dir="classes"/>
    <mkdir dir="classes/app"/>
    <javac   debug="true"
    fork="true"
    source="1.5"
    classpathref="class.path"
    srcdir="src/ejb"
    destdir="classes/app"/>

    <delete dir="dist" failonerror="false"/>

    <mkdir dir="dist"/>


    <jar destfile="dist/${ejbjar.file}">
        <fileset  dir="classes/app">
            <include name="**/*.class"/>
        </fileset>
       <metainf dir="descriptor">
            <include name="*.xml"/>
        </metainf>
    </jar>
    <echo message="======================================================="/>
    <echo message="Packaged Archive at ./dist/${ejbjar.file}"/>
    <echo message="======================================================="/>
</target>

<taskdef name="testng"
         classpathref="path2testng"
         classname="org.testng.TestNGAntTask"/>


<!-- Generate the TestNG report -->
<target name="report">
    <!--<delete dir="../../test-report"/>-->
    <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="compile-tests"
            description="compile the test ng example" depends="">
       <delete dir="classes/test" failonerror="false"/>
       <mkdir dir="classes/test"/>
       <javac   debug="true"
              fork="true"
              source="1.5"
              classpathref="test.classpath"
              srcdir="src/test"
              destdir="classes/test"
       />
</target>

<target  name="run">

    <echo message="=============Starting TestNG test at \n ${basedir}  ============"/>
    <mkdir dir="../../test-output"/>
    <testng outputdir="../../../test-output"
            classpathref="test.classpath" groups="">
         <classfileset dir="classes/test" includes="**/TestClient.class"/>
        <!--<xmlfileset dir="../../../" includes="testng.xml"/>-->
    </testng>
</target>

<target name="deploy" depends="sun-taskdef">
      <echo message="${sun.appserver.antjar}"/>

    <sun-appserv-deploy file="dist/${ejbjar.file}"
    name="helloworld"
    force="true"
    precompilejsp="true"
    verify="false"
    upload="true"
    user="${admin.user}"
    passwordfile="${install.dir}/pass.txt"
    host="${admin.host}"
    port="${admin.port}"
    asinstalldir="${install.dir}" />
</target>

<target name="dist">
    <echo message="Save EAR/WAR/JAR file"/>
</target>

<target name="_start-selenium">
 <java jar="../lib/selenium/${selenium-srvr-jar}" fork="true" spawn="true" />
 <antcall target="_run-ua-tests" />
 <get dest="${testreportdir}/results.txt"
        src="${selenium-srvr-loc}/selenium-server/driver/?cmd=shutDown" />
</target>

<target name="run">
 <taskdef classpathref="build.classpath" resource="testngtasks" />
 <testng outputDir="${testreportdir}"
         classpath="${testclassesdir};${classesdir}" haltonfailure="true">
  <xmlfileset dir="." includes="testng.xml" />
  <classpath>
   <path refid="build.classpath" />
  </classpath>
 </testng>
</target>



</project>
