<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

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

-->

        <!ENTITY commonSetup SYSTEM "./../../../../config/properties.xml">
        <!ENTITY commonBuild SYSTEM "./../../../../config/common.xml">
        <!ENTITY testproperties SYSTEM "./build.properties">
        ]>

<project name="connection-factory-definition-App" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;

    <target name="all" depends="build,setup,deploy,run,unsetup,undeploy"/>

    <target name="clean" depends="init-common">
        <antcall target="clean-common"/>
        <ant dir="ra" target="clean"/>
    </target>

    <target name="info" depends="init-common">
            <echo message="build.classes.dir is ${build.classes.dir}"/>
            <echo message="s1astest.classpath is ${s1astest.classpath}"/>
    </target>

    <target name="compile-ut" depends="init-common">
      <mkdir dir="${build.classes.dir}"/>
      <javac srcdir="ut" destdir="${build.classes.dir}"
                  classpath="${env.APS_HOME}/lib/junit.jar:${s1astest.classpath}"
                  debug="on"
            includeantruntime="false"
                  failonerror="true"/>
    </target>
    <target name="build-ut" depends="init-common">
      <!-- build a special ear which only includes deployment descriptors-->
      <mkdir dir="${assemble.dir}"/>
      <mkdir dir="${assemble.dir}/temp"/>
      <mkdir dir="${build.classes.dir}/META-INF"/>
      <copy file="${basedir}/descriptor/ut-application.xml" tofile="${build.classes.dir}/META-INF/application.xml"  failonerror="false"/>
      <jar jarfile="${assemble.dir}/${appname}App-UT.ear">
        <fileset dir="${assemble.dir}">
           <include name="*.jar"/>
        </fileset>
        <fileset dir="${build.classes.dir}">
          <include name="META-INF/application.xml"/>
        </fileset>
      </jar>

      <!-- unpack war, jar, ear files, otherwise annotations will not be processed. -->
      <unjar src="${assemble.dir}/${appname}-ejb.jar" dest="${assemble.dir}/temp/${appname}-ejb"/>
      <unjar src="${assemble.dir}/${appname}-web.war" dest="${assemble.dir}/temp/${appname}-web"/>
      <unjar src="${assemble.dir}/${appname}-client.jar" dest="${assemble.dir}/temp/${appname}-client"/>
      <unjar src="${assemble.dir}/${appname}App-UT.ear" dest="${assemble.dir}/temp/${appname}App-UT"/>

    </target>

    <target name="run-ut" depends="compile-ut">
      <junit printsummary="yes" haltonerror="no" haltonfailure="no" fork="true">
        <formatter type="plain" usefile="false"/>
        <jvmarg value="-DtestClasspath=${build.classes.dir}"/>
        <!--<jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9099"/>-->
        <jvmarg value="-DworkDir=${basedir}"/>
        <jvmarg value="-DArchiveDir=${assemble.dir}/temp"/>
        <classpath>
          <pathelement path="${env.APS_HOME}/lib/junit.jar:${s1astest.classpath}"/>
        </classpath>

        <test name="com.sun.s1asdev.cfd.ArchiveTest" todir="${basedir}/report"/>
        <test name="com.sun.s1asdev.cfd.DDTest" todir="${basedir}/report"/>
      </junit>
    </target>

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="servlet"/>
        </antcall>
    </target>

    <target name="build" depends="compile">
              <echo message="assemble.dir = ${assemble.dir}"/>
        <!--build and package .war first so it doesn't contain ejb bean !-->
        <!--classes that have @Stateless/@Stateul !-->
        <antcall target="webclient-war-common">
            <param name="hasWebclient" value="true"/>
        </antcall>

        <antcall target="compile-common">
            <param name="src" value="ejb"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="client"/>
        </antcall>

        <antcall target="appclient-jar-common">
            <param name="appclientjar.classes"
                   value="**/*Client*.class"/>
        </antcall>

        <antcall target="ejb-jar-common">
            <param name="ejbjar.classes"
                   value="**/Hello**.class"/>
        </antcall>

        <antcall target="ear-common"/>

        <antcall target="build-ut"/>

        <ant dir="ra" target="all"/>
    </target>

    <target name="setup" depends="init-common">
    </target>

    <target name="unsetup" depends="init-common">
    </target>

    <target name="deploy" depends="init-common">
        <ant dir="ra" inheritAll="false" target="deploy"/>
        <ant dir="ra" inheritAll="false" target="testAddAdmin"/>
        <antcall target="deploy-common"/>

    </target>

    <target name="run" depends="init-common">
        <antcall target="run-ut"/>
        <antcall target="run-it"/>
    </target>

    <target name="run-it" depends="init-common">
        <antcall target="runclient-common">
            <param name="appclient.application.args" value="${http.host} ${http.port}"/>
        </antcall>
    </target>

    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-common"/>
        <ant dir="ra" inheritAll="false" target="undeploy"/>
    </target>

    <target name="usage">
        <antcall target="usage-common"/>
    </target>
</project>
