<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    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

-->

<!ENTITY autodeployUtil SYSTEM "./../util/util.xml">
<!ENTITY commonBuild SYSTEM "./../../config/common.xml">
]>
<!--
    This makes sure that redeployment of an autodeployed app works.  Specifically, 
    it tests that the validations (governing app refcs in particular) pass as
    the autodeployed app is removed and then redeployed.
-->
 
<project name="autodeploy-simple" default="all" basedir=".">

 	&commonBuild;
        &autodeployUtil;

    <property name="testName" value="simpleautodeploy"/>
        
    <target name="prepare" depends="init">
        <property name="result.property.file" value="${build}/result.properties"/>
<echo>in simple/build.xml and build is ${build}</echo>            
        <mkdir dir="${build}" />

    </target>
	
    <target name="build" depends="prepare">
        
        <echo>Using previously-built ${autodeploy.archive}</echo>
        <!--
            Some earlier tests should have run already, so the app we use for autodeploy testing
            should already be in place in the build directory.
        -->
    </target>
    
	
    
    <target name="private-all" depends="build">
        
        <antcall target="declare-test">
            <param name="description" value="autodeploy/simple Test autodeploy, auto-redeploy, and autoundeploy"/>
        </antcall>

        <!--
            The next task discards any previous temporary file used to gather property settings that
            record the results of the autodeploy directory monitoring Java class.
        -->
        <delete file="${result.property.file}" quiet="true"/>
        
        <!--
            Do the auto-deployment.
       -->
        <antcall target="deploy.autodeploy">
            <param name="archive.name" value="${autodeploy.archive.name}"/>
            <param name="archive.file" value="${autodeploy.archive}"/>
            <param name="autodeploy.dir" value="${autodeploy.dir}"/>
            <param name="deployResultPropertyName" value="deployResult1"/>
        </antcall>

        <!--
            Redeploy the archive.  This used to trigger an error because the 
            app ref was not removed before the app was removed.
        -->
        <antcall target="deploy.autodeploy">
            <param name="archive.name" value="${autodeploy.archive.name}"/>
            <param name="archive.file" value="${autodeploy.archive}"/>
            <param name="autodeploy.dir" value="${autodeploy.dir}"/>
            <param name="deployResultPropertyName" value="deployResult2"/>
        </antcall>

        <!--
            Now undeploy the app.
        -->
        <antcall target="deploy.autoundeploy">
            <param name="archive.file" value="${autodeploy.archive}"/>
            <param name="archive.name" value="${autodeploy.archive.name}"/>
            <param name="autodeploy.dir" value="${autodeploy.dir}"/>
            <param name="undeployResultPropertyName" value="undeployResult"/>
        </antcall>

        <!--
            Make the result properties of the several substeps accessible now because we need them in
            the next several steps.  The prefix attribute helps avoid possible collisions with other
            property names that might already be present.
        -->
        <property file="${result.property.file}" prefix="simple.autodeploy"/>

        <!--
            Decide whether the test was successful or not.  Make sure that the deploy and
            undeploy results are good.
        -->
        <condition property="result" value="0">
            <and>
                <equals arg1="${simple.autodeploy.deployResult1}" arg2="0"/>
                <equals arg1="${simple.autodeploy.deployResult2}" arg2="0"/>
                <equals arg1="${simple.autodeploy.undeployResult}" arg2="0"/>
            </and>
        </condition>
        
        <!--
            If the property "result" was not set by the "condition" task just above then something
            went wrong and we set result to 1 now.
        -->
        <condition property="result" value="1">
            <not>
                <isset property="result"/>
            </not>
        </condition>
        
        <antcall target="processResult">
            <param name="result" value="${result}"/>
            <param name="log" value="${build}/output.log"/>
        </antcall>

    </target>
    
</project>
