<!--

    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

-->

<!--
    Targets to be shared by all unit tests 
-->

<!-- configuration -->
<property environment="env"/>
<property file="${env.APS_HOME}/config.properties"/>
<property file="${env.APS_HOME}/../bootstrap/bootstrap.properties"/>
<property name="inst" value="${env.S1AS_HOME}"/>
<property name="java.home" value="${env.JAVA_HOME}"/>
<property name="s1as.home" value="${env.S1AS_HOME}"/>
<property name="testsRoot" value="${env.APS_HOME}/devtests/deployment"/>
<property name="passwordFile" value="${testsRoot}/password.txt"/>
<property name="build" value="${testsRoot}/build"/>
<property name="virtual.server.name" value="server-foo"/>
<property name="http.listener.name" value="listener-foo"/>
<property name="http.port.2" value="8081"/>
<property name="listener.threads" value="100"/>
<property name="listener.address" value="0.0.0.0"/>
<property name="targetPlatform" value="${env.DEPL_TARGET}"/>
<property name="customtasks.src" value="${testsRoot}/util/customAntTasks"/>
<property name="customtasks.dest" value="${testsRoot}/util/build/customAntTasks"/>
<property name="customtasks.jar" value="${customtasks.dest}/customAntTasks.jar"/>
<property name="junit.jar" value="${env.APS_HOME}/devtests/deployment/junit-4.12.jar" />
<property name="annotation.report.dir" value="${testsRoot}/annotation/report"/> 
<property name="testDomain" value="depltest-domain"/>
<property name="testServer" value="depltest-server"/>
<property name="testCluster" value="depltest-cluster"/>
<property name="testClusterServer1" value="depltest-cluster-server1"/>

<property name="deploy.clusterinstance1.httpport" value="2001"/>
<property name="deploy.serverinstance.httpport" value="2000"/>
<property name="deploy.clusterinstance1.orbport" value="2201"/>
<property name="deploy.serverinstance.orbport" value="2200"/>

<property name="testDomain.dir" value="${s1as.home}/domains/${testDomain}"/>
<property name="node.dir" value="localhost-${testDomain}"/>
<property name="testServer.dir" value="${s1as.home}/nodes/${node.dir}/${testServer}"/>
<property name="testClusterServer1.dir" value="${s1as.home}/nodes/${node.dir}/${testClusterServer1}"/>

<!--
    Change the value to control
    whether deployment tests upload the file or not.
-->
<property name="use.upload" value="false"/>

<!--
  The following property supports the special Windows process-start-up implementation.
  On Windows, ant hangs when it runs an asadmin command that starts a process.  This
  workaround, using the Q/A ant Spawn task, avoids that problem.  Also, see the
  start-process target defined below.  New tests or changes to existing tests
  should NOT refer to the ${ASADMIN} script directly if the command starts a
  process but, instead, should call the start-process task.
  -->
<property name="start.process.delay.mins" value="1"/>

<!--
    The tests use custom Ant tasks.  The build of those tasks should occur before tests run.  See the
    util directory for its own build.xml and the source files.
-->

        
<target name="init" depends="init.os,init.tools,setAsadminArgs">
    <get src="https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar" dest="${env.APS_HOME}/devtests/deployment/junit-4.12.jar" usetimestamp="true"/>
    <property name="root" value="${basedir}"/>

    <available property="cluster.exists" file="${s1as.home}/domains/${testDomain}"/>
    
    <available property="SetupStarted" file="${build}/setupdone"/>

    <condition property="EE" value="true">
        <or>
            <equals arg1="${env.DEPL_TARGET}" arg2="SERVER"/>
            <equals arg1="${env.DEPL_TARGET}" arg2="CLUSTER"/>
        </or>
    </condition>
    
    <condition property="doCluster">
        <equals arg1="${env.DEPL_TARGET}" arg2="CLUSTER"/>
    </condition>

    <condition property="doInstance">
        <equals arg1="${env.DEPL_TARGET}" arg2="SERVER"/>
    </condition>
    
    <condition property="PE">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>

<!--
    <condition property="s1as.secure" value="true">
      <or>
        <equals arg1="${EE}" arg2="true"/>
        <equals arg1="${env.SECURE}" arg2="true"/>
      </or>
    </condition>
-->
    <property name="s1as.secure" value="false"/>

    <condition property="run.jsr88" value="false">
        <equals arg1="${run.jsr88}" arg2="false" /> 
    </condition>

    <condition property="jsr88.uri" value="deployer:Sun:AppServer::${admin.host}:${admin.port}:https">
        <equals arg1="${s1as.secure}" arg2="true"/>
    </condition>
    <property name="jsr88.uri" value="deployer:Sun:AppServer::${admin.host}:${admin.port}"/>

    <path id="gfv3.classpath">
        <fileset dir="${s1as.home}/modules">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <path id="test.compile.classpath">
        <pathelement location="${inst}/lib/j2ee.jar"/>
        <pathelement location="${java.home}/lib/tools.jar"/>
    </path>

    <!--
        See if the custom ant tasks jar file is up-to-date as compare to the source files.  The
        resulting property will control whether the tasks are compiled and the jar file built 
        because the init.customtasks task uses unless="customtasks.uptodate."
    -->
    <uptodate property="customtasks.uptodate" targetfile="${customtasks.jar}">
        <srcfiles dir="${customtasks.src}" includes="*.java"/>
    </uptodate>
    
    <antcall target="init.customtasks"/>
    <taskdef name="javaWithResult" classname="devtests.deployment.util.JavaWithResult" classpath="${customtasks.jar}"/>

