<?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 "file:../../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:../../../../../config/common.xml">
<!ENTITY jaxwsTools SYSTEM "file:../../../annotations/jaxwstools.xml">
<!ENTITY jbicommon SYSTEM "file:./../../jbi_commons.xml">
<!ENTITY jbiproperties SYSTEM "file:./../../jbi_commons.properties">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>

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

    &commonSetup;
    &commonBuild;
    &testproperties;
    &jaxwsTools;
    &jbicommon;
    &jbiproperties;
    <target name="all" depends="clean, setup, runtest,undeploy"/>

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

    <target name="setup" depends="assemble-web, deploy-app, assemble-client"/>

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

    <target name="assemble-web" depends="init-common, compile">
      <antcall target="pkg-war">
        <param name="war.classes" value="${build.classes.dir}"/>
        <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
       </antcall>
    </target>

    <target name="assemble-client" depends="init-common">
      <antcall target="compile-client">
        <param name="test-wsdl-uri" value="${appname}/webservice/CalculatorService?WSDL"/>
        <param name="client-src" value="client"/>
      </antcall>
      <antcall target="deploy-jbi-component-su"/>
    </target>

    <target name="deploy-app">
      <antcall target="deploy-war-common">
        <param name="contextroot" value="${appname}"/>
      </antcall>
    </target>

    <target name="undeploy" depends="init-common">
      <antcall target="undeploy-war-common"/>
      <antcall target="undeploy-jbi-component-su"/>
    </target>
    <target name="runtest-jaxws" depends="init-common">
      <antcall target="run-client">
        <param name="client-class" value="client.JAXWSClient"/>
        <param name="other-args" value="war-with-endpointimpl-only"/>
      </antcall>
    </target>
    <target name="runtest" depends="init-common" >
      <!--<echo message="Running SOAP Binding client"/>
      <antcall target="runtest-soap-binding"/>-->
      <echo message="Running negative test by setting jbi-enabled flag to false"/>
      <antcall target="runtest-jbi-enabled-false"/>
      <echo message="Running JAXWS client"/>
      <antcall target="runtest-jaxws"/>
      <echo message="Running positive test by setting jbi-enabled flag to true"/>
      <antcall target="runtest-jbi-enabled-true"/>

    </target>
    <target name="runtest-soap-binding" depends="init-common">
      <antcall target="run-client">
        <param name="client-class" value="client.SOAPWebConsumerNonHttpBC"/>
        <param name="other-args" value="jbi-enabled-true"/>
      </antcall>
    </target>
    <target name="runtest-jbi-enabled-false" depends="init-common">
      <antcall target="configure-webservice-management"/>
      <antcall target="asadmin-common">
        <param name="admin.command" value="set"/>
        <param name="operand.props" value="server.applications.web-module.${appname}-web.web-service-endpoint.Calculator.jbi-enabled=false"/>
      </antcall>
      <antcall target="run-client">
        <param name="client-class" value="client.SOAPWebConsumerNonHttpBC"/>
        <param name="other-args" value="jbi-enabled-false"/>
      </antcall>
    </target>
    <target name="runtest-jbi-enabled-true" depends="init-common">
      <antcall target="configure-webservice-management"/>
      <antcall target="asadmin-common">
        <param name="admin.command" value="set"/>
        <param name="operand.props" value="server.applications.web-module.${appname}-web.web-service-endpoint.Calculator.jbi-enabled=true"/>
      </antcall>
      <antcall target="runtest-soap-binding"/>
    </target>
    <target name="configure-webservice-management" depends="init-common">
      <antcall target="asadmin-common">
        <param name="admin.command" value="configure-webservice-management"/>
        <param name="operand.props" value="${appname}-web#Calculator"/>
      </antcall>
    </target>
</project>

