<?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-ejb, 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-ejb" depends="init-common, compile">
    <echo message="Assembling web service module" />
    <mkdir dir="${assemble.dir}" />
    <jar destfile="${assemble.dir}/${appname}-ejb.jar"
         basedir="${build.classes.dir}"
         includes="endpoint/**"
    >
    </jar>
  </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-jar-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}/HelloEJBService/HelloEJB?WSDL"
    />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/HelloEJBService/HelloEJB?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"
           debug="on"
           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}-ejb" />
    </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>
    <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>

