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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <?xml version="1.0"?>
  2. <!-- =================================================================== -->
  3. <!-- JBoss build file -->
  4. <!-- =================================================================== -->
  5. <project name="javassist" default="jar" basedir=".">
  6. <property name="dist-version" value="javassist-3.11.0"/>
  7. <property environment="env"/>
  8. <property name="target.jar" value="javassist.jar"/>
  9. <property name="target-src.jar" value="javassist-src.jar"/>
  10. <property name="lib.dir" value="${basedir}/lib"/>
  11. <property name="src.dir" value="${basedir}/src/main"/>
  12. <property name="build.dir" value="${basedir}/build"/>
  13. <property name="build.classes.dir" value="${build.dir}/classes"/>
  14. <property name="test.src.dir" value="${basedir}/src/test"/>
  15. <property name="test.build.dir" value="${basedir}/build/test-classes"/>
  16. <property name="test.reports.dir" value = "${basedir}/build/test-output"/>
  17. <property name="run.dir" value="${build.classes.dir}"/>
  18. <!-- Build classpath -->
  19. <path id="classpath">
  20. <pathelement location="${build.classes.dir}"/>
  21. </path>
  22. <property name="build.classpath" refid="classpath"/>
  23. <path id="test.compile.classpath">
  24. <pathelement location="${build.classes.dir}"/>
  25. <pathelement location="${lib.dir}/junit.jar"/>
  26. </path>
  27. <property name="test.compile.classpath" refid="test.compile.classpath"/>
  28. <path id="test.classpath">
  29. <pathelement location="${test.build.dir}"/>
  30. <pathelement location="${lib.dir}/junit.jar"/>
  31. <pathelement location="${build.classes.dir}"/>
  32. </path>
  33. <property name="test.classpath" refid="test.classpath"/>
  34. <!-- =================================================================== -->
  35. <!-- Prepares the build directory -->
  36. <!-- =================================================================== -->
  37. <target name="prepare" >
  38. <mkdir dir="${build.dir}"/>
  39. <mkdir dir="${build.classes.dir}"/>
  40. <mkdir dir="${test.build.dir}"/>
  41. <mkdir dir="${test.reports.dir}"/>
  42. </target>
  43. <!-- =================================================================== -->
  44. <!-- Compiles the source code -->
  45. <!-- =================================================================== -->
  46. <target name="compile" depends="prepare">
  47. <javac srcdir="${src.dir}"
  48. destdir="${build.classes.dir}"
  49. debug="on"
  50. deprecation="on"
  51. optimize="off"
  52. includes="**">
  53. <classpath refid="classpath"/>
  54. </javac>
  55. </target>
  56. <target name="compile14" depends="prepare">
  57. <javac srcdir="${src.dir}"
  58. destdir="${build.classes.dir}"
  59. debug="on"
  60. deprecation="on"
  61. source="1.4"
  62. target="1.4"
  63. optimize="off"
  64. includes="**">
  65. <classpath refid="classpath"/>
  66. </javac>
  67. </target>
  68. <target name="test-compile" depends="compile">
  69. <javac srcdir="${test.src.dir}"
  70. destdir="${test.build.dir}"
  71. debug="on"
  72. deprecation="on"
  73. optimize="off"
  74. includes="**">
  75. <classpath refid="test.compile.classpath"/>
  76. </javac>
  77. </target>
  78. <target name="test" depends="test-compile">
  79. <junit fork="true" printsummary="true">
  80. <classpath refid="test.classpath"/>
  81. <formatter type="plain"/>
  82. <formatter type="xml"/>
  83. <batchtest todir="${test.reports.dir}">
  84. <fileset dir="${test.build.dir}">
  85. <include name="**/*Test.*"/>
  86. </fileset>
  87. </batchtest>
  88. </junit>
  89. </target>
  90. <target name="sample" depends="compile">
  91. <javac srcdir="${basedir}"
  92. destdir="${build.classes.dir}"
  93. debug="on"
  94. deprecation="on"
  95. optimize="off"
  96. includes="sample/**"
  97. excludes="sample/hotswap/**,sample/evolve/sample/**">
  98. <classpath refid="classpath"/>
  99. </javac>
  100. <copy file="sample/vector/Test.j"
  101. todir="${build.classes.dir}/sample/vector"/>
  102. <javac srcdir="${basedir}/sample/evolve"
  103. destdir="${build.classes.dir}/sample/evolve/"
  104. debug="on"
  105. deprecation="on"
  106. optimize="off"
  107. includes="sample/**">
  108. <classpath refid="classpath"/>
  109. </javac>
  110. <copy todir="${build.classes.dir}/sample/evolve">
  111. <fileset dir="sample/evolve"/>
  112. </copy>
  113. <copy file="${build.classes.dir}/sample/evolve/WebPage.class"
  114. tofile="${build.classes.dir}/sample/evolve/WebPage.class.0"/>
  115. <copy file="${build.classes.dir}/sample/evolve/sample/evolve/WebPage.class"
  116. tofile="${build.classes.dir}/sample/evolve/WebPage.class.1"/>
  117. <javac srcdir="${basedir}/sample/hotswap"
  118. destdir="${build.classes.dir}"
  119. debug="on"
  120. deprecation="on"
  121. optimize="off"
  122. includes="*">
  123. <classpath refid="classpath"/>
  124. </javac>
  125. <mkdir dir="${build.classes.dir}/logging"/>
  126. <javac srcdir="${basedir}/sample/hotswap/logging"
  127. destdir="${build.classes.dir}/logging"
  128. debug="on"
  129. deprecation="on"
  130. optimize="off"
  131. includes="*">
  132. <classpath refid="classpath"/>
  133. </javac>
  134. <echo>To run the sample programs without ant, change the current directory
  135. to ${build.classes.dir}.</echo>
  136. </target>
  137. <target name="jar" depends="compile14">
  138. <jar jarfile="${target.jar}" manifest="${src.dir}/META-INF/MANIFEST.MF">
  139. <fileset dir="${build.classes.dir}">
  140. <include name="**/*.class"/>
  141. </fileset>
  142. </jar>
  143. <jar jarfile="${target-src.jar}" manifest="${src.dir}/META-INF/MANIFEST.MF">
  144. <fileset dir="${src.dir}">
  145. <include name="javassist/**"/>
  146. </fileset>
  147. </jar>
  148. </target>
  149. <target name="javadocs">
  150. <mkdir dir="html"/>
  151. <javadoc
  152. Locale="en_US"
  153. packagenames="javassist.*"
  154. excludepackagenames="javassist.compiler.*,javassist.convert.*,javassist.scopedpool.*,javassist.bytecode.stackmap.*"
  155. sourcepath="src/main"
  156. defaultexcludes="yes"
  157. destdir="html"
  158. author="true"
  159. version="true"
  160. use="true"
  161. public="true"
  162. nohelp="true"
  163. windowtitle="Javassist API">
  164. <doctitle><![CDATA[<h1>Javassist</h1>]]></doctitle>
  165. <bottom><![CDATA[<i>Javassist, a Java-bytecode translator toolkit.<br>
  166. Copyright (C) 1999-2009 Shigeru Chiba. All Rights Reserved.</i>]]></bottom>
  167. </javadoc>
  168. </target>
  169. <target name="dist" depends="jar,javadocs">
  170. <delete file="${dist-version}.zip"/>
  171. <zip zipfile="${dist-version}.zip">
  172. <zipfileset dir="${basedir}" prefix="${dist-version}">
  173. <include name="html/**"/>
  174. <include name="sample/**"/>
  175. <include name="src/main/**"/>
  176. <include name="tutorial/**"/>
  177. <include name="*.html"/>
  178. <include name="*.xml"/>
  179. <include name="${target.jar}"/>
  180. </zipfileset>
  181. </zip>
  182. </target>
  183. <target name="clean">
  184. <delete dir="build"/>
  185. <delete dir="html"/>
  186. <delete file="${target.jar}"/>
  187. <delete file="${dist-version}.zip"/>
  188. </target>
  189. <!-- =================================================================== -->
  190. <!-- Run samples -->
  191. <!-- =================================================================== -->
  192. <target name = "sample-all"
  193. depends="sample-test,sample-reflect,sample-duplicate,sample-vector">
  194. <echo>** please run sample-rmi, sample-evolve, and</echo>
  195. <echo> sample-hotswap (or -hotswap5) separately **</echo>
  196. </target>
  197. <target name = "sample-test" depends="sample" >
  198. <java fork="true" dir="${run.dir}" classname="sample.Test">
  199. <classpath refid="classpath"/>
  200. </java>
  201. </target>
  202. <target name = "sample-reflect" depends="sample" >
  203. <java fork="true" dir="${run.dir}" classname="javassist.tools.reflect.Loader">
  204. <classpath refid="classpath"/>
  205. <arg line="sample.reflect.Main Joe" />
  206. </java>
  207. </target>
  208. <target name = "sample-duplicate" depends="sample" >
  209. <echo>run sample.duplicate.Viewer without reflection</echo>
  210. <java fork="true" dir="${run.dir}" classname="sample.duplicate.Viewer">
  211. <classpath refid="classpath"/>
  212. </java>
  213. <echo>run sample.duplicate.Viewer with reflection</echo>
  214. <java fork="true" dir="${run.dir}" classname="sample.duplicate.Main">
  215. <classpath refid="classpath"/>
  216. </java>
  217. </target>
  218. <target name = "sample-vector" depends="sample" >
  219. <echo>sample.preproc.Compiler sample/vector/Test.j</echo>
  220. <java fork="true" dir="${run.dir}" classname="sample.preproc.Compiler">
  221. <classpath refid="classpath"/>
  222. <arg line="sample/vector/Test.j"/>
  223. </java>
  224. <echo>javac sample/vector/Test.java</echo>
  225. <javac srcdir="${build.classes.dir}"
  226. destdir="${build.classes.dir}"
  227. includes="sample/vector/Test.java">
  228. <classpath refid="classpath"/>
  229. </javac>
  230. <java fork="true" dir="${run.dir}" classname="sample.vector.Test" />
  231. </target>
  232. <target name = "sample-rmi" depends="sample" >
  233. <echo>** Please open sample/rmi/webdemo.html with your browser **</echo>
  234. <java fork="true" dir="${run.dir}" classname="sample.rmi.Counter">
  235. <classpath refid="classpath"/>
  236. <arg value="5001" />
  237. </java>
  238. </target>
  239. <target name = "sample-evolve" depends="sample" >
  240. <echo>** Please open http://localhost:5003/demo.html with your browser **</echo>
  241. <java fork="true" dir="${run.dir}" classname="sample.evolve.DemoLoader">
  242. <classpath refid="classpath"/>
  243. <arg value="5003" />
  244. </java>
  245. </target>
  246. <!-- for JDK 1.4 -->
  247. <target name = "sample-hotswap" depends="sample">
  248. <echo>** JAVA_HOME/lib/tools.jar must be included in CLASS_PATH</echo>
  249. <echo>** for JDK 1.4</echo>
  250. <java fork="true" dir="${run.dir}" classname="Test">
  251. <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" />
  252. <classpath refid="classpath"/>
  253. </java>
  254. </target>
  255. <!-- for Java 5 -->
  256. <target name = "sample-hotswap5" depends="sample">
  257. <echo>** JAVA_HOME/lib/tools.jar must be included in CLASS_PATH</echo>
  258. <echo>** for JDK 1.5 or later</echo>
  259. <java fork="true" dir="${run.dir}" classname="Test">
  260. <jvmarg line="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000" />
  261. <classpath refid="classpath"/>
  262. </java>
  263. </target>
  264. </project>