<?xml version="1.0"?> <!-- =================================================================== --> <!-- JBoss build file --> <!-- =================================================================== --> <project name="javassist" default="jar" basedir="."> <property name="dist-version" value="javassist-3.14.0-GA"/> <property environment="env"/> <property name="target.jar" value="javassist.jar"/> <property name="target-src.jar" value="javassist-src.jar"/> <property name="lib.dir" value="${basedir}/lib"/> <property name="src.dir" value="${basedir}/src/main"/> <property name="build.dir" value="${basedir}/build"/> <property name="build.classes.dir" value="${build.dir}/classes"/> <property name="test.src.dir" value="${basedir}/src/test"/> <property name="test.build.dir" value="${basedir}/build/test-classes"/> <property name="test.reports.dir" value = "${basedir}/build/test-output"/> <property name="run.dir" value="${build.classes.dir}"/> <!-- Build classpath --> <path id="classpath"> <pathelement location="${build.classes.dir}"/> </path> <property name="build.classpath" refid="classpath"/> <path id="test.compile.classpath"> <pathelement location="${build.classes.dir}"/> <pathelement location="${lib.dir}/junit.jar"/> </path> <property name="test.compile.classpath" refid="test.compile.classpath"/> <path id="test.classpath"> <pathelement location="${test.build.dir}"/> <pathelement location="${lib.dir}/junit.jar"/> <pathelement location="${build.classes.dir}"/> </path> <property name="test.classpath" refid="test.classpath"/> <!-- =================================================================== --> <!-- Prepares the build directory --> <!-- =================================================================== --> <target name="prepare" > <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes.dir}"/> <mkdir dir="${test.build.dir}"/> <mkdir dir="${test.reports.dir}"/> </target> <!-- =================================================================== --> <!-- Compiles the source code --> <!-- =================================================================== --> <target name="compile" depends="prepare"> <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**"> <classpath refid="classpath"/> </javac> </target> <target name="compile14" depends="prepare"> <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" source="1.4" target="1.4" optimize="off" includes="**"> <classpath refid="classpath"/> </javac> </target> <target name="test-compile" depends="compile"> <javac srcdir="${test.src.dir}" destdir="${test.build.dir}" debug="on" deprecation="on" optimize="off" includes="**"> <classpath refid="test.compile.classpath"/> </javac> </target> <target name="test" depends="test-compile"> <junit fork="true" printsummary="true"> <classpath refid="test.classpath"/> <formatter type="plain"/> <formatter type="xml"/> <batchtest todir="${test.reports.dir}"> <fileset dir="${test.build.dir}"> <include name="**/*Test.*"/> </fileset> </batchtest> </junit> </target> <target name="sample" depends="compile"> <javac srcdir="${basedir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="sample/**" excludes="sample/hotswap/**,sample/evolve/sample/**"> <classpath refid="classpath"/> </javac> <copy file="sample/vector/Test.j" todir="${build.classes.dir}/sample/vector"/> <javac srcdir="${basedir}/sample/evolve" destdir="${build.classes.dir}/sample/evolve/" debug="on" deprecation="on" optimize="off" includes="sample/**"> <classpath refid="classpath"/> </javac> <copy todir="${build.classes.dir}/sample/evolve"> <fileset dir="sample/evolve"/> </copy> <copy file="${build.classes.dir}/sample/evolve/WebPage.class" tofile="${build.classes.dir}/sample/evolve/WebPage.class.0"/> <copy file="${build.classes.dir}/sample/evolve/sample/evolve/WebPage.class" tofile="${build.classes.dir}/sample/evolve/WebPage.class.1"/> <javac srcdir="${basedir}/sample/hotswap" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="*"> <classpath refid="classpath"/> </javac> <mkdir dir="${build.classes.dir}/logging"/> <javac srcdir="${basedir}/sample/hotswap/logging" destdir="${build.classes.dir}/logging" debug="on" deprecation="on" optimize="off" includes="*"> <classpath refid="classpath"/> </javac> <echo>To run the sample programs without ant, change the current directory to ${build.classes.dir}.</echo> </target> <target name="jar" depends="compile14"> <jar jarfile="${target.jar}" manifest="${src.dir}/META-INF/MANIFEST.MF"> <fileset dir="${build.classes.dir}"> <include name="**/*.class"/> </fileset> </jar> <jar jarfile="${target-src.jar}" manifest="${src.dir}/META-INF/MANIFEST.MF"> <fileset dir="${src.dir}"> <include name="javassist/**"/> </fileset> </jar> </target> <target name="javadocs"> <mkdir dir="html"/> <javadoc Locale="en_US" packagenames="javassist.*" excludepackagenames="javassist.compiler.*,javassist.convert.*,javassist.scopedpool.*,javassist.bytecode.stackmap.*" sourcepath="src/main" defaultexcludes="yes" destdir="html" author="true" version="true" use="true" public="true" nohelp="true" windowtitle="Javassist API"> <doctitle><![CDATA[<h1>Javassist</h1>]]></doctitle> <bottom><![CDATA[<i>Javassist, a Java-bytecode translator toolkit.<br> Copyright (C) 1999-2010 Shigeru Chiba. All Rights Reserved.</i>]]></bottom> </javadoc> </target> <target name="dist" depends="jar,javadocs"> <delete file="${dist-version}.zip"/> <zip zipfile="${dist-version}.zip"> <zipfileset dir="${basedir}" prefix="${dist-version}"> <include name="html/**"/> <include name="sample/**"/> <include name="src/main/**"/> <include name="tutorial/**"/> <include name="*.html"/> <include name="*.xml"/> <include name="${target.jar}"/> </zipfileset> </zip> </target> <target name="clean"> <delete dir="build"/> <delete dir="html"/> <delete file="${target.jar}"/> <delete file="${dist-version}.zip"/> </target> <!-- =================================================================== --> <!-- Run samples --> <!-- =================================================================== --> <target name = "sample-all" depends="sample-test,sample-reflect,sample-duplicate,sample-vector"> <echo>** please run sample-rmi, sample-evolve, and</echo> <echo> sample-hotswap (or -hotswap5) separately **</echo> </target> <target name = "sample-test" depends="sample" > <java fork="true" dir="${run.dir}" classname="sample.Test"> <classpath refid="classpath"/> </java> </target> <target name = "sample-reflect" depends="sample" > <java fork="true" dir="${run.dir}" classname="javassist.tools.reflect.Loader"> <classpath refid="classpath"/> <arg line="sample.reflect.Main Joe" /> </java> </target> <target name = "sample-duplicate" depends="sample" > <echo>run sample.duplicate.Viewer without reflection</echo> <java fork="true" dir="${run.dir}" classname="sample.duplicate.Viewer"> <classpath refid="classpath"/> </java> <echo>run sample.duplicate.Viewer with reflection</echo> <java fork="true" dir="${run.dir}" classname="sample.duplicate.Main"> <classpath refid="classpath"/> </java> </target> <target name = "sample-vector" depends="sample" > <echo>sample.preproc.Compiler sample/vector/Test.j</echo> <java fork="true" dir="${run.dir}" classname="sample.preproc.Compiler"> <classpath refid="classpath"/> <arg line="sample/vector/Test.j"/> </java> <echo>javac sample/vector/Test.java</echo> <javac srcdir="${build.classes.dir}" destdir="${build.classes.dir}" includes="sample/vector/Test.java"> <classpath refid="classpath"/> </javac> <java fork="true" dir="${run.dir}" classname="sample.vector.Test" /> </target> <target name = "sample-rmi" depends="sample" > <echo>** Please open sample/rmi/webdemo.html with your browser **</echo> <java fork="true" dir="${run.dir}" classname="sample.rmi.Counter"> <classpath refid="classpath"/> <arg value="5001" /> </java> </target> <target name = "sample-evolve" depends="sample" > <echo>** Please open http://localhost:5003/demo.html with your browser **</echo> <java fork="true" dir="${run.dir}" classname="sample.evolve.DemoLoader"> <classpath refid="classpath"/> <arg value="5003" /> </java> </target> <!-- for JDK 1.4 --> <target name = "sample-hotswap" depends="sample"> <echo>** JAVA_HOME/lib/tools.jar must be included in CLASS_PATH</echo> <echo>** for JDK 1.4</echo> <java fork="true" dir="${run.dir}" classname="Test"> <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" /> <classpath refid="classpath"/> </java> </target> <!-- for Java 5 --> <target name = "sample-hotswap5" depends="sample"> <echo>** JAVA_HOME/lib/tools.jar must be included in CLASS_PATH</echo> <echo>** for JDK 1.5 or later</echo> <java fork="true" dir="${run.dir}" classname="Test"> <jvmarg line="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000" /> <classpath refid="classpath"/> </java> </target> </project>