<?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>