</target>

<target name="setAsadminArgs">
    <condition property="ASADMIN-ARGS" value="--user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testCluster}">
        <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
    </condition>
    <condition property="ASADMIN-ARGS" value="--user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testServer}">
        <equals arg1="${targetPlatform}" arg2="SERVER"/>
    </condition>
    <condition property="ASADMIN-ARGS" value="--user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>

    <property name="deploy" value="deploy --upload=${use.upload}"/>
    <property name="undeploy" value="undeploy"/>
    <property name="deploydir" value="deploydir"/>
    <property name="redeploy" value="redeploy --upload=${use.upload}"/>
</target>

<target name="setAsadminArgsWithoutPassword">
    <condition property="ASADMIN-ARGS-NOPASSWD" value="--user ${admin.user} --port ${admin.port} --target ${testCluster}">
        <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
    </condition>
    <condition property="ASADMIN-ARGS-NOPASSWD" value="--user ${admin.user} --port ${admin.port} --target ${testServer}">
        <equals arg1="${targetPlatform}" arg2="SERVER"/>
    </condition>
    <condition property="ASADMIN-ARGS-NOPASSWD" value="--user ${admin.user} --port ${admin.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>

    <property name="deploy" value="deploy"/>
    <property name="undeploy" value="undeploy"/>
    <property name="deploydir" value="deploydir"/>
    <property name="redeploy" value="redeploy"/>
</target>

<target name="setHttpPort2">
    <condition property="depltest.port" value="${deploy.serverinstance.httpport}">
        <equals arg1="${targetPlatform}" arg2="SERVER"/>
    </condition>
    <condition property="depltest.port" value="${deploy.clusterinstance1.httpport}">
        <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
    </condition>
    <condition property="depltest.port" value="${http.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>
</target>

<target name="setInstanceName">
    <condition property="depltest.instance.name" value="${testServer}">
        <equals arg1="${targetPlatform}" arg2="SERVER"/>
    </condition>

    <condition property="depltest.instance.name" value="${testClusterServer1}">
        <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
    </condition>
    <condition property="depltest.instance.name" value="server">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>
</target>

<target name="setHttpPort">
    <condition property="depltest.port" value="${deploy.serverinstance.httpport}">
        <or>
            <equals arg1="${targetPlatform}" arg2="SERVER"/>
            <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
        </or>
    </condition>
    <condition property="depltest.port" value="${http.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>
</target>


<target name="setOrbPort2">
    <condition property="depltest.orbport" value="${deploy.serverinstance.orbport}">
        <equals arg1="${targetPlatform}" arg2="SERVER"/>
    </condition>
    <condition property="depltest.orbport" value="${deploy.clusterinstance1.orbport}">
        <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
    </condition>
    <condition property="depltest.orbport" value="${orb.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>
    <property name="appclient.targetservers" value="localhost:${depltest.orbport}"/>
</target>

<target name="setOrbPort">
    <condition property="depltest.orbport" value="${deploy.serverinstance.orbport}">
        <or>
            <equals arg1="${targetPlatform}" arg2="SERVER"/>
            <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
        </or>
    </condition>
    <condition property="depltest.orbport" value="${orb.port}">
        <and>
            <not>
                <equals arg1="${targetPlatform}" arg2="SERVER"/>
            </not>
            <not>
                <equals arg1="${targetPlatform}" arg2="CLUSTER"/>
            </not>
        </and>
    </condition>
    <property name="appclient.targetservers" value="localhost:${depltest.orbport}"/>
</target>

<target name="setEnabled">
  <condition property="enabled" value="true">
    <not>
      <isset property="enabled"/>
    </not>
  </condition>
</target>

<!--
    The following target compiles all Java files that are used in custom Ant tasks and places them into a 
    jar file.  Subsequent taskdefs can then refer to the jar file.
    
    Note that the compilation and construction of the jar file will occur only if the jar file is obsolete
    compared to the java sources, thanks to the uptodate setting of customtasks.uptodate in the init target.
    
    Note also that we use a separate build directory so we can capture only the custom task .class files into
    the jar and not all .class files under the util tree.
-->
<target name="init.customtasks" unless="customtasks.uptodate">
    <delete dir="${customtasks.dest}"/>
    <mkdir dir="${customtasks.dest}"/>
    <javac
        srcdir="${customtasks.src}"
        destdir="${customtasks.dest}"
        includes="*.java"
    >
        <classpath>
            <path location="${ant.publish.home}/lib/ant.jar"/>
            <path location="${customtasks.dest}"/> <!-- for cross-dependencies, if any, among custom task classes and/or helpers -->
        </classpath>
    </javac>
    <jar 
        destfile="${customtasks.jar}"
        basedir="${customtasks.dest}"
        includes="**/*.class"
    />
</target>

<!-- asadmin commands -->
<!-- create-file-userusing asadmin @@FIXME Need to fix for EE-->
<!-- @param ${arg.list} (required) -->
<!-- @param ${password} (required) -->
<target name="common.createuser.asadmin" depends="setAsadminArgsWithoutPassword">
  <property name="user.password.file" value="asadminuserpassword.txt"/>
  <echo file="${user.password.file}" append="false">
