<?xml version="1.0"?>
<!--

    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

-->

<!DOCTYPE project [
<!ENTITY commonBuild SYSTEM "file:./../annotations-common.xml">
]>

<project name="methodinjection" default="core" basedir=".">

    &commonBuild;
    <property file="${env.APS_HOME}/config.properties"/>
    <property name="src-name" value="endpoint/HelloImpl.java"/>
    <property name="client-src-name" value="client/Client.java"/>
    <target name="all" depends="clean, private-deploy, private-run, private-undeploy, report"/>

    <target name="private-deploy">
        <antcall target="deploy"/>
        <antcall target="clean"/>
        <antcall target="wsdl-import">
                <param name="server" value="HelloImpl"/>
                <param name="port" value="HelloImpl"/>
        </antcall>
        <javac srcdir="." destdir="${env.APS_HOME}/build/module/classes"
            includes="ejb/GatewayImpl.java">
            <classpath refid="classpath"/>
        </javac>
         <mkdir dir="${env.APS_HOME}/build/module/classes/wsdl/wsdl"/>
        <get src="http://${http.host}:${http.port}/HelloImplService/HelloImpl?WSDL" dest="${env.APS_HOME}/build/module/classes//wsdl/wsdl/HelloImplService.wsdl"/>
        <jar destfile="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar"
            basedir="${env.APS_HOME}/build/module/classes"
            includes="ejb/**,endpoint/**">
            <metainf dir="${env.APS_HOME}/build/module/classes/wsdl"/>
        </jar>
        <waitfor maxwait="100" maxwaitunit="second">
                   <or>
                <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployed"/>
                <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployFailed"/>
            </or>
        </waitfor>
        <condition property="deploy_succeeded">
            <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployed"/>
        </condition>
        <condition property="deploy_failed">
            <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployFailed"/>
        </condition>
        <fail if="deploy_failed" message="Deployment failed"/>
    </target>
    <target name="private-run">
        <basename file="${client-src-name}" property="client" suffix=".java"/>
        <dirname file="${client-src-name}" property="client-directory"/>
        <basename file="${client-directory}" property="client-pkg-name"/>
        <property name="client-class-name" value="${client-pkg-name}/${client}.class"/>
        <antcall target="clean"/>
        <antcall target="wsdl-import">
                <param name="server" value="GatewayImpl"/>
                <param name="port" value="GatewayImpl"/>
        </antcall>
        <antcall target="compile-client"/>
        <echo message="Running appclient with ${client-pkg-name}.${client}"/>
        <unjar src="${env.APS_HOME}/lib/reporter.jar" dest="${env.APS_HOME}/build/module/classes"/>
        <exec executable="${env.S1AS_HOME}/bin/appclient" dir="${env.APS_HOME}/build/module/classes">
            <arg value="${client-pkg-name}.${client}"/>
        </exec>
    </target>
    <target name="private-undeploy">
        <antcall target="undeploy"/>
        <antcall target="autoundeploy-file">
                <param name="filename" value="EjbClient.jar"/>
        </antcall>
    </target>

    <target name="report-success">
            <echo message="Test passed"/>
    </target>

    <target name="report-failure">
            <echo message="Test failed"/>
    </target>

</project>
