| <!-- | |
| 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> | |