build.xml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project basedir="." default="help" xmlns:ivy="antlib:org.apache.ivy.ant">
  3. <property file="build.properties" />
  4. <property name="dir.base" value="."/>
  5. <property name="dir.source" value="src"/>
  6. <property name="dir.schema" value="defs/schema"/>
  7. <property name="dir.build" value="build/ant" />
  8. <property name="dir.build.cvs" value="build/cvs"/>
  9. <property name="hibernate.properties" value="${dir.schema}/hibernate.properties"/>
  10. <property name="dir.generated" value="${dir.build}/generated/src" />
  11. <property name="dir.compile.dest.domain" value="${dir.build}/generated/classes"/>
  12. <property name="dir.hibernate.mapping" value="defs/schema/hbm"/>
  13. <property name="dir.database" value="defs/sql"/>
  14. <property name="dir.dist" value="dist"/>
  15. <property name="dir.deps" value="lib"/>
  16. <property name="dir.lib" value="lib"/>
  17. <property name="dir.web" value="web"/>
  18. <property name="dir.web.lib" value="${dir.web}/WEB-INF/lib"/>
  19. <property name="compile.debug" value="true" />
  20. <property name="compile.deprecation" value="false" />
  21. <property name="compile.optimize" value="true" />
  22. <property name="compile.nowarn" value="true" />
  23. <property name="build.version" value="1.1.17"/>
  24. <property name="app.name" value="ieat" />
  25. <property name="app.path" value="/${app.name}" />
  26. <property name="app.home" value="/data/projects/ieat/web"/>
  27. <property name="app.home.backup" value="${app.home}.bak"/>
  28. <property name="env.src" value="example" />
  29. <property name="dir.env" value="environment"/>
  30. <property name="dir.env.src" value="${dir.env}/${env.src}"/>
  31. <property name="dir.env.src.defaults" value="${dir.env}/example"/>
  32. <property name="cvs.root" value="/data/cvs"/>
  33. <property name="cvs.compressionlevel" value="6" />
  34. <property name="cvs.module.name" value="ieatdb"/>
  35. <tstamp>
  36. <format property="build.time" pattern="MM/dd/yyyy hh:mm aa z" />
  37. </tstamp>
  38. <property name="version.properties" value="version.properties" />
  39. <property name="version.txt.name" value="version.txt" />
  40. <!-- HyperJAXB 2 properties -->
  41. <property name="hjb.dir" value="hyperjaxb2-build"/>
  42. <property name="hjb.db.type" value="postgres"/>
  43. <path id="jaxb.lib.path">
  44. <fileset dir="${dir.web.lib}" includes="*.jar"/>
  45. <fileset dir="${dir.deps}" includes="*.jar"/>
  46. <fileset dir="${dir.lib}" includes="**/*.jar"/>
  47. </path>
  48. <path id="hibernatedoclet.lib.path">
  49. <fileset dir="${dir.web.lib}" includes="*.jar"/>
  50. <fileset dir="${dir.lib}" includes="**/*.jar"/>
  51. </path>
  52. <path id="schemaexport.lib.path">
  53. <path refid="compile.path"/>
  54. </path>
  55. <path id="schemaexport.path">
  56. <path refid="compile.path"/>
  57. </path>
  58. <path id="compile.path">
  59. <pathelement location="${dir.build}/${app.name}/WEB-INF/classes"/>
  60. <fileset dir="${dir.web.lib}" includes="*.jar"/>
  61. <fileset dir="${dir.lib}" includes="**/*.jar"/>
  62. <fileset dir="${dir.deps}" includes="*.jar"/>
  63. </path>
  64. <target name="init">
  65. <mkdir dir="${dir.build}" />
  66. <mkdir dir="${dir.dist}" />
  67. <mkdir dir="${dir.generated}" />
  68. </target>
  69. <target name="check-has-env">
  70. <available file="${dir.env}" type="dir" property="has.env" />
  71. </target>
  72. <target name="ivy" description="Install ivy dependency manager" unless="ivy.installed">
  73. <mkdir dir="${user.home}/.ant/lib"/>
  74. <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar"/>
  75. <fail message="Ivy has been installed. Run the build again"/>
  76. </target>
  77. <target name="resolve-dependencies" description="Use ivy to resolve dependencies">
  78. <ivy:cachepath pathid="dir.deps">
  79. <dependency org="org.springframework" name="spring-web" rev="1.2.8" />
  80. <dependency org="org.springframework" name="spring-mock" rev="1.2.8"/>
  81. <dependency org="jmock" name="jmock" rev="1.0.1"/>
  82. <dependency org="org.jvnet.hyperjaxb2" name="hyperjaxb2-core" rev="0.6.2"/>
  83. <dependency org="org.jvnet.hyperjaxb2" name="hyperjaxb2-shared" rev="0.6.2"/>
  84. <dependency org="com.sun.xml.bind" name="jaxb-xjc" rev="1.0.6"/>
  85. <dependency org="org.apache.lucene" name="lucene-core" rev="2.2.0"/>
  86. <dependency org="concurrent" name="concurrent" rev="1.3.4"/>
  87. <dependency org="org.apache.derby" name="derbytools" rev="10.1.3.1"/>
  88. <dependency org="org.apache.derby" name="derby" rev="10.1.3.1"/>
  89. <!-- Outdated dependancies -->
  90. <dependency org="javax.faces" name="jsf-api" rev="1.1_02"/>
  91. <dependency org="javax.transaction" name="jta" rev="1.1"/>
  92. </ivy:cachepath>
  93. </target>
  94. <target name="compile.domain" depends="resolve-dependencies" description="Compile the JAXB classes">
  95. <delete dir="${dir.compile.dest.domain}" failonerror="no"/>
  96. <mkdir dir="${dir.compile.dest.domain}"/>
  97. <javac srcdir="${dir.generated}"
  98. destdir="${dir.compile.dest.domain}"
  99. debug="${compile.debug}"
  100. deprecation="${compile.deprecation}"
  101. optimize="${compile.optimize}"
  102. nowarn="${compile.nowarn}"
  103. target="1.6"
  104. source="1.6"
  105. fork="true"
  106. memoryinitialsize="256m"
  107. memorymaximumsize="400m"
  108. >
  109. <classpath refid="compile.path" />
  110. </javac>
  111. </target>
  112. <!-- HyperJAXB2 targets -->
  113. <target name="generate.domain" depends="init"
  114. description="Generate JAXB domain objects from XML schemas">
  115. <delete failonerror="no">
  116. <fileset dir="${hjb.dir}/src/main/resources">
  117. <include name="*.xjb"/>
  118. <include name="*.xsd"/>
  119. </fileset>
  120. </delete>
  121. <copy todir="${hjb.dir}/src/main/resources">
  122. <fileset dir="defs/schema">
  123. <include name="core.xsd"/>
  124. <include name="ui.xsd"/>
  125. </fileset>
  126. </copy>
  127. <copy todir="${hjb.dir}/src/main/resources">
  128. <fileset dir="defs/schema">
  129. <include name="binding.xml"/>
  130. </fileset>
  131. <mapper type="glob" from="*.xml" to="*.xjb"/>
  132. </copy>
  133. <delete>
  134. <fileset dir="${hjb.dir}/src/main/java">
  135. <include name="**"/>
  136. </fileset>
  137. </delete>
  138. <delete failonerror="no">
  139. <fileset dir="${hjb.dir}/target/generated-sources/xjc">
  140. <include name="magoffin/matt/ieat/domain/**"/>
  141. </fileset>
  142. </delete>
  143. <javac srcdir="${hjb.dir}/src/main/java"
  144. destdir="${hjb.dir}/src/main/java"
  145. debug="${compile.debug}"
  146. deprecation="${compile.deprecation}"
  147. optimize="${compile.optimize}"
  148. nowarn="${compile.nowarn}"
  149. target="1.6"
  150. source="1.6">
  151. <!--classpath refid="unit-test.path" /-->
  152. </javac>
  153. <ant antfile="build.xml" inheritall="false" target="generate-sources" dir="${hjb.dir}">
  154. <property name="hyperjaxb2.export.schema.properties.file"
  155. value="${basedir}/${dir.database}/${hjb.db.type}/hibernate.properties"/>
  156. </ant>
  157. <delete>
  158. <fileset dir="${dir.generated}">
  159. <include name="magoffin/matt/ieat/domain/*.*"/>
  160. <include name="magoffin/matt/ieat/domain/impl/**"/>
  161. </fileset>
  162. </delete>
  163. <copy todir="${dir.generated}">
  164. <fileset dir="${hjb.dir}/target/generated-sources/xjc">
  165. <include name="magoffin/matt/ieat/domain/**"/>
  166. </fileset>
  167. </copy>
  168. <!-- TODO copy tofile="${dir.database}/create-tables.${hjb.db.type}.sql"
  169. file="${hjb.dir}/sql/schema.sql"/-->
  170. </target>
  171. <!--
  172. Generate database DDL for entity tables. Pass the hjb.db.type parameter
  173. to change the exported DDL SQL syntax using one of the sub-directory names
  174. within defs/sql, e.g.
  175. ant -Dhjb.db.type=mysql export.database.schema
  176. Will use the defs/sql/mysql/hibernate.properties environment properties
  177. and generate the defs/sql/mysql/create.sql DDL script.
  178. -->
  179. <target name="export.database.schema" depends="compile"
  180. description="Generate RDBMS creation scripts via Hibernate">
  181. <taskdef name="schemaexport"
  182. classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
  183. classpathref="schemaexport.path"/>
  184. <mkdir dir="${dir.database}"/>
  185. <delete dir="${dir.build}/schema-export" failonerror="no"/>
  186. <mkdir dir="${dir.build}/schema-export"/>
  187. <unjar src="${dir.web.lib}/${app.name}-xml.jar"
  188. dest="${dir.build}/schema-export"/>
  189. <schemaexport
  190. properties="${dir.database}/${hjb.db.type}/hibernate.properties"
  191. quiet="no"
  192. text="yes"
  193. drop="no"
  194. delimiter=";"
  195. output="${dir.database}/${hjb.db.type}/create.sql">
  196. <fileset dir="${dir.build}/schema-export">
  197. <include name="**/*.hbm.xml"/>
  198. </fileset>
  199. </schemaexport>
  200. </target>
  201. <target name="jar.domain" description="Create source and binary JAR out of the JAXB classes">
  202. <!-- Generate the binary JAR with source attached -->
  203. <jar destfile="${dir.web.lib}/${app.name}-xml.jar">
  204. <fileset dir="${dir.compile.dest.domain}">
  205. <include name="magoffin/matt/ieat/domain/**"/>
  206. </fileset>
  207. <fileset dir="${dir.generated}">
  208. <include name="magoffin/matt/ieat/domain/**"/>
  209. </fileset>
  210. </jar>
  211. </target>
  212. <target name="generate-xml" description="Generate new JAXB jar from scratch"
  213. depends="generate.domain,compile.domain,jar.domain"/>
  214. <target name="prepare-war">
  215. <!-- Create build directories as needed -->
  216. <mkdir dir="${dir.build}/${app.name}" />
  217. <!-- Copy static content of this web application -->
  218. <copy todir="${dir.build}/${app.name}">
  219. <fileset dir="${dir.base}/${dir.web}">
  220. <exclude name="WEB-INF/web.xml"/>
  221. <exclude name="WEB-INF/classes/**"/>
  222. </fileset>
  223. </copy>
  224. <!-- Copy environment properties -->
  225. <copy todir="${dir.build}/${app.name}/WEB-INF/classes">
  226. <fileset dir="${dir.base}/environment/${env.src}"
  227. excludes="README.txt"/>
  228. </copy>
  229. <!-- Copy class resources -->
  230. <copy todir="${dir.build}/${app.name}/WEB-INF/classes">
  231. <fileset dir="${dir.source}" excludes="**/*.java"/>
  232. </copy>
  233. </target>
  234. <target name="compile" depends="resolve-dependencies" description="Compile source files">
  235. <mkdir dir="${dir.build}/${app.name}/WEB-INF/classes"/>
  236. <javac verbose="false" srcdir="${dir.source}"
  237. destdir="${dir.build}/${app.name}/WEB-INF/classes"
  238. debug="${compile.debug}"
  239. deprecation="${compile.deprecation}"
  240. optimize="${compile.optimize}"
  241. nowarn="${compile.nowarn}"
  242. target="1.6"
  243. source="1.6">
  244. <classpath refid="compile.path" />
  245. </javac>
  246. </target>
  247. <target name="war" depends="prepare-war,compile" description="Create application WAR">
  248. <mkdir dir="${dir.build}"/>
  249. <war warfile="${dir.build}/${app.name}.war"
  250. basedir="${dir.build}/${app.name}"
  251. webxml="${dir.base}/${dir.web}/WEB-INF/web.xml" />
  252. </target>
  253. <target name="clean" description="Delete build files">
  254. <delete dir="${dir.generated}" />
  255. <delete dir="${dir.build}" />
  256. </target>
  257. <target name="help" description="Display build help">
  258. <echo>iEat v${build.version}</echo>
  259. </target>
  260. <target name="demo" description="Create the Live Demo">
  261. <antcall target="prepare-war" inheritall="true">
  262. <param name="env.src" value="demo"/>
  263. </antcall>
  264. <antcall target="compile" inheritall="true"/>
  265. <mkdir dir="${dir.build}/${app.name}-demo"/>
  266. <copy todir="${dir.build}/${app.name}-demo">
  267. <fileset dir="${dir.base}/demo">
  268. <include name="jakarta-tomcat/**"/>
  269. <include name="*.sh"/>
  270. <include name="*.bat"/>
  271. </fileset>
  272. </copy>
  273. <!-- Expand database zip -->
  274. <unzip dest="${dir.build}/${app.name}-demo" src="${dir.base}/demo/db.zip"/>
  275. <!-- fix file permissions -->
  276. <chmod perm="755">
  277. <fileset dir="${dir.build}/${app.name}-demo">
  278. <include name="**/*.sh"/>
  279. </fileset>
  280. </chmod>
  281. <!-- create required empty directories -->
  282. <mkdir dir="${dir.build}/${app.name}-demo/jakarta-tomcat/logs"/>
  283. <mkdir dir="${dir.build}/${app.name}-demo/jakarta-tomcat/work"/>
  284. <mkdir dir="${dir.build}/${app.name}-demo/jakarta-tomcat/temp"/>
  285. <!-- copy Xalan to endorsed dir-->
  286. <mkdir dir="${dir.build}/${app.name}-demo/jakarta-tomcat/common/endorsed"/>
  287. <copy todir="${dir.build}/${app.name}-demo/jakarta-tomcat/common/endorsed">
  288. <fileset dir="${dir.base}/lib/xalan" includes="*.jar"/>
  289. </copy>
  290. <!-- add JavaMail, Derby, etc JARs -->
  291. <copy todir="${dir.build}/${app.name}-demo/jakarta-tomcat/common/lib">
  292. <fileset dir="${dir.base}/lib/javamail" includes="*.jar"/>
  293. <fileset dir="${dir.base}/lib/derby" includes="*.jar"/>
  294. </copy>
  295. <!-- copy app webapp -->
  296. <copy todir="${dir.build}/${app.name}-demo/jakarta-tomcat/webapps">
  297. <fileset dir="${dir.build}" includes="${app.name}/**"
  298. excludes="${app.name}/WEB-INF/classes/ieat.hbm.xml"/>
  299. </copy>
  300. <copy todir="${dir.build}/${app.name}-demo/jakarta-tomcat/webapps/${app.name}/WEB-INF">
  301. <fileset dir="${dir.base}/${dir.web}/WEB-INF" includes="web.xml"/>
  302. </copy>
  303. <copy todir="${dir.build}/${app.name}-demo/jakarta-tomcat/webapps/${app.name}/WEB-INF/classes">
  304. <fileset dir="${dir.base}/defs/sql/derby" includes="ieat.hbm.xml"/>
  305. </copy>
  306. <!-- copy readme -->
  307. <copy filtering="true" todir="${dir.build}/${app.name}-demo">
  308. <fileset dir="${dir.base}/defs/docs/demo"
  309. includes="README*.txt"/>
  310. <mapper type="glob" from="*.txt" to="*"/>
  311. <filterset>
  312. <filter token="VERSION" value="${build.version}" />
  313. <filter token="BUILD_DATE" value="${build.time}" />
  314. </filterset>
  315. </copy>
  316. </target>
  317. <!--
  318. Subversion build targets
  319. Build from SVN by first checking out the code using svn-checkout. Pass the tag
  320. to build with -Dsvn.tag=X, e.g.
  321. ant -Dsvn.tag=1.2 svn-checkout
  322. It helps to define the svn.dir.build environment property to a directory OUTSIDE
  323. the dir.build directory, so the checked-out sources are not deleted after every
  324. build. Then you can switch to a new release using the svn-switch task, e.g.
  325. ant -Dsvn.tag=1.3 svn-switch
  326. To perform a release, do
  327. ant -Dsvn.tag=X (svn-checkout or svn-switch) svn-src-release svn-bin-release svn-demo-release
  328. -->
  329. <!-- Copy environment properties (to catch local env) -->
  330. <target name="svn-prepare">
  331. <mkdir dir="${svn.dir.build}/${dir.env.src}"/>
  332. <copy todir="${svn.dir.build}/${dir.env.src}">
  333. <fileset dir="${dir.base}/${dir.env.src}" includes="**" excludes="README*"/>
  334. </copy>
  335. </target>
  336. <target name="svn-build" depends="clean,svn-prepare" description="Build from SVN tag versions">
  337. <property name="app.archive.name" value="${app.name}-${build.version}"/>
  338. <echo />
  339. <echo message="Building application version ${build.version}..."/>
  340. <ant dir="${svn.dir.build}" target="war" inheritall="true">
  341. <property name="build.version" value="${build.version}"/>
  342. <property name="dir.build" value="${dir.build}"/>
  343. <property name="app.name" value="${app.archive.name}"/>
  344. <property name="env.src" value="${svn.env.src}"/>
  345. </ant>
  346. </target>
  347. <target name="svn-demo-release" description="Create the Live Demo from SVN sources"
  348. depends="clean,init">
  349. <property name="app.archive.name" value="${app.name}-${build.version}"/>
  350. <property name="demo.build.dir" value="${app.archive.name}-livedemo"/>
  351. <!-- call the demo target on the code checked out from SVN -->
  352. <ant dir="${svn.dir.build}" inheritall="true" target="demo">
  353. <property name="dir.build" value="${dir.build}"/>
  354. <property name="build.version" value="${build.version}"/>
  355. <property name="env.src" value="demo"/>
  356. </ant>
  357. <!-- copy licenses -->
  358. <echo message="Copying licenses" />
  359. <mkdir dir="${dir.build}/${demo.build.dir}/licenses"/>
  360. <copy todir="${dir.build}/${demo.build.dir}/licenses" flatten="true">
  361. <fileset dir="${svn.dir.build}/defs/docs/licenses" includes="**/*.txt"/>
  362. <mapper type="glob" from="*.txt" to="*"/>
  363. <filterset>
  364. <filter token="VERSION" value="${build.version}" />
  365. <filter token="BUILD_DATE" value="${build.time}" />
  366. </filterset>
  367. </copy>
  368. <!-- copy demo build -->
  369. <echo message="Copying demo build into SVN tar structure"/>
  370. <copy todir="${dir.build}/${demo.build.dir}">
  371. <fileset dir="${dir.build}/${app.name}-demo" includes="**"/>
  372. </copy>
  373. <!-- fix file permissions -->
  374. <chmod perm="755">
  375. <fileset dir="${dir.build}/${demo.build.dir}">
  376. <include name="**/*.sh"/>
  377. </fileset>
  378. </chmod>
  379. <!-- tar it up -->
  380. <tar destfile="${dir.dist}/${app.archive.name}-livedemo.tbz2"
  381. compression="bzip2" longfile="gnu">
  382. <tarfileset dir="${dir.build}" mode="775">
  383. <include name="${demo.build.dir}/**/*.sh"/>
  384. </tarfileset>
  385. <tarfileset dir="${dir.build}">
  386. <include name="${demo.build.dir}/**"/>
  387. <exclude name="${demo.build.dir}/**/*.sh"/>
  388. </tarfileset>
  389. </tar>
  390. </target>
  391. <target name="svn-src-release"
  392. description="Build source release TAR from SVN tag versions">
  393. <property name="app.archive.name"
  394. value="${app.name}-${build.version}"/>
  395. <property name="release-source-dir-name"
  396. value="${app.archive.name}-src"/>
  397. <property name="release-source-dir"
  398. value="${dir.build}/${release-source-dir-name}" />
  399. <property name="release-source-name"
  400. value="${dir.dist}/${app.archive.name}-src.tbz2" />
  401. <echo message="Building source release ${release-source-name}" />
  402. <mkdir dir="${dir.dist}"/>
  403. <delete dir="${release-source-dir}" />
  404. <delete file="${release-source-name}" />
  405. <echo message="Creating source README" />
  406. <copy file="${svn.dir.build}/defs/docs/release/README.src.txt"
  407. tofile="${release-source-dir}/README" filtering="true">
  408. <filterset>
  409. <filter token="VERSION" value="${build.version}" />
  410. <filter token="BUILD_DATE" value="${build.time}" />
  411. </filterset>
  412. </copy>
  413. <echo message="Copying source to tar base directory" />
  414. <copy todir="${release-source-dir}">
  415. <fileset dir="${svn.dir.build}">
  416. <include name="**" />
  417. <include name=".*" />
  418. <exclude name="build/**" />
  419. <exclude name="dist/**" />
  420. <exclude name="${dir.env}/local/**" />
  421. </fileset>
  422. </copy>
  423. <tar tarfile="${release-source-name}" compression="bzip2"
  424. longfile="gnu">
  425. <tarfileset dir="${dir.build}"
  426. includes="${release-source-dir-name}/**" />
  427. </tar>
  428. </target>
  429. <!-- create binary release -->
  430. <target name="svn-bin-release" description="Build binary release TAR from SVN tag versions"
  431. depends="svn-build">
  432. <property name="release-dir-name"
  433. value="${app.archive.name}"/>
  434. <property name="release-dir"
  435. value="${dir.build}/${release-dir-name}" />
  436. <property name="release-name"
  437. value="${dir.dist}/${app.archive.name}.tbz2" />
  438. <echo message="Building binary release ${release-name}" />
  439. <delete dir="${release-dir}" />
  440. <delete file="${release-name}" />
  441. <echo message="Creating README" />
  442. <copy file="${dir.build}/defs/docs/release/README.bin.txt"
  443. tofile="${release-dir}/README" filtering="true">
  444. <filterset>
  445. <filter token="VERSION" value="${build.version}" />
  446. <filter token="BUILD_DATE" value="${build.time}" />
  447. </filterset>
  448. </copy>
  449. <echo message="Creating NOTES" />
  450. <copy filtering="true" todir="${release-dir}">
  451. <fileset dir="${dir.build}/defs/docs/release/notes"
  452. includes="notes-${build.version}.txt"/>
  453. <mapper type="merge" to="NOTES"/>
  454. <filterset>
  455. <filter token="VERSION" value="${build.version}" />
  456. <filter token="BUILD_DATE" value="${build.time}" />
  457. </filterset>
  458. </copy>
  459. <!-- create setup scripts -->
  460. <echo message="Creating setup scripts" />
  461. <mkdir dir="${release-dir}/setup/sql"/>
  462. <copy filtering="false" todir="${release-dir}/setup/sql">
  463. <fileset dir="${dir.build}/defs/sql"
  464. includes="**"/>
  465. </copy>
  466. <!-- copy JDBC drivers -->
  467. <echo message="Copying JDBC drivers" />
  468. <mkdir dir="${release-dir}/setup/lib"/>
  469. <copy todir="${release-dir}/setup/lib">
  470. <fileset dir="${dir.build}/lib/jdbc"
  471. includes="**"/>
  472. </copy>
  473. <!-- copy JavaMail libraries -->
  474. <echo message="Copying Java Mail JARs" />
  475. <mkdir dir="${release-dir}/setup/lib/javamail"/>
  476. <copy todir="${release-dir}/setup/lib/javamail">
  477. <fileset dir="${dir.build}/lib/javamail"
  478. includes="**"/>
  479. </copy>
  480. <!-- copy Xalan/Xerces libraries -->
  481. <echo message="Copying Xalan/Xerces JARs" />
  482. <mkdir dir="${release-dir}/setup/lib/xalan"/>
  483. <copy todir="${release-dir}/setup/lib/xalan">
  484. <fileset dir="${dir.build}/lib/xalan"
  485. includes="**"/>
  486. </copy>
  487. <!-- copy misc README files -->
  488. <echo message="Copying README files" />
  489. <copy filtering="true" todir="${release-dir}">
  490. <fileset dir="${dir.build}/defs/docs"
  491. includes="README-*.txt"/>
  492. <mapper type="glob" from="*.txt" to="*"/>
  493. <filterset>
  494. <filter token="VERSION" value="${build.version}" />
  495. <filter token="BUILD_DATE" value="${build.time}" />
  496. </filterset>
  497. </copy>
  498. <!-- copy licenses -->
  499. <echo message="Copying licenses" />
  500. <mkdir dir="${release-dir}/licenses"/>
  501. <copy todir="${release-dir}/licenses" flatten="true">
  502. <fileset dir="${dir.build}/defs/docs/licenses" includes="**/*.txt"/>
  503. <mapper type="glob" from="*.txt" to="*"/>
  504. <filterset>
  505. <filter token="VERSION" value="${build.version}" />
  506. <filter token="BUILD_DATE" value="${build.time}" />
  507. </filterset>
  508. </copy>
  509. <!-- copy war, removing version from name -->
  510. <copy file="${dir.build}/${app.archive.name}.war"
  511. tofile="${release-dir}/${app.name}.war"/>
  512. <!-- tar it alll up -->
  513. <mkdir dir="${dir.dist}"/>
  514. <tar tarfile="${release-name}" compression="bzip2" longfile="gnu">
  515. <tarfileset dir="${dir.build}"
  516. includes="${release-dir-name}/**">
  517. </tarfileset>
  518. </tar>
  519. </target>
  520. </project>