AS_ADMIN_USERPASSWORD=${password}
AS_ADMIN_PASSWORD=
AS_ADMIN_MASTERPASSWORD=changeit
  </echo>
  <antcall target="common.run.asadmin">
    <param name="arg.list" 
           value="create-file-user ${ASADMIN-ARGS-NOPASSWD} --passwordfile ${user.password.file} --echo=true --terse=true ${arg.list}"/>
    </antcall>
  <delete file="${user.password.file}" failonerror="false"/>
</target>


<!-- set dotted name enable using asadmin -->
<target name="common.dotted.enable.ref.asadmin" depends="setInstanceName">
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="set servers.server.${depltest.instance.name}.application-ref.${testName}.enabled=true"/>
    </antcall>
    <antcall target="dotted.enableAppOnInstance">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<target name="common.dotted.disable.ref.asadmin" depends="setInstanceName">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="set servers.server.${depltest.instance.name}.application-ref.${testName}.enabled=false"/>
    </antcall>
    <antcall target="dotted.disableAppOnInstance">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<target name="common.dotted.enable.application.asadmin">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="set applications.application.${testName}.enabled=true"/>
    </antcall>
</target>

<target name="common.dotted.disable.application.asadmin">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="set applications.application.${testName}.enabled=false"/>
    </antcall>
</target>


<!-- enable using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.enable.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="enable ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
    <antcall target="enableAppOnInstance">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<!-- disable using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.disable.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="disable ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
    <antcall target="disableAppOnInstance">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<!-- create jms connection using asadmin -->
<target name="common.create.jms.connection" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-jms-resource ${ASADMIN-ARGS} --restype ${jms.factory.type} ${jms.factory.name}"/>
    </antcall>
</target>

<!-- delete jms connection using asadmin -->
<target name="common.delete.jms.connection" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-jms-resource ${ASADMIN-ARGS} ${jms.factory.name}"/>
    </antcall>
</target>

<!-- create jms destination resource using asadmin -->
<target name="common.create.jms.resource" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-jmsdest ${ASADMIN-ARGS} --desttype ${dest.type} ${dest.name}"/>
    </antcall>

    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-jms-resource ${ASADMIN-ARGS} --restype ${res.type} --property imqDestinationName=${dest.name} ${jms.resource.name}"/>
    </antcall>
</target>


<!-- delete jms destination resource using asadmin -->
<target name="common.delete.jms.resource" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-jms-resource ${ASADMIN-ARGS} ${jms.resource.name}"/>
    </antcall>

    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-jmsdest ${ASADMIN-ARGS} --desttype ${dest.type} ${dest.name}"/>
    </antcall>

</target>

<!-- deploy/undeploy jms resources  -->
<target name="common.deploy.jms" depends="init">
  <antcall target="common.create.jms.connection" />
  <antcall target="common.create.jms.resource" />
</target>

<target name="common.undeploy.jms" depends="init">
  <antcall target="common.delete.jms.connection" />
  <antcall target="common.delete.jms.resource" />
</target>

<target name="common.create.customresource">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-custom-resource ${ASADMIN-ARGS} --restype ${resource.type}
               --factoryclass ${resource.factory.class} --property value=${resource.value} ${resource.name}"/>
    </antcall>
</target>

<target name="common.delete.customresource">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-custom-resource ${ASADMIN-ARGS} ${resource.name}" />
    </antcall>
</target>

<!-- deploy using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.deploy.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="${deploy} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
    <antcall target="createAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<target name="common.redeploy.asadmin" depends="setAsadminArgs">
    <antcall target="delAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="${deploy} ${ASADMIN-ARGS} --force=true ${arg.list}"/>
    </antcall>
    <antcall target="createAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<!-- deploy using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.deploy.osgi.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="${deploy} ${ASADMIN-ARGS} --type osgi ${arg.list}"/>
    </antcall>
    <antcall target="createAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<target name="common.redeploy.osgi.asadmin" depends="setAsadminArgs">
    <antcall target="delAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="${deploy} ${ASADMIN-ARGS} --type osgi --force=true ${arg.list}"/>
    </antcall>
    <antcall target="createAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>

<!-- undeploy using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.undeploy.asadmin" depends="setAsadminArgs">
    <antcall target="delAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="${undeploy} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- v3 redeploy using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.v3.redeploy.asadmin" depends="setAsadminArgs">
    <antcall target="delAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="${redeploy} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
    <antcall target="createAppRef">
        <param name="testName" value="${testName}"/>
    </antcall>
</target>


<target name="createAppRef" depends="init,setEnabled" if="doCluster" unless="doRollingUpgrade">
    <echo message="Create Application Reference for ${testName}"/>
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="create-application-ref --user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testServer} --enabled ${enabled} ${testName}"/>
    </antcall>
</target>

<target name="delAppRef" depends="init" if="doCluster">
    <echo message="Delete Application Reference for ${testName}"/>
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="delete-application-ref --user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testServer} ${testName}"/>
    </antcall>
</target>

<target name="disableAppOnInstance" depends="init" if="doCluster">
    <echo message="Disable application for ${testName}"/>
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="disable --user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testServer} ${testName}"/>
    </antcall>
