| <!-- |
| |
| Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0, which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| This Source Code may also be made available under the following Secondary |
| Licenses when the conditions for such availability set forth in the |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| version 2 with the GNU Classpath Exception, which is available at |
| https://www.gnu.org/software/classpath/license.html. |
| |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| |
| --> |
| |
| <!-- |
| For now this is a separate file. Later on it might be merged |
| with other the common file(appserv-tests/config/common.xml) |
| --> |
| |
| <!-- |
| Variable name guidelines |
| |
| - property names that are exported by the test framework(properties.xml) |
| should be of the form |
| build.some-property-name-here |
| |
| - ant targets defined by the test framework(this file) |
| should be of the form |
| common-do-my-job |
| |
| - properties that are to set by test authors and are dependent per test |
| (eg set in build.properties) and used in the test framework |
| should be of the form |
| my.app-name |
| compile.source.dir |
| |
| - properties specified by the test specific build.xml calling into |
| the common build target of the form |
| run.testng.classpath |
| run.testng.classfileset |
| compile.source.dir |
| --> |
| |
| <!-- |
| |
| @todo |
| |
| - change variable names to follow guidelines above |
| --> |
| |
| <!-- ================================================================ --> |
| <!-- Targets to clean class files and jars files --> |
| <!-- |
| Variables used: |
| ${build.classes.dir} |
| ${build.assemble.dir} |
| --> |
| <!-- ================================================================ --> |
| <target name="common-clean-classes" depends="init-common"> |
| <echo message="common.xml: Cleaning test source files: ${build.base.dir}" |
| level="verbose"/> |
| <delete dir="${build.base.dir}"/> |
| </target> |
| |
| <target name="common-clean-jars" depends="init-common"> |
| <delete dir="${build.assemble.dir}"/> |
| </target> |
| |
| <target name="common-clean" depends="init-common"> |
| <antcall target="common-clean-classes"/> |
| <antcall target="common-clean-jars"/> |
| </target> |
| |
| <!-- |
| @todo |
| |
| this target needs to figure out if the ${variable-nae} has been |
| defined or not and take appropriate action - exit ? |
| |
| parameters |
| - ${variable-name} |
| --> |
| <target name="verify-variable-defined"> |
| <!-- |
| if ${variable-name} defined |
| // great |
| else |
| // exit/warn - maybe have variants of the verify target to warn/exit |
| --> |
| </target> |
| |
| <!-- |
| Variables used: |
| @todo change the top 2 variable names |
| |
| ${build.classes.dir} |
| ${build.s1astest.classpath} |
| |
| ${compile.source.dir} |
| --> |
| <!-- ================================================================ --> |
| <target name="common-compile" depends="init-common" > |
| |
| <mkdir dir="${build.classes.dir}"/> |
| <echo message="common.xml: Compiling test source files" level="verbose"/> |
| <mkdir dir="${compile.source.dir}"/> |
| |
| <javac srcdir="${compile.source.dir}" |
| destdir="${build.classes.dir}" |
| classpath="${build.s1astest.classpath}" |
| debug="on" |
| failonerror="true"/> |
| </target> |
| |
| |
| <target name="test-tlds-exist"> |
| <available file="${tlds}" property="tlds-exist"/> |
| </target> |
| |
| <target name="test-tagfiles-exist"> |
| <available file="${tagfiles}" property="tagfiles-exist"/> |
| </target> |
| |
| <target name="common-copy-tlds" if="tlds-exist" |
| depends="common-delete-war-file,test-tlds-exist"> |
| |
| <mkdir dir="${build.classes.dir}/tmp/WEB-INF/tlds"/> |
| <copy todir="${build.classes.dir}/tmp/WEB-INF/tlds" failonerror="false"> |
| <fileset dir="${tlds}"> |
| <include name="**/*.tld"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="common-copy-tagfiles" if="tagfiles-exist" |
| depends="common-delete-war-file,test-tagfiles-exist"> |
| |
| <mkdir dir="${build.classes.dir}/tmp/WEB-INF/tags"/> |
| <copy todir="${build.classes.dir}/tmp/WEB-INF/tags" failonerror="false"> |
| <fileset dir="${tagfiles}"> |
| <include name="**/*.tag"/> |
| <include name="**/*.tagx"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| |
| <target name="common-delete-war-file"> |
| <delete file="${build.war.file}"/> |
| </target> |
| |
| |
| <!-- ================================================================ --> |
| <!-- |
| Variables Used: |
| @todo change variable names to be more meaningful names |
| |
| ${build.classes.dir} |
| ${build.assemble.dir} |
| |
| ${my-app-name} |
| |
| ${web.xml} |
| ... |
| --> |
| <!-- ================================================================ --> |
| <target name="common-build-war" if="hasWebclient" depends="init-common"> |
| <mkdir dir="${build.assemble.dir}"/> |
| <antcall target="common-package-war"> |
| <param name="build.war.classes" value="${build.classes.dir}"/> |
| <param name="build.war.file" value="${build.assemble.dir}/${my-app-name}-web.war"/> |
| </antcall> |
| </target> |
| |
| <target name="common-package-war" |
| depends="common-copy-tlds, common-copy-tagfiles"> |
| <echo message="my build classes dir is:${build.classes.dir}" level="verbose"/> |
| <mkdir dir="${build.classes.dir}/tmp"/> |
| <mkdir dir="${build.classes.dir}/tmp/WEB-INF"/> |
| <mkdir dir="${build.classes.dir}/tmp/WEB-INF/classes"/> |
| <mkdir dir="${build.classes.dir}/tmp/WEB-INF/lib"/> |
| <mkdir dir="lib"/> |
| <copy file="${sun-web.xml}" |
| tofile="${build.classes.dir}/tmp/WEB-INF/sun-web.xml" failonerror="false"/> |
| <copy todir="${build.classes.dir}/tmp/WEB-INF/lib" failonerror="false"> |
| <fileset dir="lib"> |
| <include name="**/*.jar"/> |
| <include name="**/*.zip"/> |
| </fileset> |
| </copy> |
| <copy file="${webservices.xml}" |
| tofile="${build.classes.dir}/tmp/WEB-INF/webservices.xml" |
| failonerror="false"/> |
| <copy file="${mappingfile.location}/${mappingfile.name}" |
| tofile="${build.classes.dir}/tmp/${mappingfile.name}" |
| failonerror="false"/> |
| <copy file="${wsdlfile.location}/${wsdlfile.name}" |
| tofile="${build.classes.dir}/tmp/WEB-INF/wsdl/${wsdlfile.name}" |
| failonerror="false"/> |
| <copy file="${tagPlugins.xml}" |
| tofile="${build.classes.dir}/tmp/WEB-INF/tagPlugins.xml" |
| failonerror="false"/> |
| <copy file="${web.xml}" |
| tofile="${build.classes.dir}/tmp/WEB-INF/web.xml"/> |
| <copy todir="${build.classes.dir}/tmp/WEB-INF/classes"> |
| <fileset dir="${build.war.classes}"> |
| <include name="**/*.class"/> |
| </fileset> |
| </copy> |
| <echo message="Creating war file ${build.war.file}" level="verbose"/> |
| <mkdir dir="${basedir}/docroot"/> |
| <jar jarfile="${build.war.file}" update="true"> |
| <fileset dir="${build.classes.dir}/tmp" casesensitive="yes"> |
| <include name="**/*class*"/> |
| </fileset> |
| <fileset dir="${basedir}/docroot" casesensitive="yes"> |
| <include name="**/*.html"/> |
| <include name="**/*.jsp"/> |
| <include name="**/*.jspx"/> |
| <include name="**/*.jspf"/> |
| <include name="**/*.gif"/> |
| <include name="**/*.do"/> |
| <include name="**/*.txt"/> |
| <exclude name="**/*.java,**/*.xml,**/*.properties"/> |
| </fileset> |
| <fileset dir="${build.classes.dir}/tmp/" casesensitive="true"> |
| <include name="WEB-INF/web.xml"/> |
| <include name="WEB-INF/sun-web.xml"/> |
| <include name="WEB-INF/webservices.xml"/> |
| <include name="WEB-INF/tagPlugins.xml"/> |
| <include name="WEB-INF/lib/*"/> |
| <include name="WEB-INF/lib/extra/*"/> |
| <include name="WEB-INF/tlds/*"/> |
| <include name="WEB-INF/tags/*"/> |
| <include name="WEB-INF/wsdl/${wsdlfile.name}"/> |
| <include name="${mappingfile.name}"/> |
| </fileset> |
| </jar> |
| <echo message="created war file ${build.war.file}" level="verbose"/> |
| <delete dir="${build.classes.dir}/tmp/WEB-INF" failonerror="false"/> |
| </target> |
| |
| |
| <target name="common-deploy-war"> |
| <antcall target ="common-pe-deploy-war"/> |
| <antcall target ="common-ee-deploy-war"/> |
| </target> |
| |
| <target name="common-pe-deploy-war" depends="init-common" unless="ee"> |
| <echo message="Deploying ${build.assemble.dir}/${my-app-name}-web.war from ${basedir}." |
| level="verbose"/> |
| <property name="precompilejsp" value="true"/> |
| <exec executable="${ASADMIN}" failonerror="false"> |
| <arg line="deploy"/> |
| <arg line="${as.props}"/> |
| <arg line="--contextroot ${my-contextroot}"/> |
| <arg line="--precompilejsp=${precompilejsp}"/> |
| <arg line="--upload=true"/> |
| <arg line="--target ${appserver.instance.name}"/> |
| <arg line="${build.assemble.dir}/${my-app-name}-web.war"/> |
| </exec> |
| </target> |
| |
| <target name="common-ee-deploy-war" if="ee"> |
| <property name="precompilejsp" value="true"/> |
| <exec executable="${ASADMIN}" failonerror="false"> |
| <arg line="deploy"/> |
| <arg line="${as.props}"/> |
| <arg line="--type web"/> |
| <arg line="--contextroot ${my-contextroot}"/> |
| <arg line="--precompilejsp=${precompilejsp}"/> |
| <arg line="--upload=true"/> |
| <arg line="--target ${appserver.instance.name}"/> |
| <arg line="${build.assemble.dir}/${my-app-name}-web.war"/> |
| </exec> |
| </target> |
| |
| <!-- undeploy the standalone war in AppServ --> |
| <target name="common-undeploy-war" depends="init-common"> |
| <echo message="Undeploying warfile ${my-app-name}-web from |
| ${build.assemble.dir}/${my-app-name}-web.war from ${basedir}." |
| level="verbose"/> |
| <exec executable="${ASADMIN}" failonerror="false"> |
| <arg line="undeploy"/> |
| <arg line="${as.props}"/> |
| <arg line="--target ${appserver.instance.name}"/> |
| <arg line="${my-app-name}-web"/> |
| </exec> |
| </target> |
| |
| <!-- Path to the TestNG library --> |
| <path id="path2testng"> |
| <pathelement location="${env.APS_HOME}/lib/testng.jar"/> |
| </path> |
| |
| <!-- TestNG ant task definition --> |
| <taskdef name="testng" |
| classpathref="path2testng" |
| classname="org.testng.TestNGAntTask"/> |
| |
| <!-- common task for compilation of TestNG tests --> |
| <!-- Variables needed |
| ${compile.testng.srcdir} |
| ${compile.testng.destdir} |
| ${compile.testng.classpath} |
| --> |
| <target name="common-compile-testng-tests" |
| description="compile testng tests" depends=""> |
| <delete dir="${compile.testng.destdir}"/> |
| <mkdir dir="${compile.testng.destdir}"/> |
| <javac debug="true" |
| fork="true" |
| source="1.5" |
| srcdir="${compile.testng.srcdir}" |
| destdir="${compile.testng.destdir}" |
| classpathref="${compile.testng.classpath}" |
| /> |
| </target> |
| |
| |
| <!-- Generate the TestNG report - uses junit --> |
| <!-- TestNG generates detailed reports in the output |
| directory(default test-output) but junit does a nice compilation |
| of all the test results --> |
| <target name="common-report"> |
| <delete dir="test-report"/> |
| <mkdir dir="test-report"/> |
| <echo message="Running report from common-build.xml ..."/> |
| <junitreport todir="test-report"> |
| <fileset dir="."> |
| <include name="**/test-output/**/*.xml"/> |
| <exclude name="**/testng-fail*.xml"/> |
| </fileset> |
| <report format="noframes" todir="test-report"/> |
| </junitreport> |
| </target> |
| |
| <!-- |
| The common target to run-groups. The following variables need |
| to be defined by caller: |
| ${run.testng.xmlfileset} |
| ${run.testng.classpath} |
| |
| ${run.testng.xmlfileset} should be a fileset refid |
| ${run.testng.classpath} should be a path refid |
| --> |
| <target name="common-run"> |
| <echo message="base dir: ${basedir}"/> |
| <delete dir="test-output"/> |
| <testng outputdir="test-output" |
| classpathref="${run.testng.classpath}" |
| xmlfilesetref="${run.testng.xmlfileset}"> |
| </testng> |
| </target> |
| |
| |
| <!-- The common target to run failed tests from the last run only. |
| Because of the way testng works(never overwrites testng-failed.xml |
| from previous runs and this keep accumulating causing ...) |
| common-run-failed moves that testng-failed.xml and moves it to |
| test-tmp directory. It then runs tests on test-tmp/testng-failed.xml |
| --> |
| <target name="common-run-failed"> |
| <delete dir="test-tmp/"/> |
| <move todir="test-tmp/"> |
| <fileset dir="." includes="**/test-output/**/testng-failed.xml"/> |
| </move> |
| <delete dir="test-output/"/> |
| <testng outputdir="test-output" |
| classpathref="${run.testng.classpath}"> |
| <!-- <classpath location="${build.dir}"/> --> |
| <xmlfileset dir="." |
| includes="test-tmp/**/testng-failed.xml"> |
| </xmlfileset> |
| </testng> |
| </target> |
| |
| <!-- |
| The common target to run-groups. The following variables need |
| to be defined by caller: |
| ${run.testng.classfileset} |
| ${run.testng.classpath} |
| |
| ${run.testng.classfileset} should be a fileset refid |
| ${run.testng.classpath} should be a path refid |
| |
| ${group-names} needs to be specified as well - |
| usually this should be done |
| by the caller that invokes ant |
| |
| Note: can't seem to run using testng with the groups option |
| and testng.xml files as in with xmlfilesetref or xmlfileset |
| --> |
| |
| <target name="common-run-groups"> |
| <delete dir="test-output"/> |
| |
| <echo message="value of run.testng.classpath ${run.testng.classpath}"/> |
| <echo message="value of run.testng.classfileset ${run.testng.classfileset}"/> |
| |
| <testng outputdir="test-output" |
| groups="${group-names}" |
| classfilesetref="${run.testng.classfileset}" |
| classpathref="${run.testng.classpath}"> |
| </testng> |
| </target> |
| |
| <!--WorkInProgress - compile and build the common util into a jar file library --> |
| <target name="compile-build-util"> |
| <delete dir="${env.APS_HOME}/build/util"/> |
| <mkdir dir="${env.APS_HOME}/build/util"/> |
| <javac srcdir="${env.APS_HOME}/devtestsNG/common/src" |
| destdir="${env.APS_HOME}/build/util" |
| classpath="${env.S1AS_HOME}/lib/javaee.jar:${env.S1AS_HOME}/lib/appserv-ext.jar"> |
| </javac> |
| <delete file="${env.APS_HOME}/lib/myutil.jar"/> |
| <jar destfile="${env.APS_HOME}/lib/myutil.jar" |
| basedir="${env.APS_HOME}/build/util"/> |
| </target> |
| |