blob: 7920b96560fa87d3940b211fd2bf1842071bc32b [file] [log] [blame]
<!--
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/javaee.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>
<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>
<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="true">
<arg line="stop-domain"/>
</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/wsgen"/>
<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/wsgen.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"/>
<classpath>
<pathelement path="${build}:${inst}/lib/javaee.jar:${inst}/lib/appserv-rt.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>