</target>

<target name="enableAppOnInstance" depends="init" if="doCluster" unless="doRollingUpgrade">
    <echo message="Enable application for ${testName}"/>
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="enable --user ${admin.user} --passwordfile ${passwordFile} --port ${admin.port} --target ${testServer} ${testName}"/>
    </antcall>
</target>

<target name="dotted.enableAppOnInstance" depends="init" if="doCluster">
    <antcall target="common.run.asadmin">
        <param name="arg.list" 
               value="set servers.server.${testServer}.application-ref.${testName}.enabled=true"/>
    </antcall>
</target>

<target name="dotted.disableAppOnInstance" depends="init" if="doCluster">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="set servers.server.${testServer}.application-ref.${testName}.enabled=false"/>
    </antcall>
</target>

<!-- deploydir using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.deploydir.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="${deploydir} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- redeploydir using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.redeploydir.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="${deploydir} ${ASADMIN-ARGS} --force=true ${arg.list}"/>
    </antcall>
</target>

<!-- redeploy using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.v3redeploy.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="${redeploy} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- redeploydir using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.v3redeploydir.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="${redeploy} ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>


<!-- @param ${arg.list} (required) -->
<target name="common.getclientstubs.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="get-client-stubs ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>


<!-- run asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.run.asadmin" depends="init">
    <echo message="${ASADMIN} ${arg.list}"/>
    <exec executable="${ASADMIN}">
        <arg line="${arg.list}"/>
    </exec>
</target>

<!-- create virtual server using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.create.virtual.server.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-virtual-server ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- create http listener using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.create.http.listener.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="create-http-listener ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- delete virtual server using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.delete.virtual.server.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-virtual-server ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- delete http listener using asadmin -->
<!-- @param ${arg.list} (required) -->
<target name="common.delete.http.listener.asadmin" depends="setAsadminArgs">
    <antcall target="common.run.asadmin">
        <param name="arg.list"
               value="delete-http-listener ${ASADMIN-ARGS} ${arg.list}"/>
    </antcall>
</target>

<!-- jsr88 deployer commands -->

<!-- deploy user jsr88 -->
<!-- @param ${arg.list} (required) -->
<target name="common.deploy.jsr88" >
    <antcall target="common.run.jsr88">
        <param name="command" value="deploy"/>
        <param name="arg.list" value="true ${arg.list}"/>
    </antcall>
</target>

<!-- use InputStream signature to deploy -->
<target name="common.deploy-stream.jsr88" >
    <antcall target="common.run.jsr88">
        <param name="command" value="deploy-stream"/>
        <param name="arg.list" value="true ${arg.list}"/>
    </antcall>
</target>

<!-- undeploy user jsr88 -->
<!-- @param ${arg.list} (required) -->
<target name="common.undeploy.jsr88" >
    <antcall target="common.run.jsr88">
        <param name="command" value="undeploy"/>
        <param name="arg.list" value="${arg.list}"/>
    </antcall>
</target>

<target name="common.run.positive">
    <antcall target="common.run">
        <param name="test-details" value="${desc}"/>
        <param name="sub-url" value="${link}"/>
        <param name="log-file" value="${log.id}"/>
        <param name="state" value="true"/>
    </antcall>
</target>

<target name="common.run.negative">
    <antcall target="common.run">
        <param name="test-details" value="${desc}"/>
        <param name="sub-url" value="${link}"/>
        <param name="log-file" value="${log.id}"/>
        <param name="state" value="false"/>
    </antcall>
</target>

<target name="common.run" depends="setHttpPort">
    <antcall target="checkAppOnServer"/>
    <antcall target="checkAppOnCluster">
        <param name="link" value="${sub-url}"/>
        <param name="state" value="${state}"/>
        <param name="log.id" value="${log-file}"/>
        <param name="details" value="${test-details}"/>
    </antcall>
</target>

<target name="checkAppOnServer">
    <antcall target="declare-test">
        <param name="description" value="${test-details} (server)"/>
    </antcall>
    <property name="url" value="http://${http.host}:${depltest.port}/${sub-url}"/>
    <antcall target="runclient">
        <param name="arg.list" value="${url} ${state} ${extra.args}"/>
        <param name="log.id" value="${log-file}"/>
    </antcall>
</target>


<target name="checkAppOnCluster" depends="init" if="doCluster">
    <antcall target="declare-test">
        <param name="description" value="${desc} (cluster-inst1)"/>
    </antcall>
    <property name="clurl1" value="http://${http.host}:${deploy.clusterinstance1.httpport}/${link}"/>
    <antcall target="runclient">
        <param name="arg.list" value="${clurl1} ${state} ${extra.args}"/>
        <param name="log.id" value="${log.id}CL1"/>
    </antcall>
</target>

