build.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?xml version="1.0"?>
  2. <!--
  3. Build file for running container integration tests.
  4. $Id$
  5. -->
  6. <project name="acegi-security-integration-tests" default="usage" basedir=".">
  7. <property file="build.properties"/>
  8. <property file="project.properties"/>
  9. <path id="qa-portalpath">
  10. <fileset dir="${dist.lib.dir}">
  11. <include name="acegi-security-spring.jar"/>
  12. </fileset>
  13. <fileset dir="${lib.dir}">
  14. <include name="**/*.jar"/>
  15. </fileset>
  16. <fileset dir="${httpunit.lib.dir}">
  17. <include name="**/*.jar"/>
  18. </fileset>
  19. </path>
  20. <path id="jalopy-classpath">
  21. <fileset dir="${lib.dir}/jalopy">
  22. <include name="**/*.jar"/>
  23. </fileset>
  24. </path>
  25. <target name="usage">
  26. <echo message=""/>
  27. <echo message="${name} build file"/>
  28. <echo message="------------------------------------------------------"/>
  29. <echo message=""/>
  30. <echo message="Among the available targets are:"/>
  31. <echo message=""/>
  32. <echo message="clean --> deletes output directories"/>
  33. <echo message="unzip --> unzips each container into file system"/>
  34. <echo message="tests --> unzips each container and runs all tests"/>
  35. <echo message="tests-jetty --> runs the integration tests with Jetty"/>
  36. <echo message="tests-jboss --> runs the integration tests with JBoss"/>
  37. <echo message="tests-catalina --> runs the integration tests with Catalina"/>
  38. <echo message=""/>
  39. <echo message="Each tests-xxxx target assumes the container is unzipped"/>
  40. <echo message=""/>
  41. <echo message="BE SURE TO CHECK REPORTS DIRECTORY FOR RESULTS OF TESTS!"/>
  42. <echo message=" *** The script does NOT halt if a test fails ***"/>
  43. <echo message=""/>
  44. </target>
  45. <target name="clean" description="Clean all output dirs">
  46. <delete dir="${build.dir}"/>
  47. <delete dir="${tmp.dir}"/>
  48. <delete dir="${reports.dir}"/>
  49. </target>
  50. <target name="buildtests" depends="" description="Compile test source tree Java files into class files">
  51. <mkdir dir="${build.dir}"/>
  52. <javac destdir="${build.dir}" target="1.3" debug="${debug}"
  53. deprecation="false" optimize="false" failonerror="true">
  54. <src path="${src.dir}"/>
  55. <classpath refid="qa-portalpath"/>
  56. </javac>
  57. </target>
  58. <target name="format" description="Formats all project source code">
  59. <taskdef name="jalopy" classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
  60. <classpath refid="jalopy-classpath"/>
  61. </taskdef>
  62. <jalopy fileformat="unix"
  63. convention="${jalopy.xml}"
  64. history="file"
  65. historymethod="adler32"
  66. loglevel="error"
  67. threads="2"
  68. classpathref="qa-portalpath">
  69. <fileset dir="${src.dir}">
  70. <include name="**/*.java"/>
  71. </fileset>
  72. </jalopy>
  73. </target>
  74. <target name="tests" depends="clean,unzip,tests-jetty,tests-catalina,tests-jboss" description="Run all integration tests">
  75. <echo message="BE SURE TO CHECK REPORTS DIRECTORY FOR RESULTS OF TESTS!"/>
  76. </target>
  77. <target name="tests-jetty" depends="buildtests" description="Runs Jetty integration tests">
  78. <copy file="${config.dir}/jetty-${jetty.version}/jetty.xml" todir="${tmp.dir}/jetty-${jetty.version}/etc" overwrite="true"/>
  79. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jetty-${jetty.version}/etc" overwrite="true"/>
  80. <copy file="${dist.lib.dir}/acegi-security-jetty-ext.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  81. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  82. <copy file="${lib.dir}/jakarta-commons/commons-logging.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  83. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  84. <copy file="${contacts.war}" todir="${tmp.dir}/jetty-${jetty.version}/webapps" overwrite="true"/>
  85. <parallel>
  86. <java fork="true" dir="${tmp.dir}/jetty-${jetty.version}/" classpath="${tmp.dir}/jetty-${jetty.version}/start.jar" classname="org.mortbay.start.Main">
  87. </java>
  88. <sequential>
  89. <waitfor maxwait="240" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  90. <http url="http://localhost:8080/contacts" />
  91. </waitfor>
  92. <delete dir="${reports.dir}/jetty-${jetty.version}"/>
  93. <mkdir dir="${reports.dir}/jetty-${jetty.version}"/>
  94. <junit printsummary="yes" haltonfailure="no">
  95. <classpath location="${build.dir}"/>
  96. <classpath refid="qa-portalpath"/>
  97. <formatter type="xml"/>
  98. <batchtest fork="yes" todir="${reports.dir}/jetty-${jetty.version}">
  99. <fileset dir="${build.dir}" includes="${test.includes}" excludes="${test.excludes}"/>
  100. </batchtest>
  101. </junit>
  102. <java fork="true" dir="${tmp.dir}/jetty-${jetty.version}/" classpath="${tmp.dir}/jetty-${jetty.version}/stop.jar" classname="org.mortbay.stop.Main"/>
  103. </sequential>
  104. </parallel>
  105. <antcall target="-report">
  106. <param name="product" value="jetty-${jetty.version}"/>
  107. </antcall>
  108. </target>
  109. <target name="tests-catalina" description="Runs Catalina integration tests">
  110. <antcall target="-tests-catalina">
  111. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  112. </antcall>
  113. <antcall target="-tests-catalina">
  114. <param name="tomcat.version" value="${tomcat-5.version}"/>
  115. </antcall>
  116. </target>
  117. <target name="tests-catalina-4.1" description="Runs Catalina 4.1 integration tests">
  118. <antcall target="-tests-catalina">
  119. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  120. </antcall>
  121. </target>
  122. <target name="tests-catalina-5" description="Runs Catalina 5 integration tests">
  123. <antcall target="-tests-catalina">
  124. <param name="tomcat.version" value="${tomcat-5.version}"/>
  125. </antcall>
  126. </target>
  127. <target name="-tests-catalina" depends="buildtests" description="Runs Catalina integration tests">
  128. <delete dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps/contacts"/>
  129. <copy file="${config.dir}/catalina-${tomcat.version}/server.xml" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/conf" overwrite="true"/>
  130. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/conf" overwrite="true"/>
  131. <copy file="${dist.lib.dir}/acegi-security-catalina-server.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/server/lib" overwrite="true"/>
  132. <copy file="${dist.lib.dir}/acegi-security-catalina-common.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  133. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  134. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  135. <copy file="${contacts.war}" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps" overwrite="true"/>
  136. <property name="tomcat.home" value="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  137. <parallel>
  138. <java fork="true" classname="org.apache.catalina.startup.Bootstrap" dir="${tomcat.home}">
  139. <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
  140. <arg value="start"/>
  141. <classpath>
  142. <pathelement path="${java.home}/../lib/tools.jar"/>
  143. <fileset dir="${tomcat.home}">
  144. <include name="bin/bootstrap.jar"/>
  145. </fileset>
  146. </classpath>
  147. </java>
  148. <sequential>
  149. <waitfor maxwait="240" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  150. <http url="http://localhost:8080/contacts" />
  151. </waitfor>
  152. <delete dir="${reports.dir}/jakarta-tomcat-${tomcat.version}"/>
  153. <mkdir dir="${reports.dir}/jakarta-tomcat-${tomcat.version}"/>
  154. <junit printsummary="yes" haltonfailure="no">
  155. <classpath location="${build.dir}"/>
  156. <classpath refid="qa-portalpath"/>
  157. <formatter type="xml"/>
  158. <batchtest fork="yes" todir="${reports.dir}/jakarta-tomcat-${tomcat.version}">
  159. <fileset dir="${build.dir}" includes="${test.includes}" excludes="${test.excludes}"/>
  160. </batchtest>
  161. </junit>
  162. <java fork="true" classname="org.apache.catalina.startup.Bootstrap" dir="${tomcat.home}">
  163. <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
  164. <arg value="stop"/>
  165. <classpath>
  166. <pathelement path="${java.home}/../lib/tools.jar"/>
  167. <fileset dir="${tomcat.home}">
  168. <include name="bin/bootstrap.jar"/>
  169. </fileset>
  170. </classpath>
  171. </java>
  172. </sequential>
  173. </parallel>
  174. <antcall target="-report">
  175. <param name="product" value="jakarta-tomcat-${tomcat.version}"/>
  176. </antcall>
  177. </target>
  178. <target name="tests-jboss" depends="buildtests" description="Runs JBoss integration tests">
  179. <copy file="${config.dir}/jboss-${jboss.version}/login-config.xml" todir="${tmp.dir}/jboss-${jboss.version}/server/default/conf" overwrite="true"/>
  180. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jboss-${jboss.version}/server/default/conf" overwrite="true"/>
  181. <copy file="${dist.lib.dir}/acegi-security-jboss-lib.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  182. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  183. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  184. <copy file="${contacts.war}" todir="${tmp.dir}/jboss-${jboss.version}/server/default/deploy" overwrite="true"/>
  185. <parallel>
  186. <java fork="yes" classname="org.jboss.Main" dir="${tmp.dir}/jboss-${jboss.version}">
  187. <classpath>
  188. <pathelement path="${java.home}/../lib/tools.jar"/>
  189. <pathelement path="${tmp.dir}/jboss-${jboss.version}/bin/run.jar"/>
  190. </classpath>
  191. </java>
  192. <sequential>
  193. <waitfor maxwait="240" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  194. <http url="http://localhost:8080/contacts" />
  195. </waitfor>
  196. <delete dir="${reports.dir}/jboss-${jboss.version}"/>
  197. <mkdir dir="${reports.dir}/jboss-${jboss.version}"/>
  198. <junit printsummary="yes" haltonfailure="no">
  199. <classpath location="${build.dir}"/>
  200. <classpath refid="qa-portalpath"/>
  201. <formatter type="xml"/>
  202. <batchtest fork="yes" todir="${reports.dir}/jboss-${jboss.version}">
  203. <fileset dir="${build.dir}" includes="${test.includes}" excludes="${test.excludes}"/>
  204. </batchtest>
  205. </junit>
  206. <java fork="yes" classname="org.jboss.Shutdown" dir="${tmp.dir}/jboss-${jboss.version}">
  207. <arg value="--shutdown"/>
  208. <classpath>
  209. <pathelement path="${tmp.dir}/jboss-${jboss.version}/bin/shutdown.jar"/>
  210. </classpath>
  211. </java>
  212. </sequential>
  213. </parallel>
  214. <antcall target="-report">
  215. <param name="product" value="jboss-${jboss.version}"/>
  216. </antcall>
  217. </target>
  218. <target name="unzip" depends="unzip-jetty,unzip-catalina,unzip-jboss" description="Unzip all containers"/>
  219. <target name="unzip-jetty" depends="" description="Unzip Jetty container">
  220. <delete dir="${tmp.dir}/Jetty-${jetty.version}"/>
  221. <mkdir dir="${tmp.dir}/Jetty-${jetty.version}"/>
  222. <unzip src="${containers.dir}/Jetty-${jetty.version}-all.zip" dest="${tmp.dir}"/>
  223. </target>
  224. <target name="unzip-catalina" depends="" description="Unzip Catalina container">
  225. <antcall target="-unzip-catalina">
  226. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  227. </antcall>
  228. <antcall target="-unzip-catalina">
  229. <param name="tomcat.version" value="${tomcat-5.version}"/>
  230. </antcall>
  231. </target>
  232. <target name="unzip-catalina-4.1" depends="" description="Unzip Catalina 4.1 container">
  233. <antcall target="-unzip-catalina">
  234. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  235. </antcall>
  236. </target>
  237. <target name="unzip-catalina-5" depends="" description="Unzip Catalina 5 container">
  238. <antcall target="-unzip-catalina">
  239. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  240. </antcall>
  241. </target>
  242. <target name="-unzip-catalina" depends="" description="Unzip Catalina container">
  243. <delete dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  244. <mkdir dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  245. <unzip src="${containers.dir}/jakarta-tomcat-${tomcat.version}.zip" dest="${tmp.dir}"/>
  246. </target>
  247. <target name="unzip-jboss" depends="" description="Unzip JBoss container">
  248. <delete dir="${tmp.dir}/jboss-${jboss.version}"/>
  249. <mkdir dir="${tmp.dir}/jboss-${jboss.version}"/>
  250. <unzip src="${containers.dir}/jboss-${jboss.version}.zip" dest="${tmp.dir}"/>
  251. </target>
  252. <target name="-report" description="Generates a browsable HTML report of the test run">
  253. <mkdir dir="${reports.dir}/${product}/html"/>
  254. <junitreport todir="${reports.dir}/${product}">
  255. <fileset dir="${reports.dir}/${product}" includes="**/TEST-*.xml"/>
  256. <report format="frames" todir="${reports.dir}/${product}/html"/>
  257. </junitreport>
  258. </target>
  259. </project>