You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.xml 38KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978
  1. <!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->
  2. <!-- ========================================================================= -->
  3. <!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC), -->
  4. <!-- 2003-2005 Contributors -->
  5. <!-- All rights reserved. -->
  6. <!-- This program and the accompanying materials are made available -->
  7. <!-- under the terms of the Eclipse Public License v1.0 -->
  8. <!-- which accompanies this distribution and is available at -->
  9. <!-- http://www.eclipse.org/legal/epl-v10.html -->
  10. <!-- -->
  11. <!-- Contributors: (See CVS checkin's) -->
  12. <!-- Xerox/PARC initial implementation -->
  13. <!-- Adrian Colyer / George Harley eclipse plugin targets -->
  14. <!-- ========================================================================= -->
  15. <project name="build" default="all" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
  16. <target name="all" depends="aspectj">
  17. <antcall target="eclipse.plugins"/>
  18. </target>
  19. <target name="clean" depends="clean-directories"/>
  20. <target name="compile" depends="build-module"
  21. description="compile module ${module.name} (without tests, by default)"/>
  22. <target name="compile-tests" depends="init"
  23. description="compile module ${module.name} tests">
  24. <assemble-module-test module="${module.name}"/>
  25. </target>
  26. <target name="test" depends="compile-tests">
  27. <antcall target="do-test-junit"/>
  28. </target>
  29. <!-- ===================================================================== -->
  30. <!-- Init -->
  31. <!-- ===================================================================== -->
  32. <property name="modules.dir" location="${basedir}/.."/>
  33. <property name="module.name" value="${ant.project.name}"/>
  34. <import file="${modules.dir}/build/build-properties.xml"/>
  35. <target name="init" depends="init-properties,init-directories">
  36. <property name="build.config" value=""/>
  37. <property name="trim.testing.default" value="true"/>
  38. <property name="aj.installer.jar" location="${aj.dist.dir}/aspectj-${build.version.long}.jar"/>
  39. <available property="ant.lib.aspectjtools"
  40. file="${ant.home}/lib/aspectjtools.jar"
  41. value="Expect classpath errors from ${ant.home}/lib/aspectjtools.jar"/>
  42. <available property="ant.lib.aspectjrt"
  43. file="${ant.home}/lib/aspectjrt.jar"
  44. value="Expect classpath errors from ${ant.home}/lib/aspectjrt.jar"/>
  45. <available property="testing.drivers.all.available"
  46. file="${aj.jar.dir}/testing-drivers-all.jar"
  47. value="${aj.jar.dir}/testing-drivers-all.jar"/>
  48. </target>
  49. <target name="version-uptodate" depends="init,init-taskdefs"
  50. unless="version-uptodate.done">
  51. <!-- XXX change task to pre-check & avoid scan if dates uptodate -->
  52. <versionuptodate
  53. version="${build.version}"
  54. versionSourceFile="${aspectj.modules.dir}/bridge/src/org/aspectj/bridge/Version.java"
  55. versionTagFile="${aj.temp.dir}/versionUptodate"/>
  56. <available file="${aj.temp.dir}/versionUptodate"
  57. property="version.uptodate"/>
  58. <property name="version-uptodate.done" value="done"/>
  59. </target>
  60. <target name="init-version" depends="init,init-filters,version-uptodate" >
  61. <antcall target="init-filters"/>
  62. <copy file="${aspectj.modules.dir}/build/lib/BridgeVersion.java.txt"
  63. tofile="${aspectj.modules.dir}/bridge/src/org/aspectj/bridge/Version.java"
  64. overwrite="yes" filtering="yes"/>
  65. <property name="init.version.done" value="done"/>
  66. <!-- consider checking this in? -->
  67. </target>
  68. <!-- ===================================================================== -->
  69. <!-- Misc setup and warnings -->
  70. <!-- ===================================================================== -->
  71. <target name="warn.ant.lib.aspectjrt" if="ant.lib.aspectjrt">
  72. <echo message="----- WARNING: ${ant.lib.aspectjrt}" />
  73. </target>
  74. <target name="warn.ant.lib.aspectjtools" if="ant.lib.aspectjtools">
  75. <echo message="----- WARNING: ${ant.lib.aspectjtools}" />
  76. </target>
  77. <target name="fail-unless-boot-libraries-uptodate" depends="init"
  78. description="fail unless all boot libraries are up-to-date">
  79. <antcall target="verify-boot-lib">
  80. <param name="boot.lib" value="test/aspectjrt.jar"/>
  81. <param name="vbl.module.name" value="runtime"/>
  82. </antcall>
  83. <antcall target="verify-boot-lib">
  84. <param name="boot.lib" value="build/build.jar"/>
  85. <param name="vbl.module.name" value="build"/>
  86. </antcall>
  87. <antcall target="verify-boot-lib">
  88. <param name="boot.lib" value="test/testing-client.jar"/>
  89. <param name="vbl.module.name" value="testing-client"/>
  90. </antcall>
  91. <echo message="fyi, bridge/util changes rarely mean client is invalid"/>
  92. <antcall target="verify-boot-lib">
  93. <param name="boot.lib" value="test/testing-client.jar"/>
  94. <param name="vbl.module.name" value="util"/>
  95. </antcall>
  96. <antcall target="verify-boot-lib">
  97. <param name="boot.lib" value="test/testing-client.jar"/>
  98. <param name="vbl.module.name" value="bridge"/>
  99. </antcall>
  100. <echo message="all boot libraries verified"/>
  101. </target>
  102. <target name="update-tree" depends="init"
  103. description="update tree">
  104. <fail unless="CVSROOT"
  105. message="required: {ant} -DCVSROOT=... ..."/>
  106. <cvs cvsRoot="${CVSROOT}"
  107. dest="${aspectj.modules.dir}"
  108. quiet="on"
  109. failonerror="on"
  110. command="update -dP" />
  111. </target>
  112. <!-- ===================================================================== -->
  113. <!-- antcall targets -->
  114. <!-- ===================================================================== -->
  115. <target name="build-product" depends="init,init-taskdefs,init-version" description="build $${product.name}">
  116. <ajbuild jarDir="${aj.jar.dir}"
  117. baseDir="${aspectj.modules.dir}"
  118. distDir="${aj.dist.dir}"
  119. productDir="${aspectj.modules.dir}/build/products/${product.name}"
  120. trimTesting="true"
  121. buildConfig="${build.config}"
  122. version="${build.version.long}"
  123. verbose="${build.verbose}"
  124. failonerror="true"/>
  125. </target>
  126. <target name="build-module" depends="init,init-taskdefs,init-version">
  127. <ajbuild module="${module.name}"
  128. baseDir="${aspectj.modules.dir}"
  129. distDir="${aj.dist.dir}"
  130. jarDir="${aj.jar.dir}"
  131. trimTesting="${trim.testing}"
  132. buildConfig="${build.config}"
  133. version="${build.version.long}"
  134. verbose="${build.verbose}"
  135. assembleall="${assemble}"
  136. failonerror="true"/>
  137. </target>
  138. <macrodef name="build-module-all">
  139. <attribute name="module"/>
  140. <attribute name="trimTesting" default="${trim.testing.default}"/>
  141. <sequential>
  142. <antcall target="build-module">
  143. <param name="module.name" value="@{module}"/>
  144. <param name="trim.testing" value="@{trimTesting}"/>
  145. <param name="assemble" value="true"/>
  146. </antcall>
  147. </sequential>
  148. </macrodef>
  149. <macrodef name="build-module">
  150. <attribute name="module"/>
  151. <attribute name="trimTesting" default="${trim.testing.default}"/>
  152. <attribute name="assemble" default="false"/>
  153. <sequential>
  154. <antcall target="build-module">
  155. <param name="module.name" value="@{module}"/>
  156. <param name="trim.testing" value="@{trimTesting}"/>
  157. <param name="assemble" value="@{assemble}"/>
  158. </antcall>
  159. </sequential>
  160. </macrodef>
  161. <macrodef name="assemble-module-test">
  162. <attribute name="module"/>
  163. <sequential>
  164. <build-module module="@{module}" assemble="true" trimTesting="false"/>
  165. </sequential>
  166. </macrodef>
  167. <target name="create-installer" depends="init,init-taskdefs,init-filters"
  168. description="create ${installer.file} from ${staging.dir} using ${htmlSrc.dir} and ${simpleClassName}">
  169. <!-- init-filters: filter on copy used by ajinstaller taskdef -->
  170. <delete quiet="on" file="${installer.file}"/>
  171. <ajinstaller zipfile="${installer.file}"
  172. installerclassjar="${aspectj.build.jar}"
  173. basedir="${staging.dir}"
  174. mainclass="$$installer$$.org.aspectj.${simpleClassName}"
  175. htmlSrc="${htmlSrc.dir}"
  176. resourcesSrc="${aspectj.modules.build.dir}/installer-resources"/>
  177. </target>
  178. <target name="verify-boot-lib" depends="init"
  179. description="fail if ${boot.lib} is out of date wrt ${vbl.module.name}">
  180. <uptodate property="lib-warning-${vbl.module.name}"
  181. targetfile="${aspectj.modules.dir}/lib/${boot.lib}">
  182. <srcfiles dir="${aspectj.modules.dir}/${vbl.module.name}/src"
  183. includes="**/*.java"/>
  184. </uptodate>
  185. <fail unless="lib-warning-${vbl.module.name}"
  186. message="${boot.lib} out of date wrt module ${vbl.module.name}"/>
  187. </target>
  188. <!-- ===================================================================== -->
  189. <!-- test targets -->
  190. <!-- ===================================================================== -->
  191. <target name="test-run-all-junit-tests"
  192. depends="init"
  193. description="run unit tests via run-all-junit-tests module">
  194. <antcall target="test">
  195. <param name="module.name" value="run-all-junit-tests"/>
  196. </antcall>
  197. </target>
  198. <target name="test-compiler-tests"
  199. depends="init"
  200. description="run compiler tests via tests module">
  201. <antcall target="test">
  202. <param name="module.name" value="tests"/>
  203. </antcall>
  204. </target>
  205. <target name="test-each-module"
  206. depends="init"
  207. description="run JUnit tests for each module">
  208. <subant target="test">
  209. <filelist dir="${aspectj.modules.dir}"
  210. files="${aspectj.tools.modules},${aspectj.test.modules}"/>
  211. </subant>
  212. </target>
  213. <!--
  214. <target name="ivy.init" unless="ivy.initialized">
  215. <property name="ivy.lib.dir" value="n:/apache-ivy-2.1.0/lib"/>
  216. <property name="ivy.settings.file" value="n:/workspaces/aspectj16_1/build/ivysettings.xml"/>
  217. <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant">
  218. <classpath>
  219. <path location="${ivy.lib.dir}/ivy.jar"/>
  220. <path location="${ivy.lib.dir}/org.springframework.build.aws.ivy.jar"/>
  221. <path location="${ivy.lib.dir}/commons-codec.jar"/>
  222. <path location="${ivy.lib.dir}/commons-httpclient.jar"/>
  223. <path location="${ivy.lib.dir}/commons-logging.jar"/>
  224. <path location="${ivy.lib.dir}/jets3t.jar"/>
  225. <path location="${ivy.lib.dir}"/>
  226. </classpath>
  227. </taskdef>
  228. <ivy:settings file="${ivy.settings.file}"/>
  229. <property name="ivy.initialized" value="true"/>
  230. </target>
  231. -->
  232. <target name="maven.init" >
  233. <property name="org.apache.maven.ant.version" value="2.0.10"/>
  234. <property name="org.springframework.build.aws.maven.version" value="2.0.0.RELEASE"/>
  235. <!--
  236. <ivy:cachepath resolveId="maven.ant.tasks.classpath" pathid="maven.ant.tasks.classpath"
  237. organisation="org.apache.maven" module="com.springsource.org.apache.maven.ant"
  238. revision="${org.apache.maven.ant.version}" conf="runtime" type="jar" inline="true" log="download-only"/>
  239. -->
  240. <!--
  241. <taskdef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant"
  242. classpathref="maven.ant.tasks.classpath"/>
  243. -->
  244. <maven:install-provider groupId="org.springframework.build.aws" artifactId="org.springframework.build.aws.maven"
  245. version="${org.springframework.build.aws.maven.version}"/>
  246. <!--
  247. <maven:install-provider groupId="org.springframework.build" artifactId="aws.maven"
  248. version="${org.springframework.build.aws.maven.version}"/>
  249. -->
  250. </target>
  251. <target name="junitreport" depends="init,init-taskdefs"
  252. if="junitreport.available">
  253. <clean-dir dir="${aj.junit.dir}/html"/>
  254. <junitreport todir="${aj.junit.dir}/html">
  255. <fileset dir="${aj.junit.dir}">
  256. <include name="**/TEST-*.xml"/>
  257. </fileset>
  258. <report format="frames" todir="${aj.junit.dir}/html"/>
  259. </junitreport>
  260. <pathconvert property="jur.url" targetos="unix">
  261. <path location="${aj.junit.dir}/html/index.html"/>
  262. </pathconvert>
  263. <echo message="see file:${jur.url}"/>
  264. </target>
  265. <target name="do-test-junit"
  266. depends="init-taskdefs"
  267. description="run junit tests for a module using module root or leaves">
  268. <property name="dtj.dir"
  269. location="${aj.junit.dir}/${module.name}"/>
  270. <mkdir dir="${dtj.dir}"/>
  271. <condition property="dtj.includes"
  272. value="${junit.includes}"
  273. else="${junit.rootSuites}">
  274. <istrue value="${junit.leaves}"/>
  275. </condition>
  276. <condition property="dtj.excludes"
  277. value="${junit.excludes}"
  278. else="">
  279. <istrue value="${junit.leaves}"/>
  280. </condition>
  281. <junit
  282. dir="${aspectj.modules.build.dir}"
  283. failureproperty="test-junit-${module.name}.failed"
  284. fork="on"
  285. forkmode="perTest"
  286. maxmemory="400m"
  287. includeAntRuntime="off"
  288. printsummary="yes"
  289. haltonfailure="${haltOnTestFailure}" >
  290. <classpath>
  291. <pathelement location="${aj.jar.dir}/${module.name}-test-all.jar"/>
  292. <!-- see skipped libraries in Builder.properties -->
  293. <pathelement location="${jdk.tools.jar}"/>
  294. <pathelement location="${aspectj.modules.lib.dir}/junit/junit.jar"/>
  295. <fileset dir="${aspectj.modules.lib.dir}/commons" includes="commons.jar"/>
  296. <!-- XML api's used by loadtime, also needed when running under 1.3 per Ant FAQ -->
  297. <fileset dir="${aspectj.modules.lib.dir}/ant/lib"
  298. includes="ant.jar,ant-junit.jar,xml-apis.jar,xercesImpl.jar"/>
  299. </classpath>
  300. <jvmarg value="-Daspectjrtpath=${lib.test.aspectjrt.jar}" />
  301. <formatter type="xml"/>
  302. <batchtest todir="${dtj.dir}">
  303. <fileset dir="${modules.dir}/${module.name}/testsrc"
  304. includes="${dtj.includes}"
  305. excludes="${dtj.excludes}"/>
  306. </batchtest>
  307. </junit>
  308. <report-if-failed text="JUnit tests for ${module.name} failed"
  309. property="test-junit-${module.name}.failed"/>
  310. </target>
  311. <!-- ===================================================================== -->
  312. <!-- custom targets -->
  313. <!-- ===================================================================== -->
  314. <target name="build-harness-jar" depends="init"
  315. description="build harness jar from scratch">
  316. <antcall target="clean-jars"/>
  317. <assemble-module-test module="testing-drivers"/>
  318. </target>
  319. <target name="build-testing-jars" depends="init"
  320. description="build testing jars from scratch">
  321. <antcall target="build-harness-jar"/>
  322. </target>
  323. <target name="build-testing-client" depends="init-taskdefs,init">
  324. <build-module module="testing-client" assemble="true"/>
  325. <assemble-module-test module="testing-client"/>
  326. <echo>
  327. To use testing client jar in tests,
  328. mv ../aj-build/jars/testing-client-all.jar ../lib/tests/testing-client.jar
  329. </echo>
  330. </target>
  331. <target name="aspectj" depends="init,aspectjtools-dist,docs-dist" description="create installer from local distributions">
  332. <property name="installer.staging.dir" location="${aj.temp.dir}/installer-staging"/>
  333. <clean-dir dir="${installer.staging.dir}"/>
  334. <copy todir="${installer.staging.dir}">
  335. <fileset dir="${aj.dist.dir}/tools"/>
  336. <fileset dir="${aj.dist.dir}/docs"/>
  337. </copy>
  338. <antcall target="create-installer">
  339. <param name="installer.file" location="${aj.installer.jar}"/>
  340. <param name="staging.dir" location="${installer.staging.dir}"/>
  341. <param name="htmlSrc.dir" location="${aspectj.modules.build.dir}/products/aspectj/install"/>
  342. <param name="simpleClassName" value="ToolsInstaller"/>
  343. </antcall>
  344. <delete dir="${installer.staging.dir}"/>
  345. </target>
  346. <target name="docs-dist" depends="init">
  347. <ant dir="${aspectj.modules.dir}/docs"
  348. antfile="build.xml"
  349. target="local-dist"
  350. inheritAll="false"/>
  351. </target>
  352. <target name="aspectjrt" depends="init"
  353. description="build aspectjrt.jar (differently than release)">
  354. <build-module-all module="aspectj5rt"/>
  355. <copy file="${aj.jar.dir}/aspectj5rt-all.jar"
  356. tofile="${aj.jar.dir}/aspectjrt.jar"/>
  357. </target>
  358. <target name="compile-runtime-11" depends="init-properties"
  359. description="compile runtime under 1.1 - fails, but by how much?">
  360. <condition property="cr1.in13">
  361. <equals arg1="1.3" arg2="${ant.java.version}"/>
  362. </condition>
  363. <antcall target="compile-runtime-11-flag-unless13"/>
  364. <antcall target="compile-runtime-11-do-if13"/>
  365. </target>
  366. <target name="compile-runtime-11-flag-unless13" depends="init-properties"
  367. unless="cr1.in13">
  368. <echo message="Skipping compile-runtime-11 unless 1.3"/>
  369. </target>
  370. <target name="compile-runtime-11-do-if13" depends="init-properties"
  371. if="cr1.in13">
  372. <mkdir dir="${aj.build.dir}/classes-1.1"/>
  373. <property name="java11.classes.zip"
  374. location="${java11.home}/lib/classes.zip"/>
  375. <available property="classes.zip.available"
  376. file="${java11.classes.zip}"/>
  377. <fail unless="classes.zip.available" message="no 1.1 bootclasspath"/>
  378. <javac
  379. compiler="javac1.1"
  380. bootclasspath="${java11.classes.zip}"
  381. source="1.3"
  382. includejavaruntime="no"
  383. includeantruntime="no"
  384. destdir="${aj.build.dir}/classes-1.1"
  385. srcdir="${aspectj.modules.dir}/runtime/src"
  386. target="1.1"
  387. verbose="false"
  388. failonerror="true"
  389. />
  390. <delete dir="${aj.build.dir}/classes-1.1"/>
  391. </target>
  392. <!-- ===================================================================== -->
  393. <!-- boilerplate antcalls -->
  394. <!-- ===================================================================== -->
  395. <!-- for any-[module|product], define [module|product].name -->
  396. <target name="any-module" depends="init">
  397. <fail unless="module.name" message="use -Dmodule.name=... to define"/>
  398. <build-module module="${module.name}"/>
  399. </target>
  400. <target name="any-module-all" depends="init">
  401. <fail unless="module.name" message="use -Dmodule.name=... to define"/>
  402. <build-module-all module="${module.name}"/>
  403. </target>
  404. <target name="any-product" depends="init">
  405. <fail unless="product.name" message="use -Dproduct.name=... to define"/>
  406. <antcall target="build-product">
  407. <param name="product.name" value="${product.name}"/>
  408. </antcall>
  409. </target>
  410. <target name="ajbrowser-all" >
  411. <build-module-all module="ajbrowser"/>
  412. </target>
  413. <target name="ajdoc-all">
  414. <build-module-all module="ajdoc"/>
  415. </target>
  416. <target name="build">
  417. <build-module-all module="build"/>
  418. </target>
  419. <target name="aspectjtools-dist" depends="init" description="build local distribution">
  420. <antcall target="build-product">
  421. <param name="product.name" value="tools"/>
  422. </antcall>
  423. </target>
  424. <!-- ===================================================================== -->
  425. <!-- eclipse plugins -->
  426. <!-- ===================================================================== -->
  427. <target name="eclipse.plugins" depends="init"
  428. description="create the Eclipse distribution plugins">
  429. <ant dir="${aspectj.modules.dir}/eclipse.plugin" inheritAll="false"/>
  430. </target>
  431. <target name="src" depends="init" description="build src modules">
  432. <mkdir dir="${aj.src.dir}"/>
  433. <jar destfile="${aj.src.dir}/aspectjrt${build.version}-src.jar">
  434. <fileset dir="${aspectj.modules.dir}/aspectj5rt/java5-src">
  435. <exclude name="CVS"/>
  436. <exclude name="**/.cvsignore"/>
  437. </fileset>
  438. <fileset dir="${aspectj.modules.dir}/runtime/src">
  439. <exclude name="CVS"/>
  440. <exclude name="**/.cvsignore"/>
  441. </fileset>
  442. </jar>
  443. <unzip dest="${aj.src.dir}/bcelsrc" src="${aspectj.modules.dir}/lib/bcel/bcel-src.zip"/>
  444. <!-- loadtime5/asm/bridge/loadtime/weaver/weaver5 -->
  445. <jar destfile="${aj.src.dir}/aspectjweaver${build.version}-src.jar">
  446. <fileset dir="${aspectj.modules.dir}/aspectj5rt/java5-src">
  447. <exclude name="CVS"/>
  448. <exclude name="**/.cvsignore"/>
  449. </fileset>
  450. <fileset dir="${aspectj.modules.dir}/runtime/src">
  451. <exclude name="CVS"/>
  452. <exclude name="**/.cvsignore"/>
  453. <exclude name="**/*.html"/>
  454. </fileset>
  455. <fileset dir="${aj.src.dir}/bcelsrc">
  456. <exclude name="CVS"/>
  457. <exclude name="**/.cvsignore"/>
  458. </fileset>
  459. <fileset dir="${aspectj.modules.dir}/loadtime5/java5-src">
  460. <exclude name="CVS"/>
  461. <exclude name="**/.cvsignore"/>
  462. </fileset>
  463. <fileset dir="${aspectj.modules.dir}/asm/src">
  464. <exclude name="CVS"/>
  465. <exclude name="**/.cvsignore"/>
  466. </fileset>
  467. <fileset dir="${aspectj.modules.dir}/bridge/src">
  468. <exclude name="CVS"/>
  469. <exclude name="**/.cvsignore"/>
  470. </fileset>
  471. <fileset dir="${aspectj.modules.dir}/loadtime/src">
  472. <exclude name="CVS"/>
  473. <exclude name="**/.cvsignore"/>
  474. </fileset>
  475. <fileset dir="${aspectj.modules.dir}/org.aspectj.matcher/src">
  476. <exclude name="CVS"/>
  477. <exclude name="**/.cvsignore"/>
  478. </fileset>
  479. <fileset dir="${aspectj.modules.dir}/weaver/src">
  480. <exclude name="CVS"/>
  481. <exclude name="**/.cvsignore"/>
  482. </fileset>
  483. <fileset dir="${aspectj.modules.dir}/weaver5/java5-src">
  484. <exclude name="CVS"/>
  485. <exclude name="**/.cvsignore"/>
  486. </fileset>
  487. <fileset dir="${aspectj.modules.dir}/util/src">
  488. <exclude name="CVS"/>
  489. <exclude name="**/.cvsignore"/>
  490. </fileset>
  491. </jar>
  492. <!-- missing from this are the jdtDepends.jar src files -->
  493. <unzip dest="${aj.src.dir}/jdtsrc" src="${aspectj.modules.dir}/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip"/>
  494. <!-- ajde/ajde.core/ajdoc/asm/bridge/loadtime/org.aspectj.ajdt.core/taskdefs/util/weaver5 -->
  495. <jar destfile="${aj.src.dir}/aspectjtools${build.version}-src.jar">
  496. <fileset dir="${aj.src.dir}/jdtsrc">
  497. <exclude name="CVS"/>
  498. <exclude name="**/.cvsignore"/>
  499. </fileset>
  500. <fileset dir="${aj.src.dir}/bcelsrc">
  501. <exclude name="CVS"/>
  502. <exclude name="**/.cvsignore"/>
  503. </fileset>
  504. <fileset dir="${aspectj.modules.dir}/loadtime5/java5-src">
  505. <exclude name="CVS"/>
  506. <exclude name="**/.cvsignore"/>
  507. </fileset>
  508. <fileset dir="${aspectj.modules.dir}/loadtime/src">
  509. <exclude name="CVS"/>
  510. <exclude name="**/.cvsignore"/>
  511. </fileset>
  512. <fileset dir="${aspectj.modules.dir}/ajde/src">
  513. <exclude name="CVS"/>
  514. <exclude name="**/.cvsignore"/>
  515. </fileset>
  516. <fileset dir="${aspectj.modules.dir}/ajde.core/src">
  517. <exclude name="CVS"/>
  518. <exclude name="**/.cvsignore"/>
  519. </fileset>
  520. <fileset dir="${aspectj.modules.dir}/runtime/src">
  521. <exclude name="CVS"/>
  522. <exclude name="**/.cvsignore"/>
  523. </fileset>
  524. <fileset dir="${aspectj.modules.dir}/aspectj5rt/src">
  525. <exclude name="CVS"/>
  526. <exclude name="**/.cvsignore"/>
  527. </fileset>
  528. <fileset dir="${aspectj.modules.dir}/ajdoc/src">
  529. <exclude name="CVS"/>
  530. <exclude name="**/.cvsignore"/>
  531. </fileset>
  532. <fileset dir="${aspectj.modules.dir}/asm/src">
  533. <exclude name="CVS"/>
  534. <exclude name="**/.cvsignore"/>
  535. </fileset>
  536. <fileset dir="${aspectj.modules.dir}/bridge/src">
  537. <exclude name="CVS"/>
  538. <exclude name="**/.cvsignore"/>
  539. </fileset>
  540. <fileset dir="${aspectj.modules.dir}/loadtime/src">
  541. <exclude name="CVS"/>
  542. <exclude name="**/.cvsignore"/>
  543. </fileset>
  544. <fileset dir="${aspectj.modules.dir}/org.aspectj.ajdt.core/src">
  545. <exclude name="CVS"/>
  546. <exclude name="**/.cvsignore"/>
  547. </fileset>
  548. <fileset dir="${aspectj.modules.dir}/taskdefs/src">
  549. <exclude name="CVS"/>
  550. <exclude name="**/.cvsignore"/>
  551. </fileset>
  552. <fileset dir="${aspectj.modules.dir}/util/src">
  553. <exclude name="CVS"/>
  554. <exclude name="**/.cvsignore"/>
  555. </fileset>
  556. <fileset dir="${aspectj.modules.dir}/weaver/src">
  557. <exclude name="CVS"/>
  558. <exclude name="**/.cvsignore"/>
  559. </fileset>
  560. <fileset dir="${aspectj.modules.dir}/org.aspectj.matcher/src">
  561. <exclude name="CVS"/>
  562. <exclude name="**/.cvsignore"/>
  563. </fileset>
  564. <fileset dir="${aspectj.modules.dir}/weaver5/java5-src">
  565. <exclude name="CVS"/>
  566. <exclude name="**/.cvsignore"/>
  567. </fileset>
  568. </jar>
  569. <delete dir="${aj.src.dir}/bcelsrc" failonerror="false"/>
  570. <delete dir="${aj.src.dir}/jdtsrc" failonerror="false"/>
  571. <jar destfile="${aj.src.dir}/org.aspectj.matcher-${build.version}-src.jar">
  572. <fileset dir="${aspectj.modules.dir}/bridge/src">
  573. <exclude name="CVS"/>
  574. <exclude name="**/.cvsignore"/>
  575. </fileset>
  576. <fileset dir="${aspectj.modules.dir}/util/src">
  577. <exclude name="CVS"/>
  578. <exclude name="**/.cvsignore"/>
  579. </fileset>
  580. <fileset dir="${aspectj.modules.dir}/org.aspectj.matcher/src">
  581. <exclude name="CVS"/>
  582. <exclude name="**/.cvsignore"/>
  583. </fileset>
  584. <!--
  585. <fileset dir="${aj.src.dir}/jdtsrc">
  586. <exclude name="CVS"/>
  587. <exclude name="**/.cvsignore"/>
  588. </fileset>
  589. <fileset dir="${aj.src.dir}/bcelsrc">
  590. <exclude name="CVS"/>
  591. <exclude name="**/.cvsignore"/>
  592. </fileset>
  593. <fileset dir="${aspectj.modules.dir}/loadtime5/java5-src">
  594. <exclude name="CVS"/>
  595. <exclude name="**/.cvsignore"/>
  596. </fileset>
  597. <fileset dir="${aspectj.modules.dir}/loadtime/src">
  598. <exclude name="CVS"/>
  599. <exclude name="**/.cvsignore"/>
  600. </fileset>
  601. <fileset dir="${aspectj.modules.dir}/ajde/src">
  602. <exclude name="CVS"/>
  603. <exclude name="**/.cvsignore"/>
  604. </fileset>
  605. <fileset dir="${aspectj.modules.dir}/ajde.core/src">
  606. <exclude name="CVS"/>
  607. <exclude name="**/.cvsignore"/>
  608. </fileset>
  609. <fileset dir="${aspectj.modules.dir}/runtime/src">
  610. <exclude name="CVS"/>
  611. <exclude name="**/.cvsignore"/>
  612. </fileset>
  613. <fileset dir="${aspectj.modules.dir}/aspectj5rt/src">
  614. <exclude name="CVS"/>
  615. <exclude name="**/.cvsignore"/>
  616. </fileset>
  617. <fileset dir="${aspectj.modules.dir}/ajdoc/src">
  618. <exclude name="CVS"/>
  619. <exclude name="**/.cvsignore"/>
  620. </fileset>
  621. <fileset dir="${aspectj.modules.dir}/asm/src">
  622. <exclude name="CVS"/>
  623. <exclude name="**/.cvsignore"/>
  624. </fileset>
  625. <fileset dir="${aspectj.modules.dir}/loadtime/src">
  626. <exclude name="CVS"/>
  627. <exclude name="**/.cvsignore"/>
  628. </fileset>
  629. <fileset dir="${aspectj.modules.dir}/org.aspectj.ajdt.core/src">
  630. <exclude name="CVS"/>
  631. <exclude name="**/.cvsignore"/>
  632. </fileset>
  633. <fileset dir="${aspectj.modules.dir}/taskdefs/src">
  634. <exclude name="CVS"/>
  635. <exclude name="**/.cvsignore"/>
  636. </fileset>
  637. <fileset dir="${aspectj.modules.dir}/weaver/src">
  638. <exclude name="CVS"/>
  639. <exclude name="**/.cvsignore"/>
  640. </fileset>
  641. <fileset dir="${aspectj.modules.dir}/weaver5/java5-src">
  642. <exclude name="CVS"/>
  643. <exclude name="**/.cvsignore"/>
  644. </fileset>
  645. -->
  646. </jar>
  647. <jar destfile="${aj.src.dir}/org.aspectj-${build.version}-src.jar">
  648. <fileset dir="${aj.src.dir}">
  649. <include name="aspectjrt${build.version}-src.jar"/>
  650. <include name="aspectjweaver${build.version}-src.jar"/>
  651. <include name="aspectjtools${build.version}-src.jar"/>
  652. <include name="org.aspectj.matcher-${build.version}-src.jar"/>
  653. </fileset>
  654. </jar>
  655. <delete file="{aj.src.dir}/aspectjrt${build.version}-src.jar"/>
  656. <delete file="{aj.src.dir}/aspectjweaver${build.version}-src.jar"/>
  657. <delete file="{aj.src.dir}/aspectjtools${build.version}-src.jar"/>
  658. <delete file="{aj.src.dir}/org.aspectj.matcher${build.version}-src.jar"/>
  659. </target>
  660. <target name="repo" depends="init" description="deploy maven repo">
  661. <property name="repo.url" value="scp://simonegianni.it/home/mavenrsync/repo"/>
  662. <property name="repo.id" value="simonegianni-rsync"/>
  663. <mkdir dir="${modules.dir}/aj-build/repo"/>
  664. <copy toDir="${modules.dir}/aj-build/repo" file="aspectjtools.pom"/>
  665. <copy toDir="${modules.dir}/aj-build/repo" file="aspectjweaver.pom"/>
  666. <copy toDir="${modules.dir}/aj-build/repo" file="aspectjrt.pom"/>
  667. <replaceregexp byline="true" flags="g">
  668. <regexp pattern="ASPECTJVERSION"/>
  669. <substitution expression="${repo.version}"/>
  670. <fileset dir="${modules.dir}/aj-build/repo">
  671. <include name="*.pom"/>
  672. </fileset>
  673. </replaceregexp>
  674. <!-- Invoke maven to deploy the jars to the rsynced repo -->
  675. <antcall target="mavenDeployJar">
  676. <param name="file" value="${modules.dir}/aj-build/dist/tools/lib/aspectjtools.jar"/>
  677. <param name="artifact" value="aspectjtools"/>
  678. <param name="desc" value="AspectJ Tools"/>
  679. </antcall>
  680. <antcall target="mavenDeployJar">
  681. <param name="file" value="${modules.dir}/aj-build/dist/tools/lib/aspectjweaver.jar"/>
  682. <param name="artifact" value="aspectjweaver"/>
  683. <param name="desc" value="AspectJ Weaver"/>
  684. </antcall>
  685. <antcall target="mavenDeployJar">
  686. <param name="file" value="${modules.dir}/aj-build/dist/tools/lib/aspectjrt.jar"/>
  687. <param name="artifact" value="aspectjrt"/>
  688. <param name="desc" value="AspectJ Runtime"/>
  689. </antcall>
  690. <antcall target="mavenDeploySource">
  691. <param name="file" value="${modules.dir}/aj-build/src/aspectjtools${build.version}-src.jar"/>
  692. <param name="artifact" value="aspectjtools"/>
  693. <param name="desc" value="AspectJ Tools"/>
  694. </antcall>
  695. <antcall target="mavenDeploySource">
  696. <param name="file" value="${modules.dir}/aj-build/src/aspectjweaver${build.version}-src.jar"/>
  697. <param name="artifact" value="aspectjweaver"/>
  698. <param name="desc" value="AspectJ Weaver"/>
  699. </antcall>
  700. <antcall target="mavenDeploySource">
  701. <param name="file" value="${modules.dir}/aj-build/src/aspectjrt${build.version}-src.jar"/>
  702. <param name="artifact" value="aspectjrt"/>
  703. <param name="desc" value="AspectJ Runtime"/>
  704. </antcall>
  705. </target>
  706. <!--
  707. ant -propertyfile XXX publishtomaven
  708. -->
  709. <target name="publishtomaven_snapshot" depends="maven.init">
  710. <property name="build.root" value="/Users/aclement/gits/org.aspectj"/>
  711. <property name="adjusted.release.type" value="snapshot"/>
  712. <property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
  713. <!--
  714. <property name="maven.central.repository" value="https://repo.spring.io/libs-snapshot-local/org/aspectj/aspectjweaver"/>
  715. -->
  716. <!-- aspectjtools/target/aspectjtools-1.9.6.BUILD-SNAPSHOT.jar -->
  717. <property name="bin.jars.folder" value="${build.root}/dist/tools/lib"/>
  718. <property name="src.jars.folder" value="${build.root}/src"/>
  719. <property name="suffix" value="1.9.6.BUILD-SNAPSHOT"/>
  720. <!-- ASPECTJRT -->
  721. <maven:deploy file="${build.root}/aspectjrt/target/aspectjrt-${suffix}.jar">
  722. <remoteRepository url="${maven.central.repository}">
  723. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  724. </remoteRepository>
  725. <pom file="usedForMavenUpload/aspectjrt.pom"/>
  726. <attach file="${build.root}/aspectjrt/target/aspectjrt-${suffix}-sources.jar" classifier="sources"/>
  727. </maven:deploy>
  728. <!-- ASPECTJTOOLS -->
  729. <maven:deploy file="${build.root}/aspectjtools/target/aspectjtools-${suffix}.jar">
  730. <remoteRepository url="${maven.central.repository}">
  731. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  732. </remoteRepository>
  733. <pom file="usedForMavenUpload/aspectjtools.pom"/>
  734. <attach file="${build.root}/aspectjtools/target/aspectjtools-${suffix}-sources.jar" classifier="sources"/>
  735. </maven:deploy>
  736. <!-- ASPECTJWEAVER -->
  737. <maven:deploy file="${build.root}/aspectjweaver/target/aspectjweaver-${suffix}.jar">
  738. <remoteRepository url="${maven.central.repository}">
  739. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  740. </remoteRepository>
  741. <pom file="usedForMavenUpload/aspectjweaver.pom"/>
  742. <attach file="${build.root}/aspectjweaver/target/aspectjweaver-${suffix}-sources.jar" classifier="sources"/>
  743. </maven:deploy>
  744. <!-- ASPECTJMATCHER -->
  745. <maven:deploy file="${build.root}/aspectjmatcher/target/aspectjmatcher-${suffix}.jar">
  746. <remoteRepository url="${maven.central.repository}">
  747. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  748. </remoteRepository>
  749. <pom file="usedForMavenUpload/aspectjmatcher.pom"/>
  750. <attach file="${build.root}/aspectjmatcher/target/aspectjmatcher-${suffix}-sources.jar" classifier="sources"/>
  751. </maven:deploy>
  752. </target>
  753. <target name="publishtomaven_milestone" depends="maven.init">
  754. <property name="suffix" value="1.9.0.BETA-6"/>
  755. <property name="build.root" value="/Users/aclement/gits/org.aspectj/aj-build"/>
  756. <property name="adjusted.release.type" value="milestone"/>
  757. <property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
  758. <property name="bin.jars.folder" value="${build.root}/dist/tools/lib"/>
  759. <property name="src.jars.folder" value="${build.root}/src"/>
  760. <!-- ASPECTJRT -->
  761. <maven:deploy file="${bin.jars.folder}/aspectjrt.jar">
  762. <remoteRepository url="${maven.central.repository}">
  763. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  764. </remoteRepository>
  765. <pom file="usedForMavenUpload_milestone/aspectjrt.pom"/>
  766. <attach file="${src.jars.folder}/aspectjrt${suffix}-src.jar" classifier="sources"/>
  767. </maven:deploy>
  768. <!-- ASPECTJTOOLS -->
  769. <maven:deploy file="${bin.jars.folder}/aspectjtools.jar">
  770. <remoteRepository url="${maven.central.repository}">
  771. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  772. </remoteRepository>
  773. <pom file="usedForMavenUpload_milestone/aspectjtools.pom"/>
  774. <attach file="${src.jars.folder}/aspectjtools${suffix}-src.jar" classifier="sources"/>
  775. </maven:deploy>
  776. <!-- ASPECTJWEAVER -->
  777. <maven:deploy file="${bin.jars.folder}/aspectjweaver.jar">
  778. <remoteRepository url="${maven.central.repository}">
  779. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  780. </remoteRepository>
  781. <pom file="usedForMavenUpload_milestone/aspectjweaver.pom"/>
  782. <attach file="${src.jars.folder}/aspectjweaver${suffix}-src.jar" classifier="sources"/>
  783. </maven:deploy>
  784. </target>
  785. <target name="publishtomaven_release" depends="maven.init">
  786. <property name="suffix" value="1.7.2"/>
  787. <property name="build.root" value="/Users/aclement/gits/org.aspectj/aj-build"/>
  788. <property name="adjusted.release.type" value="release"/>
  789. <property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
  790. <property name="bin.jars.folder" value="${build.root}/dist/tools/lib"/>
  791. <property name="src.jars.folder" value="${build.root}/src"/>
  792. <!-- ASPECTJRT -->
  793. <maven:deploy file="${bin.jars.folder}/aspectjrt.jar">
  794. <remoteRepository url="${maven.central.repository}">
  795. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  796. </remoteRepository>
  797. <pom file="usedForMavenUpload_${adjusted.release.type}/aspectjrt.pom"/>
  798. <attach file="${src.jars.folder}/aspectjrt${suffix}-src.jar" classifier="sources"/>
  799. </maven:deploy>
  800. <!-- ASPECTJTOOLS -->
  801. <maven:deploy file="${bin.jars.folder}/aspectjtools.jar">
  802. <remoteRepository url="${maven.central.repository}">
  803. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  804. </remoteRepository>
  805. <pom file="usedForMavenUpload_${adjusted.release.type}/aspectjtools.pom"/>
  806. <attach file="${src.jars.folder}/aspectjtools${suffix}-src.jar" classifier="sources"/>
  807. </maven:deploy>
  808. <!-- ASPECTJWEAVER -->
  809. <maven:deploy file="${bin.jars.folder}/aspectjweaver.jar">
  810. <remoteRepository url="${maven.central.repository}">
  811. <authentication username="${accessKey}" passphrase="${secretKey}"/>
  812. </remoteRepository>
  813. <pom file="usedForMavenUpload_${adjusted.release.type}/aspectjweaver.pom"/>
  814. <attach file="${src.jars.folder}/aspectjweaver${suffix}-src.jar" classifier="sources"/>
  815. </maven:deploy>
  816. </target>
  817. <target name="repo2" depends="maven.init">
  818. </target>
  819. <target name="mavenDeployJar">
  820. <!--
  821. Currently only an exec is usable, see http://jira.codehaus.org/browse/MANTTASKS-71
  822. this mean you need to have maven installed on your system.
  823. -->
  824. <exec executable="n:/tools/apache-maven-2.0.9/bin/mvn.bat" failonerror="true">
  825. <arg line="--batch-mode"/>
  826. <arg line="deploy:deploy-file"/>
  827. <arg line="-Durl=${repo.url}"/>
  828. <arg line="-DrepositoryId=${repo.id}"/>
  829. <arg line="-Dfile=${file}"/>
  830. <arg line="-DgroupId=org.aspectj"/>
  831. <arg line="-DartifactId=${artifact}"/>
  832. <arg line="-Dpackaging=jar"/>
  833. <arg line="-Dversion=${repo.version}"/>
  834. <arg line="-DpomFile=${modules.dir}/aj-build/repo/${artifact}.pom"/>
  835. </exec>
  836. </target>
  837. <target name="mavenDeploySource">
  838. <!--
  839. Currently only an exec is usable, see http://jira.codehaus.org/browse/MANTTASKS-71
  840. this mean you need to have maven installed on your system.
  841. failonerror is set to false because deploy:deploy-file goes NPE for some obscure reason
  842. on recent versions, see http://jira.codehaus.org/browse/MDEPLOY-48
  843. -->
  844. <exec executable="n:/tools/apache-maven-2.0.9/bin/mvn.bat" failonerror="false">
  845. <arg line="--batch-mode"/>
  846. <arg line="deploy:deploy-file"/>
  847. <arg line="-Durl=${repo.url}"/>
  848. <arg line="-DrepositoryId=${repo.id}"/>
  849. <arg line="-Dfile=${file}"/>
  850. <arg line="-DgroupId=org.aspectj"/>
  851. <arg line="-DartifactId=${artifact}"/>
  852. <arg line="-Dpackaging=java-source"/>
  853. <arg line="-Dversion=${repo.version}"/>
  854. <arg value="-DgeneratePom=false"/>
  855. </exec>
  856. </target>
  857. </project>