<!-- run jsr88 -->
<!-- @param ${arg.list} (required) -->
<!--
<target name="common.run.jsr88" depends="init, compile.util">
-->
<!-- to disable running jsr88 tests, set the property -Drun.jsr88=false -->
<target name="common.run.jsr88" depends="init, compile.util" unless="run.jsr88" >
    <delete file="${testsRoot}/build/archives/DEPLOY_RESULT"/>

    <!--
        Due to differences in command line parsing on Windows and non-Windows systems we need
        to pass the possibly-empty admin.password differently.  
    -->
    <condition property="admin.password.arg" value="&quot;${admin.password}&quot;" else="${admin.password}">
        <os family="windows"/>
    </condition>

    <echo message="JSR88Deployer ${command} ${jsr88.uri} ${admin.user} ${admin.password}  ${arg.list}"/>
    <javaWithResult
            fork="true" 
            failonerror="false"
            jvm="${JAVA}"
            classname="devtests.deployment.util.JSR88Deployer"
            resultproperty="deployActionResult">
        <arg value="${command}"/>
        <arg value="${jsr88.uri}"/>
        <arg value="${admin.user}"/>
        <arg value="${admin.password.arg}"/>
        <arg line="${arg.list}"/>
<!--        <arg line="${command} ${jsr88.uri} ${admin.user} &quot;&quot; ${arg.list}"/> -->
        <classpath>
            <path refid="gfv3.classpath"/>
            <path location="${junit.jar}"/>
            <path location="${env.APS_HOME}/devtests/deployment/util/build"/>
        </classpath>
        <sysproperty key="com.sun.aas.installRoot" value="${inst}"/>
        <sysproperty key="deploymentTarget" value="${targetPlatform}"/>
        <sysproperty key="server" value="${appserver.instance.name}"/>
        <sysproperty key="java.library.path" value="${inst}/lib"/>
        <sysproperty key="com.sun.aas.configRoot" value="${inst}/config"/>
        <sysproperty key="java.endorsed.dirs" value="${inst}/lib/endorsed"/>
<!--
        <jvmarg value="-Xdebug"/>
        <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999"/>
-->
    </javaWithResult>
    <condition property="deployFailed">
        <or>
            <equals arg1="${deployActionResult}" arg2="-1"/>
            <equals arg1="${deployActionResult}" arg2="1"/>
        </or>
    </condition>
    <antcall target="deployActionFailed">
        <param name="indicator" value="${testsRoot}/build/archives/DEPLOY_RESULT"/>
    </antcall>
</target>

<target name="deployActionFailed" if="deployFailed">
    <touch file="${indicator}"/>
</target>

<target name="compile.util">
    <ant dir="${env.APS_HOME}/devtests/deployment/util" target="compile"/>
</target>

<target name="all" depends="init">
    <echo file="${testsRoot}/password.txt" append="false">AS_ADMIN_MASTERPASSWORD=changeit
</echo>
    <delete file="client.log"/>
    <touch file="client.log"/>
    <record name="client.log" action="start"/>
    <antcall target="preTestsRun"/>
    <antcall target="restart.server"/>
    <antcall target="private-all">
        <param name="build" value="${testsRoot}/build"/>
    </antcall>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="stop-domain"/>
    </exec>
    <antcall target="postTestsRun"/>
    <record name="client.log" action="stop"/>
    <echo message="Grep the file client.log for exception/Exception and ensure that none is present"/>
</target>
<target name="tim-run" depends="init">
  <antcall target="preTestsRun"/>
  <delete dir="${build}/setupdone"/>
  <antcall target="private-all">
    <param name="build" value="${testsRoot}/build"/>
  </antcall>
  <antcall target="postTestsRun"/>
</target>

<target name="all-ee" depends="init">
    <echo file="${testsRoot}/password.txt" append="false">AS_ADMIN_MASTERPASSWORD=changeit
</echo>
    <delete file="client.log"/>
    <touch file="client.log"/>
    <record name="client.log" action="start"/>
    <antcall target="preTestsRun"/>
    <antcall target="setup"/>
    <sleep seconds="60"/>
    <delete dir="${build}/setupdone"/>
    <antcall target="private-all">
        <param name="build" value="${testsRoot}/build"/>
    </antcall>
    <antcall target="unsetup"/>
    <antcall target="postTestsRun"/>
    <record name="client.log" action="stop"/>
    <echo message="Grep the file client.log for exception/Exception and ensure that none is present"/>
</target>

<target name="transform" depends="init">
    <style in="${root}/tests-results.xml" 
           out="${root}/results.html" extension=".html" 
           style="${testsRoot}/config/convert.xsl" destdir="."/>
    <condition property="hasAnnotation">
        <!-- need a better way to check if annotation is executed for this run -->
        <and>
           <or>
               <available file="${root}/annotation"/>
               <available file="../../annotation"/>
               <available file="./report"/>
           </or>
           <available file="${annotation.report.dir}"/>
        </and>
    </condition> 
    <antcall target="jutransform"/>
</target>

<target name="jutransform" depends="init" if="hasAnnotation">
    <mkdir dir="${annotation.report.dir}/html"/>
    <junitreport todir="${annotation.report.dir}">
        <fileset dir="${annotation.report.dir}">
            <include name="TEST-*.xml"/>
        </fileset>
        <report todir="${annotation.report.dir}/html"/>
    </junitreport>

    <style in="${annotation.report.dir}/TESTS-TestSuites.xml"
           out="${annotation.report.dir}/summary.txt" extension=".html"
           style="${testsRoot}/config/juconvert.xsl" destdir="."/>
    <concat destfile="results.html" append="true">
        <filelist dir="${annotation.report.dir}" files="summary.txt"/>
    </concat>
</target>

<target name="clean" depends="init">
    <delete dir="${testsRoot}/build"/>
    <delete dir="${annotation.report.dir}"/>
