<!--

    Copyright (c) 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

-->

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

<!-- ========== Initialize Properties ================================ -->
<property file="./build.properties"/>

<!-- all -->
<target name="all" depends="deploy-rar, deploy-war, deploy-ear, deploy-retrieve, undeploy-all"/>

<target name="deploy-rar" 
    description="Deploy the Connector">
     <sun-appserv-deploy
         file="${rarApp.file}"
         name="inbound"
         type="connector"
         force="true"
         precompilejsp="false"
         verify="false"
         upload="true"
         user="${admin.user}"
         password="${admin.password}"
         host="${admin.host}"
         port="4848"
      sunonehome="${sunone.home}" />     
</target> 

<target name="deploy-war" 
    description="Deploy the  WebApp">
     <sun-appserv-deploy
         file="${warApp.file}"
         name="simple"
         type="web"
         force="true"
         precompilejsp="false"
         verify="false"
         upload="true"
         user="${admin.user}"
         password="${admin.password}"
         host="${admin.host}"
         port="${admin.port}"
         sunonehome="${sunone.home}" />     
</target> 

<target name="deploy-ear" 
    description="Deploy the earApp">
     <sun-appserv-deploy
         file="${earApp.file}"
         name="bookstore"
         type="application"
         force="true"
         precompilejsp="false"
         verify="false"
         upload="true"
         user="${admin.user}"
         password="${admin.password}"
         host="${admin.host}"
         port="${admin.port}"
         sunonehome="${sunone.home}" />     
</target> 

<target name="deploy-retrieve" 
    description="Deploy the  EAR">
     <sun-appserv-deploy
         file="${retrieveApp.file}"
         name="stateless-converter"
         type="application"
         force="true"
         precompilejsp="false"
         verify="false"
         upload="true"
         user="${admin.user}"
         password="${admin.password}"
         host="${admin.host}"
         port="${admin.port}"         
	 retrievestubs="${retrieve.directory}"
         sunonehome="${sunone.home}" />     
</target> 

<target name="undeploy-all" 
    description="Undeploy all apps">
     <sun-appserv-undeploy
      name="inbound"
      user="${admin.user}"
      password="${admin.password}"
      host="${admin.host}"
      port="${admin.port}"
      sunonehome="${sunone.home}" />
     <sun-appserv-undeploy
      name="simple"
      user="${admin.user}"
      password="${admin.password}"
      host="${admin.host}"
      port="${admin.port}"
      sunonehome="${sunone.home}" />
     <sun-appserv-undeploy
      name="bookstore"
      user="${admin.user}"
      password="${admin.password}"
      host="${admin.host}"
      port="${admin.port}"
      sunonehome="${sunone.home}" />
     <sun-appserv-undeploy
      name="stateless-converter"
      user="${admin.user}"
      password="${admin.password}"
      host="${admin.host}"
      port="${admin.port}"
      sunonehome="${sunone.home}" />
</target> 

</project>
