blob: 9a35134507ce2d6615fc4030d18478798255faf9 [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
-->
<property environment="env"/>
<property file="${env.APS_HOME}/config.properties"/>
<target name="test-all" depends="clean">
<basename file="${src-name}" property="server" suffix=".java"/>
<dirname file="${src-name}" property="directory"/>
<echo message="Starting Test ${directory}"/>
<basename file="${directory}" property="pkg-name"/>
<antcall target="deploy">
<param name="pkg-name" value="${pkg-name}"/>
</antcall>
<condition property="deploy_succeeded">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployed"/>
</condition>
<condition property="deploy_failed">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployFailed"/>
</condition>
<fail message="Deployment failed" if="deploy_failed"/>
<antcall target="run"/>
<echo message="Removing jar bundle ${server}.jar from autodeploy directory"/>
<antcall target="undeploy"/>
<antcall target="report"/>
</target>
<target name="clean">
<echo message="Clean from ${ant.file}"/>
<delete dir="${env.APS_HOME}/build/module/classes"/>
<delete dir="${env.APS_HOME}/build/module/archive"/>
<mkdir dir="${env.APS_HOME}/build/module/classes"/>
<mkdir dir="${env.APS_HOME}/build/module/archive"/>
</target>
<path id="classpath">
<fileset dir="${env.S1AS_HOME}/modules">
<include name="*.jar"/>
</fileset>
<fileset dir="${env.S1AS_HOME}/modules/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="${env.APS_HOME}/lib">
<include name="reporter.jar"/>
</fileset>
</path>
<target name="test-compile">
<echo message="Compiling into ${pkg-name}/${server}.class"/>
<javac srcdir="." destdir="${env.APS_HOME}/build/module/classes"
includes="${pkg-name}/*.java">
<classpath refid="classpath"/>
</javac>
</target>
<target name="compile-client">
<javac srcdir="." destdir="${env.APS_HOME}/build/module/classes"
includes="${client-src-name}">
<classpath refid="classpath"/>
</javac>
</target>
<target name="build">
<basename file="${src-name}" property="server" suffix=".java"/>
<dirname file="${src-name}" property="directory"/>
<basename file="${directory}" property="pkg-name"/>
<antcall target="test-compile"/>
<echo message="Building with package ${pkg-name}"/>
<jar destfile="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar"
basedir="${env.APS_HOME}/build/module/classes"
includes="${pkg-name}/**">
<metainf dir="${pkg-name}"
includes="*.xml **/*.wsdl **/*.xsd"/>
</jar>
</target>
<target name="deploy">
<antcall target="build"/>
<basename file="${src-name}" property="server" suffix=".java"/>
<waitfor maxwait="100" maxwaitunit="second">
<or>
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployed"/>
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployFailed"/>
</or>
</waitfor>
</target>
<target name="undeploy">
<basename file="${src-name}" property="server" suffix=".java"/>
<antcall target="autoundeploy-file">
<param name="filename" value="${server}.jar"/>
</antcall>
<condition property="undeploy_succeeded">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_undeployed"/>
</condition>
<condition property="undeploy_failed">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_undeployFailed"/>
</condition>
<fail if="undeploy_failed" message="undeployment failed"/>
</target>
<target name="autoundeploy-file">
<delete file="${env.S1AS_HOME}/domains/domain1/autodeploy/${filename}"/>
<waitfor maxwait="100" maxwaitunit="second">
<or>
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${filename}_undeployed"/>
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${filename}_undeployFailed"/>
</or>
</waitfor>
</target>
<target name="report" depends="internal-report-success, internal-report-failure">
<delete file="${env.S1AS_HOME}/domains/domain1/autodeploy/${class-name}_*"/>
</target>
<target name="run">
<basename file="${src-name}" property="server" suffix=".java"/>
<condition property="deploy_succeeded">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployed"/>
</condition>
<condition property="deploy_failed">
<available file="${env.S1AS_HOME}/domains/domain1/autodeploy/${server}.jar_deployFailed"/>
</condition>
<antcall target="prepare-client"/>
<antcall target="internal-run"/>
<!--restore the tokens back in file-->
<replace file="client/Client.java" token="${http.host}" value="HTTP_HOST"/>
<replace file="client/Client.java" token="${http.port}" value="HTTP_PORT"/>
</target>
<target name="wsdl-import">
<antcall target="configurable-wsdl-import">
<param name="host-name" value="${http.host}"/>
<param name="host-port" value="${http.port}"/>
<param name="protocol" value="http"/>
</antcall>
</target>
<target name="configurable-wsdl-import">
<echo message="wsimporting ${protocol}://${host-name}:${host-port}/${server}Service/${port}?WSDL; special args are ${wsimport-special-args}"/>
<exec executable="${env.S1AS_HOME}/bin/wsimport">
<arg line="-keep -d ${env.APS_HOME}/build/module/classes ${protocol}://${host-name}:${host-port}/${server}Service/${port}?WSDL"/>
</exec>
</target>
<target name="prepare-client">
<!--basename file="${server}" property="port" suffix="EJB"/-->
<basename file="${server}" property="port"/>
<antcall target="wsdl-import">
<param name="server" value="${server}"/>
<param name="port" value="${port}"/>
</antcall>
<replace file="client/Client.java" value="${http.host}" token="HTTP_HOST"/>
<replace file="client/Client.java" value="${http.port}" token="HTTP_PORT"/>
<antcall target="compile-client"/>
<antcall target="unjar-client-utils"/>
</target>
<target name="unjar-client-utils">
<unjar src="${env.APS_HOME}/lib/reporter.jar" dest="${env.APS_HOME}/build/module/classes"/>
</target>
<target name="internal-run" if="deploy_succeeded">
<basename file="${client-src-name}" property="client" suffix=".java"/>
<dirname file="${client-src-name}" property="client-directory"/>
<basename file="${client-directory}" property="client-pkg-name"/>
<property name="client-class-name" value="${client-pkg-name}/${client}.class"/>
<echo message="Running appclient with ${client-pkg-name}.${client} ${app-client-parameters} ${app-client-extra-parameters}"/>
<exec executable="${env.S1AS_HOME}/bin/appclient" dir="${env.APS_HOME}/build/module/classes">
<arg line="${client-pkg-name}.${client} ${app-client-parameters} ${app-client-extra-parameters}"/>
</exec>
</target>
<target name="internal-report-success" if="undeploy_succeeded">
<antcall target="report-success"/>
</target>
<target name="internal-report-failure" if="undeploy_failed, deploy_failed">
<antcall target="report-failure"/>
</target>