<!--

    Copyright (c) 2002, 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 commonSetup SYSTEM "file:./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../config/common.xml">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>

<project name="Simple Soap fault test" default="all" basedir=".">

  <!-- include common.xml and testcommon.xml -->
    &commonSetup;
    &commonBuild;
    &testproperties;

  <target name="run.wscompile">
        <exec executable="${WSCOMPILE}" failonerror="true" >
        <arg line="-source 1.1.2 ${wscompile.command}" />
        </exec>
  </target>

<!-- NOTE. the simple mapping test and full mapping test can
     only be run one at a time, I didn't want to set up two
     tests for this. -->
<!--
  <target name="all" depends="clean,build,deploy,run,undeploy"/>
-->

  <target name="all" depends="assemble, deploy, run, undeploy"/>

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

  <target name="gen-ejb-wsdl" depends="init-common">
    <mkdir dir="${build.classes.dir}/META-INF/wsdl"/>
    <antcall target="run.wscompile">
      <param name="wscompile.command"
   value="-define -mapping ${build.classes.dir}/SimpleHandlerMapping_ejb.xml -cp ${build.classes.dir} -keep -d ${build.classes.dir}/META-INF/wsdl config-interface.xml"/>
    </antcall>
  </target>

  <target name="assemble-ejb" depends="init-common, compile, gen-ejb-wsdl">
    <antcall target="ejb-jar-common">
        <param name="ejbjar.classes" value="SimpleHandlerMapping_ejb.xml,META-INF/wsdl/**,ejb/*.class"/>
    </antcall>
  </target>

  <target name="assemble" depends="assemble-ejb, assemble-client"/>

  <target name="assemble-client" depends="init-common">
    <antcall target="compile-common">
        <param name="src" value="client"/>
    </antcall>
    <antcall target="gen-ejb-wsdl"/>
    <unjar src="${env.APS_HOME}/lib/reporter.jar"
        dest="${build.classes.dir}"/>
    <antcall target="appclient-jar-common">
      <param name="appclientjar.classes"
             value="SimpleHandlerMapping_ejb.xml,META-INF/wsdl/**,simplehandler/**,ejb/SimpleServer.class,com/**" />
    </antcall>
    <antcall target="deploy-client-common"/>
    <move file="${assemble.dir}/${appname}-clientClient.jar" toFile="${assemble.dir}/${appname}AppClient.jar"/>
  </target>

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

    <target name="deploy"
            depends="init-common">
        <antcall target="deploy-jar-common"/>
    </target>

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

    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-jar-common"/>
        <antcall target="undeploy-client-common"/>
    </target>

</project>