</target>

<!-- 
    Targets to process the test results 
-->
<target name="processResult">
    <condition property="testPassed">
    <and>
        <equals arg1="${result}" arg2="0" />
        <not>
            <available file="${testsRoot}/build/archives/DEPLOY_RESULT"/>
        </not>
    </and>
    </condition>
    <condition property="testFailed">
        <or>
            <equals arg1="${result}" arg2="-1"/>
            <equals arg1="${result}" arg2="1"/>
            <available file="${testsRoot}/build/archives/DEPLOY_RESULT"/>
        </or>
    </condition>
    <condition property="statusProvided">
        <or>
            <equals arg1="${result}" arg2="0"/>
            <equals arg1="${result}" arg2="-1"/>				
            <equals arg1="${result}" arg2="1"/>				
        </or>
    </condition>
    <dirname property="antfile.dir" file="${ant.file}"/>		
    <basename property="current.dir" file="${antfile.dir}"/>
    <antcall target="failed">
        <param name="testname" value="${current.dir}"/>
    </antcall>
    <antcall target="passed">
        <param name="testname" value="${current.dir}"/>
    </antcall>
    <antcall target="unknown">
        <param name="testname" value="${current.dir}"/>
    </antcall>
</target>

<!--
  Paramters: 
    testname - name of the test
    result - numeric value of the exit status from the client
    status - typically FAILED or UNKNOWN
    log - the log file containing the client output
-->
<target name="writeLogToConsole">
    <tstamp>
        <format property="failureNOW"  pattern="dd-MMM-yyyy HH:mm:ss.SSS"/>
    </tstamp>
    <echo message="Test ${testname} ${status} at ${failureNOW} with return code ${result}"/>
    <concat append="yes">
        <header trimleading="true">
        ==================  Error output  ==================
        </header>
        <footer trimleading="true">
        ==================  End of error output ==================
        </footer>
        <fileset file="${log}"/>
    </concat>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;result status="${status}" log="${log}"/></concat>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;/test></concat>
</target>

<target name="failed" if="testFailed">
    <antcall target="writeLogToConsole">
        <param name="status" value="FAILED"/>
    </antcall>
</target>

<target name="passed" if="testPassed">
    <echo message="Test ${testname} Passed"/>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;result status="PASSED" log="${log}"/></concat>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;/test></concat>	
</target>

<target name="unknown" unless="statusProvided">
    <antcall target="writeLogToConsole">
        <param name="status" value="UNKNOWN"/>
    </antcall>
</target>

<!-- @param ${description} (required) -->
<target name="declare-test">
    <dirname property="antfile.dir" file="${ant.file}"/>		
    <basename property="current.dir" file="${antfile.dir}"/>
    <echo message="Starting test ${current.dir} ${description}"/>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;test name="${current.dir}" description="${description}"></concat>
</target>

<!-- 
    Targets private to this xml file only 
-->
<target name="preTestsRun" depends="clean">
    <dirname property="antfile.dir" file="${ant.file}"/>		
    <basename property="current.dir" file="${antfile.dir}"/>
    <echo message="Running all ${current.dir} devtests"/>
    <mkdir dir="${testsRoot}/build/archives"/>
    <delete file="${root}/tests-results.xml"/>
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;tests></concat>		
</target>

<target name="restart.server">
    <echo message="Restarting server..."/>
    <exec executable="${ASADMIN}" failonerror="false">
        <arg line="stop-domain"/>
        <arg line="--force"/>
    </exec>
    <antcall target="start-process">
      <param name="line" value="start-domain --user ${admin.user} --passwordfile ${passwordFile}"/>
    </antcall>
</target>

<target name="setup" depends="init" unless="cluster.exists">
    <antcall target="setupDomain"/>
    <antcall target="setupInstance"/>
    <antcall target="setupCluster"/>
    <echo message="Running... asadmin list-instance"/>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="list-instances --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile}"/>
    </exec>
    <mkdir dir="${build}/setupdone"/>    
</target>

<target name="setupDomain">
    <echo message="Running... asadmin create-domain"/>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="create-domain --user ${admin.user} --nopassword=true --passwordfile ${passwordFile} --adminport ${admin.port} ${testDomain}"/>
    </exec>
    <echo message="Running... asadmin start-domain"/>
    <antcall target="start-process">
        <param name="line" value="start-domain --user ${admin.user} --passwordfile ${passwordFile} ${testDomain}"/>
    </antcall>
</target>

<target name="setupInstance">
    <echo message="Running... asadmin create-instance"/>
<echo>But first, try asadmin uptime</echo>
<exec executable="${ASADMIN}" failonerror="true">
  <arg value="uptime"/>
</exec>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="create-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} --systemproperties HTTP_LISTENER_PORT=${deploy.serverinstance.httpport}:HTTP_SSL_LISTENER_PORT=2100:IIOP_LISTENER_PORT=${deploy.serverinstance.orbport}:IIOP_SSL_LISTENER_PORT=2300:IIOP_SSL_MUTUALAUTH_PORT=2400:JMX_SYSTEM_CONNECTOR_PORT=2500:JMS_PROVIDER_PORT=2600:ASADMIN_LISTENER_PORT=2700 ${testServer}"/>
    </exec>
    <echo message="Running... asadmin start-instance"/>
    <antcall target="start-process">
        <param name="line" value="start-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testServer}"/>
    </antcall>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="list-instances --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile}"/>
    </exec>

