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