<?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="web-client" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;
    &jaxwsTools;
    &jbicommon;
    &jbiproperties;

    <target name="all"
            depends="clean, setup-server, setup-client, deploy-provider-su, deploy-consumer-su, runtest, cleanup-client, cleanup-server"
    />

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

  <target name="setup-server" depends="assemble-web, deploy-app, start-consumer-jms-binding" />

  <target name="setup-client" depends="assemble-client,deploy-client, start-provider-jms-binding" />

  <target name="cleanup-server"
          depends="undeploy-app, undeploy-consumer-su,stop-consumer-jms-binding"
  />
  <target name="cleanup-client"
          depends="undeploy-client, undeploy-provider-su,stop-provider-jms-binding"
  />


  <target name="assemble-web" depends="init-common, compile">
    <echo message="Assembling web service module" />
    <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="compile" depends="init-common">
    <antcall target="compile-common">
      <param name="src" value="provider/endpoint" />
    </antcall>
  </target>

  <target name="deploy-app">
    <echo message="Deploying the web service" />
    <antcall target="deploy-war-common">
      <param name="contextroot" value="${appname}" />
    </antcall>
  </target>

  <target name="deploy-consumer-su" depends="init-common">
    <echo message="Creating QueueConnectionFactory for JMS Binding acting as a web service consumer"
    />
    <antcall target="create-jms-connection-factory">
      <param name="jms.cf.name" value="MyQueueConnectionFactory" />
    </antcall>
    <antcall target="create-jms-resource">
      <param name="domain.admin.port" value="${admin.port}" />
      <param name="jms.res.type" value="${QueueConnectionFactory}" />
      <param name="jms.res.name" value="MyQueueConnectionFactory" />
    </antcall>
    <echo message="deploying JMS Binding's consumer deployment " />
    <antcall target="deploy-jbi-component-su">
      <param name="jbi-component-su-assembly" value="${jms-consumer-assembly}" />
      <param name="jbi-component-su" value="${jms-consumer-su}" />
      <param name="jbi-component-su-dir" value="${jms-consumer-su-dir}" />
    </antcall>
  </target>

  <target name="assemble-client" depends="init-common">
    <echo message="Assembling web client" />
    <mkdir dir="${build.classes.dir}/webclient/WEB-INF/classes" />
    <mkdir dir="${assemble.dir}" />
    <echo message="wsimport -keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/jsr208-integration-web-client/CalculatorServicei?WSDL"
    />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/jsr208-integration-web-client/CalculatorService?WSDL"
      />
    </antcall>
    <javac srcdir="consumer"
           destdir="${build.classes.dir}/webclient/WEB-INF/classes"
           classpath="${env.APS_HOME}/lib/reporter.jar:${env.S1AS_HOME}/lib/javaee.jar:${env.S1AS_HOME}/modules/webservices-osgi.jar"
           includes="webclient/**"
    />
    <copy file="./consumer/client-web.xml"
          tofile="${build.classes.dir}/webclient/WEB-INF/web.xml"
    />
    <copy file="./consumer/client-sun-web.xml"
          tofile="${build.classes.dir}/webclient/WEB-INF/sun-web.xml"
    />
    <jar destfile="${assemble.dir}/wsclient.war"
         basedir="${build.classes.dir}/webclient"
         includes="**"
    />
  </target>

  <target name="deploy-client" depends="assemble-client">
    <echo message="Deploying the client application" />
    <property name="client.war" value="${assemble.dir}/wsclient.war" />
    <echo message="Deploying ${wsdl.war} from ${basedir}." level="verbose" />
    <exec executable="${ASADMIN}">
      <arg line="deploy" />
      <arg line="--user ${admin.user}" />
      <arg line="--passwordfile ${admin.password.file}" />
      <arg line="--port ${domain2.admin.port}" />
      <arg line="${client.war}" />
    </exec>
  </target>

  <target name="deploy-provider-su" depends="init-common">
    <echo message="Creating physical destinations - queues : - provideroutgoingqueue and temporary_queue"
    />
    <antcall target="create-physical-queue">
      <param name="queue.name" value="provideroutgoingqueue" />
    </antcall>
    <antcall target="create-physical-queue">
      <param name="queue.name" value="temporary_queue" />
    </antcall>
    <echo message="Create QueueConnectionFactory for JMS Binding which is acting as a provider" />
    <antcall target="create-jms-connection-factory">
      <param name="jms.cf.name" value="MyQueueConnectionFactory" />
    </antcall>
    <antcall target="create-jms-resource">
      <param name="domain.admin.port" value="${domain2.admin.port}" />
      <param name="jms.res.type" value="${QueueConnectionFactory}" />
      <param name="jms.res.name" value="MyQueueConnectionFactory" />
    </antcall>
    <echo message="Create JMS resource for provideroutgoingqueue and temporary_queue" />
    <antcall target="create-jms-queue">
      <param name="jms.queue.name" value="provideroutgoingqueue" />
      <param name="queue.name" value="provideroutgoingqueue" />
    </antcall>
    <antcall target="create-jms-queue">
      <param name="jms.queue.name" value="temporary_queue" />
      <param name="queue.name" value="temporary_queue" />
    </antcall>
    <echo message="Deploy JMS Binding provider deployment" />
    <antcall target="deploy-jbi-component-su">
      <param name="jbi-component-su-assembly" value="${jms-provider-assembly}" />
      <param name="jbi-component-su" value="${jms-provider-su}" />
      <param name="jbi-component-su-dir" value="${jms-provider-su-dir}" />
      <param name="jmx.port" value="${domain2.jmx.port}" />
    </antcall>
  </target>

  <target name="undeploy-client" depends="init-common">
    <echo message="Undeploying client application" />
    <exec executable="${ASADMIN}">
      <arg line="undeploy" />
      <arg line="--user ${admin.user}" />
      <arg line="--passwordfile ${admin.password.file}" />
      <arg line="--host ${admin.host}" />
      <arg line="--port ${domain2.admin.port}" />
      <arg line="wsclient" />
    </exec>
  </target>

  <target name="undeploy-app" depends="init-common">
    <echo message="Undeploying web service" />
    <exec executable="${ASADMIN}">
      <arg line="undeploy" />
      <arg line="--user ${admin.user}" />
      <arg line="--passwordfile ${admin.password.file}" />
      <arg line="--host ${admin.host}" />
      <arg line="--port ${admin.port}" />
      <arg line="${appname}-web" />
    </exec>
  </target>

  <target name="runtest" depends="init-common">
    <echo message="Running the test client" />
    <mkdir dir="${build.classes.dir}/client" />
    <javac srcdir="."
           destdir="${build.classes.dir}/client"
           classpath="${env.APS_HOME}/lib/reporter.jar"
           includes="consumer/client/**"
    />
    <unjar src="${env.APS_HOME}/lib/reporter.jar" dest="${build.classes.dir}/client" />
    <java classname="client.TestClient">
      <classpath>
        <pathelement path="${build.classes.dir}/client" />
      </classpath>
      <arg value="http://${http.host}:${domain2.instance.port}/wsclient/webclient/RequestProcessor"
      />
    </java>
  </target>


  <target name="undeploy-consumer-su" depends="init-common">
    <echo message="Undeploying JMS resource : MyQueueConnectionFactory" />
    <antcall target="delete-appserver-jms-resource">
      <param name="domain.admin.port" value="${admin.port}" />
      <param name="jms.res.name" value="MyQueueConnectionFactory" />
    </antcall>
    <!--<antcall target="delete-jms-resource">
        <param name="jms.resource.name" value="MyQueueConnectionFactory"/>
      </antcall>-->
    <echo message="Undeploying JMS Binding consumer deployment" />
    <antcall target="undeploy-jbi-component-su">
      <param name="jbi-component-su-assembly" value="${jms-consumer-assembly}" />
    </antcall>
  </target>

  <target name="undeploy-provider-su" depends="init-common">
    <echo message="Undeploying JMS Resource :- provideroutgoingqueue and temporary_queue" />
    <antcall target="delete-jms-resource">
      <param name="jms.resource.name" value="provideroutgoingqueue" />
    </antcall>
    <antcall target="delete-jms-resource">
      <param name="jms.resource.name" value="temporary_queue" />
    </antcall>
    <echo message="Undeploying JMS resource : MyQueueConnectionFactory" />
    <antcall target="delete-appserver-jms-resource">
      <param name="domain.admin.port" value="${domain2.admin.port}" />
      <param name="jms.res.name" value="MyQueueConnectionFactory" />
    </antcall>
    <antcall target="delete-jms-resource">
      <param name="jms.resource.name" value="MyQueueConnectionFactory" />
    </antcall>
    <echo message="Deleting physical queues : provideroutgoingqueue , temporary_queue" />
    <antcall target="delete-physical-queue">
      <param name="queue.name" value="provideroutgoingqueue" />
    </antcall>
    <antcall target="delete-physical-queue">
      <param name="queue.name" value="temporary_queue" />
    </antcall>
    <echo message="Undeploying JMS Binding's provider deployment" />
    <antcall target="undeploy-jbi-component-su">
      <param name="jbi-component-su-assembly" value="${jms-provider-assembly}" />
      <param name="jmx.port" value="${domain2.jmx.port}" />
    </antcall>
  </target>

  <target name="create-domain2" depends="init-common">
    <property name="admin.command" value="create-domain" />
    <property name="operand.props"
              value="--adminport ${domain2.admin.port} --adminuser admin --passwordfile ${admin.password.file} --instanceport ${domain2.instance.port} --savemasterpassword=true --domainproperties domain.jmxPort=${domain2.jmx.port}:jms.port=${domain2.jms.port}:orb.listner.port=${domain2.orb.listner.port}:http.ssl.port=${domain2.http.ssl.port}:orb.mutualauth.port=${domain2.orb.mutualauth.port} ${domain.name}"
    />
    <exec executable="${ASADMIN}" failonerror="true">
      <arg line="${admin.command} ${operand.props}" />
    </exec>
  </target>

  <target name="start-domain2" depends="init-common">
    <exec executable="${ASADMIN}" failonerror="true">
      <arg line="start-domain --user ${admin.user}  ${domain.name}" />
    </exec>
  </target>

  <target name="create-physical-queue" depends="init-common">
    <exec executable="${env.S1AS_HOME}/imq/bin/imqcmd" failonerror="false">
      <arg line="create dst -n ${queue.name} -t q -u admin -passfile ${broker.password.file} -b localhost:${imq.broker.port}"
      />
    </exec>
  </target>

  <target name="create-jms-resource" depends="init-common">
    <exec executable="${env.S1AS_HOME}/bin/asadmin" failonerror="false">
      <arg line="create-jms-resource --user ${admin.user} --passwordfile ${admin.password.file} --port ${domain.admin.port} --restype ${jms.res.type} ${jms.res.name}"
      />
    </exec>
  </target>
  <target name="create-jms-queue" depends="init-common">
    <exec executable="${env.S1AS_HOME}/imq/bin/imqobjmgr" failonerror="false">
      <arg line="add  -l &quot;${jms.queue.name}&quot; -t q -o &quot;imqDestinationName=${queue.name}&quot; -j &quot;java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory&quot; -j &quot;java.naming.provider.url=file:/tmp/imqobjects&quot;"
      />
    </exec>
  </target>

  <target name="create-jms-connection-factory" depends="init-common">
    <exec executable="${env.S1AS_HOME}/imq/bin/imqobjmgr" failonerror="true">
      <arg line="add  -f -l &quot;${jms.cf.name}&quot; -t qf -o &quot;imqAddressList=mq://localhost:${imq.broker.port}/jms&quot; -j &quot;java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory&quot; -j &quot;java.naming.provider.url=file:/tmp/imqobjects&quot;"
      />
    </exec>
  </target>

  <target name="delete-physical-queue" depends="init-common">
    <exec executable="${env.S1AS_HOME}/imq/bin/imqcmd" failonerror="false">
      <arg line="destroy dst -f -n ${queue.name} -t q -passfile ${broker.password.file} -u admin -b localhost:${imq.broker.port}"
      />
    </exec>
  </target>

  <target name="delete-jms-resource" depends="init-common">
    <exec executable="${env.S1AS_HOME}/imq/bin/imqobjmgr" failonerror="false">
      <arg line="delete -f  -l &quot;${jms.resource.name}&quot; -j &quot;java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory&quot; -j &quot;java.naming.provider.url=file:/tmp/imqobjects&quot;"
      />
    </exec>
  </target>
  <target name="delete-appserver-jms-resource" depends="init-common">
    <exec executable="${env.S1AS_HOME}/bin/asadmin" failonerror="false">
      <arg line="delete-jms-resource --user ${admin.user} --passwordfile ${admin.password.file} --port ${domain.admin.port} ${jms.res.name}"
      />
    </exec>
  </target>

  <target name="delete-domain2" depends="init-common">
    <exec executable="${ASADMIN}" failonerror="true">
      <arg line="delete-domain domain2 " />
    </exec>
  </target>
  <target name="stop-provider-jms-binding" depends="init-common">
    <antcall target="stop-binding">
      <param name="jmx.port" value="${domain2.jmx.port}" />
      <param name="jbi.component.name" value="SunJMSBinding" />
    </antcall>
  </target>
  <target name="start-provider-jms-binding" depends="init-common">
    <antcall target="start-binding">
      <param name="jmx.port" value="${domain2.jmx.port}" />
      <param name="jbi.component.name" value="SunJMSBinding" />
    </antcall>
  </target>
  <target name="stop-consumer-jms-binding" depends="init-common">
    <antcall target="stop-binding">
      <param name="jbi.component.name" value="SunJMSBinding" />
    </antcall>
  </target>
  <target name="start-consumer-jms-binding" depends="init-common">
    <antcall target="start-binding">
      <param name="jbi.component.name" value="SunJMSBinding" />
    </antcall>
  </target>
</project>

