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