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.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> 299