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