build.xml 20 KB

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