<?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 commonSetup SYSTEM "./../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "./../../../../config/common.xml">
<!ENTITY commonRun SYSTEM "./../../../../config/run.xml">
<!ENTITY jaxwsTools SYSTEM "../../annotations/jaxwstools.xml">
<!ENTITY testproperties SYSTEM "./build.properties">
]>

<project name="service_endpoint_address" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonRun;
    &testproperties;
    &jaxwsTools;

    <target name="all" depends="clean, setup-ejb, assemble-client, runclient, undeploy" />

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

  <target name="setup-ejb" depends="assemble-ejb, deploy-ejb-jar" />

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

    <antcall target="pkg-ejb-jar">
      <param name="jar.classes" value="endpoint" />
      <param name="jar.file" value="${assemble.dir}/${appname}-ejb.jar" />
    </antcall>

  </target>

  <target name="assemble-client" depends="init-common">
    <mkdir dir="${build.classes.dir}/client" />
    <echo message="wsimporting http://${http.host}:${http.port}/${appname}/service?WSDL" />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -p wls_dd.service_endpoint_address.client -d ${build.classes.dir}/client http://${http.host}:${http.port}/${appname}/service?WSDL"
      />
    </antcall>
    <javac srcdir="."
           destdir="${build.classes.dir}/client"
           classpath="${env.APS_HOME}/lib/reporter.jar:${env.S1AS_HOME}/lib/javaee.jar:${env.S1AS_HOME}/modules/webservices-osgi.jar"
           includes="client/**"
    />
  </target>

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

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

  <target name="runclient">
    <antcall target="run-client">
      <param name="client-class" value="wls_dd.service_endpoint_address.client.Client" />
      <param name="other-args" value="async-ejb-test" />
    </antcall>
  </target>
</project>

