<?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 commonBuild SYSTEM "./../../../config/common.xml">
]>

<project name="deployment-ejb30-ear-session2-App" default="all" basedir=".">

    &commonBuild;

    <property name="testName" value="ejb-ejb30-hello-session2"/>
    <property name="archivedir" value="${build}/archives"/>

    <target name="prepare" depends="init">
        <mkdir dir="${build}"/>
        <mkdir dir="${archivedir}"/>
        <property name="all.ear" value="${archivedir}/${testName}App.ear"/>
        <property name="ejb.jar" value="${archivedir}/${testName}-ejb.jar"/>
        <property name="client.jar" value="${archivedir}/${testName}-client.jar"/>
    </target>

    <target name="compile" depends="prepare">
        <javac srcdir="ejb" destdir="${build}" debug="on" failonerror="true">
          <classpath refid="gfv3.classpath"/>
         </javac>
        <javac srcdir="client" destdir="${build}" debug="on" failonerror="true">
          <classpath refid="gfv3.classpath"/>
        </javac>
    </target>

    <target name="assemble" depends="compile">
        <jar destfile="${ejb.jar}" basedir="${build}"
                excludes="**/ClientSuper.class,**/Client.class">
                <metainf file="descriptor/sun-ejb-jar.xml"/>
        </jar>

        <jar destfile="${client.jar}" basedir="${build}"
                includes="**/ClientSuper.class,**/Client.class,**/Sless.class,**/SlessSub.class,**/Sful.class,**/ExternalBusiness.class,**/FooHome.class"
                manifest="client/MANIFEST.MF">
        </jar>

        <copy file="descriptor/session2appclient.xml" todir="${archivedir}"/>
        <copy file="descriptor/sun-session2appclient.xml" todir="${archivedir}"/>

        <ear destfile="${all.ear}" basedir="${archivedir}"
            appxml="descriptor/application.xml" includes="*.jar, session2appclient.xml, sun-session2appclient.xml">
        </ear>
    </target>

    <target name="deploy.asadmin" depends="prepare">
        <antcall target="common.deploy.asadmin">
            <param name="arg.list" value="--retrieve ${archivedir} --name ${testName} ${all.ear}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="redeploy.asadmin" depends="prepare">
        <antcall target="common.redeploy.asadmin">
            <param name="arg.list" value="--retrieve ${archivedir} --name ${testName} ${all.ear}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="runclient" depends="prepare,setOrbPort2">
        <exec executable="${APPCLIENT}" resultproperty="result" failonerror="false" output="${build}/${log.id}.output.log">
            <arg line="-targetserver ${appclient.targetservers} -client ${archivedir}/${testName}Client.jar"/>
        </exec>
        <antcall target="processResult">
            <param name="result" value="${result}"/>
            <param name="log" value="${build}/${log.id}.output.log"/>
        </antcall>
    </target>

    <target name="undeploy.asadmin" depends="prepare">
        <antcall target="common.undeploy.asadmin">
            <param name="arg.list" value="${testName}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="private-all">
        <antcall target="assemble"/>
        <antcall target="declare-test">
            <param name="description" value="ejb30/session2 Test asadmin deploy"/>
        </antcall>
        <antcall target="deploy.asadmin"/>
        <antcall target="runclient">
            <param name="log.id" value="1"/>
        </antcall>
        <antcall target="declare-test">
            <param name="description" value="ejb30/session2 Test asadmin redeploy"/>
        </antcall>
        <antcall target="redeploy.asadmin"/>
        <antcall target="runclient">
            <param name="log.id" value="2"/>
        </antcall>
        <antcall target="undeploy.asadmin"/>
    </target>
</project>
