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.

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