</target>

<target name="setupCluster" if="doCluster">
    <echo message="Running... asadmin create-cluster"/>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="create-cluster --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testCluster}"/>
    </exec>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="create-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} --cluster ${testCluster} --systemproperties HTTP_LISTENER_PORT=${deploy.clusterinstance1.httpport}:HTTP_SSL_LISTENER_PORT=2101:IIOP_LISTENER_PORT=${deploy.clusterinstance1.orbport}:IIOP_SSL_LISTENER_PORT=2301:IIOP_SSL_MUTUALAUTH_PORT=2401:JMX_SYSTEM_CONNECTOR_PORT=2501:JMS_PROVIDER_PORT=2601:ASADMIN_LISTENER_PORT=2701 ${testClusterServer1}"/>
    </exec>
    <echo message="Running... asadmin start-cluster"/>
    <antcall target="startCluster"/>
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="list-instances --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile}"/>
    </exec>
</target>

<target name="start" depends="init" unless="SetupStarted">
    <echo message="Running... asadmin start-domain"/>
    <antcall target="start-process">
        <param name="line" value="start-domain --user ${admin.user} --passwordfile ${passwordFile} ${testDomain}"/>
    </antcall>
    <antcall target="startInstance"/>
    <antcall target="startCluster"/>
</target>

<target name="startInstance">
    <echo message="Running... asadmin start-instance"/>
    <antcall target="start-process">
        <param name="line" value="start-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testServer}"/>
    </antcall>
</target>

<target name="startCluster" if="doCluster">
    <echo message="Running... asadmin start-cluster"/>
    <antcall target="start-process">
        <param name="line" value="start-cluster --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testCluster}"/>
    </antcall>
</target>

<target name="stop" depends="init">
    <antcall target="stopInstance"/>
    <antcall target="stopCluster"/>
    <echo message="Running... asadmin stop-domain"/>
    <exec executable="${ASADMIN}">
        <arg line="stop-domain ${testDomain}"/>
    </exec>
</target>

<target name="stopInstance">
    <echo message="Running... asadmin stop-instance"/>
    <exec executable="${ASADMIN}">
        <arg line="stop-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testServer}"/>
    </exec>
</target>

<target name="stopCluster" if="doCluster">
    <echo message="Running... asadmin stop-cluster"/>
    <exec executable="${ASADMIN}">
        <arg line="stop-cluster --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testCluster}"/>
    </exec>
</target>

<target name="deleteCluster" if="doCluster">
    <!-- stop-cluster does not work so use stop-instance to make sure 
         instance is stopped before deleting it -->
    <echo message="Running... asadmin stop-instance"/>
    <exec executable="${ASADMIN}">
        <arg line="stop-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testClusterServer1}"/>
    </exec>
    <echo message="Running... asadmin delete-instance"/>
    <exec executable="${ASADMIN}">
        <arg line="delete-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testClusterServer1}"/>
    </exec>
    <echo message="Running... asadmin delete-cluster"/>
    <exec executable="${ASADMIN}">
        <arg line="delete-cluster --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testCluster}"/>
    </exec>
</target>


<target name="deleteInstance">
    <exec executable="${ASADMIN}">
        <arg line="delete-local-instance --port ${admin.port} --user ${admin.user} --passwordfile ${passwordFile} ${testServer}"/>
    </exec>
</target>

<target name="unsetupDomain">
    <echo message="Running... asadmin stop-domain"/>
    <exec executable="${ASADMIN}">
        <arg line="stop-domain ${testDomain}"/>
    </exec>
    <echo message="Running... asadmin delete-domain"/>
    <exec executable="${ASADMIN}">
        <arg line="delete-domain ${testDomain}"/>
    </exec>
    <delete dir="${s1as.home}/domains/${testDomain}"/>
</target>

<target name="unsetup" depends="init">
    <echo message="Cleaning up all the test setup"/>
    <antcall target="stopInstance"/>
    <antcall target="stopCluster"/>
    <!-- Copy the server logs to preserve them (for error diagnosis) after we delete the instances and the domain. -->
    <mkdir dir="server-logs"/>
    <mkdir dir="server-logs/${testDomain}/logs"/>
    <copy todir="server-logs/${testDomain}/logs">
       <fileset dir="${testDomain.dir}/logs" includes="*.log *.log.*"/>
    </copy>
    <mkdir dir="server-logs/${testServer}/logs"/>
    <copy todir="server-logs/${testServer}/logs">
       <fileset dir="${testServer.dir}/logs" includes="*.log *.log.*"/>
    </copy>
	<antcall target="copyClusterLog"/>
    <antcall target="deleteInstance"/>
    <antcall target="deleteCluster"/>
    <delete dir="${s1as.home}/nodeagents"/>
    <antcall target="unsetupDomain"/>
</target>

<target name="copyClusterLog" if="doCluster">
    <mkdir dir="server-logs/${testClusterServer1}/logs"/>
    <copy todir="server-logs/${testClusterServer1}/logs">
       <fileset dir="${testClusterServer1.dir}/logs" includes="*.log *.log.*"/>
    </copy>
</target>

<target name="postTestsRun">
    <concat destfile="${root}/tests-results.xml" append="yes">&lt;/tests></concat>		
    <echo message="Processing tests results"/>
    <antcall target="transform"/>
    <loadfile srcFile="results.html" property="results"/>
    <echo message="${results}"/>
</target>

<target name="init.os">
    <tstamp>
        <format property="start.time" pattern="MM/dd/yyyy hh:mm aa"/>
    </tstamp>
    <condition property="windows">
        <os family="windows" />
    </condition>
    <condition property="unix">
        <os family="unix" />
    </condition>
    <condition property="solaris">
        <equals arg1="${os.name}" arg2="SunOS"/>
    </condition>
    <condition property="linux">
        <equals arg1="${os.name}" arg2="Linux"/>
    </condition>
</target>

<target name="init.tools" depends="init.tools.unix, init.tools.windows"/>
<target name="init.tools.unix" if="unix">
    <property name="JAVA" value="${java.home}/bin/java"/>
    <property name="ASADMIN" value="${s1as.home}/bin/asadmin"/>
    <property name="WSCOMPILE" value="${s1as.home}/bin/wscompile"/>
    <property name="APPCLIENT" value="${s1as.home}/bin/appclient"/>
</target>
<target name="init.tools.windows" if="windows">
    <property name="JAVA" value="${java.home}/bin/java.exe"/>
    <property name="ASADMIN" value="${s1as.home}/bin/asadmin.bat"/>
    <property name="WSCOMPILE" value="${s1as.home}/bin/wscompile.bat"/>
    <property name="APPCLIENT" value="${s1as.home}/bin/appclient.bat"/>
</target>

<!-- 
    Targets to be deprecated 
-->

<target name="prepare-jsr88" >
    <ant dir="${env.APS_HOME}/devtests/deployment/jsr88/tester" target="compile">
        <property name="build" value="${build}"/>
    </ant>	
</target>

<target name="jsr88-deploy" depends="prepare-jsr88" >
    <java classname="tester.Deployer" fork="true">
        <jvmarg value="-Dcom.sun.aas.installRoot=${inst}"/>
        <jvmarg value="-Djava.library.path=${inst}/lib"/>
        <jvmarg value="-Dcom.sun.aas.configRoot=${inst}/config"/>
        <jvmarg value="-Djava.endorsed.dirs=${inst}/lib/endorsed"/> 
        <classpath>
            <pathelement path="${build}:${inst}/lib/j2ee.jar:${inst}/lib/appserv-rt.jar:${inst}/lib/appserv-admin.jar:${inst}/lib/dom.jar:${inst}/lib/xalan.jar:${inst}/lib/xercesImpl.jar"/>
        </classpath>
        <arg value="${deployablearchive}"/>
        <arg value="${deploymentplan}"/>
        <arg value="deployer:Sun:S1AS::${admin.host}:$(admin.port}"/>
        <arg value="${admin.user}"/>
        <arg value="${admin.password}"/>
    </java>
</target>  

<target name="list">
    <echo message="All AVAILABLE modules"/>
    <antcall target="common.run.jsr88">
        <param name="command" value="list"/>
        <param name="arg.list" value="all"/>
     </antcall>
     <echo message="All RUNNING modules"/>
     <antcall target="common.run.jsr88">
        <param name="command" value="list"/>
        <param name="arg.list" value="running"/>
     </antcall>
     <echo message="All NON-RUNNING modules"/>
     <antcall target="common.run.jsr88">
        <param name="command" value="list"/>
        <param name="arg.list" value="nonrunning"/>
     </antcall>
</target>



<!--
  On Windows, ant hangs when it runs an asadmin command that starts a process.
  To work around that, this task distinguishes between Windows and non-Windows
  systems and uses a custom ant task for Windows. 
  
  Any test that needs to start a process should NOT use ${ASADMIN} directly
  but should call this start-process target instead.  Pass the command line
  to be run as <param name="line" value="..."/>.
-->

<target name="start-process">
  <!--
    Set a property to the target to invoke, depending on the platform type.
  -->
  <condition property="start-target" value="start-process-windows">
    <isset property="windows"/>
  </condition>
  <condition property="start-target" value="start-process-non-windows">
    <not>
      <isset property="start-target"/>
    </not>
  </condition>
  
  <!--
    Invoke the target just chosen.
  -->
  <antcall target="${start-target}"/>
</target>


<!--
  The following task works around the Windows/Ant problem that causes
  the ant script to hang when it runs an asadmin command that starts
  a new process.
-->
<target name="start-process-windows">
      <taskdef name="spawn"
        classname="SpawnTask"
        classpath="${env.APS_HOME}/lib"/>
      <echo>Executing asadmin command: ${line}</echo>
      <spawn executable="${ASADMIN}" failifexecutionfails="false">
        <arg line="${line}"/>
      </spawn>
      <echo message=" ...Waiting for process(es) to be up ...(sleeping for ${start.process.delay.mins} minutes) " />
      <sleep minutes="${start.process.delay.mins}"/>
      <echo message=" Process(es) now assumed to be started."/>
</target>

<!--
  For non-Windows systems, ant works fine when invoking asadmin to start a 
  process, so do it that way for those systems.
-->
<target name="start-process-non-windows">
    <exec executable="${ASADMIN}" failonerror="true">
        <arg line="${line}"/>
    </exec>
</target>
