<project name="Mir" default="compile" basedir=".">
+<!-- What this file is all about
+
+ You can use this version of build.xml to use directly with ant
+ i.e. without the build.sh script. Simply call ant and let it all
+ happen.
+-->
+
<!-- Property Definitions
+
+ Please not that only the first couple of properties have to be defined.
+ The rest, residing below the "no customization needed" line may be
+ customized if you know what you are doing. Else, leave the defaults
+ and use them to look up where ant places all the files.
+
app.name Base name of this application, used to
construct filenames and directories.
Normally, this will be the name of a
subdirectory under $TOMCAT_HOME/webapps.
+ deploy.classes The name of the directory that will contain
+ the class files.
+
dist.home The name of the base directory in which
distribution files are created.
Tomcat has been installed. This value is
normally set automatically from the value
of the TOMCAT_HOME environment variable.
+
+ java.home The location of your Java SDK.
+
+ java.localhome Where your local java classes and jar files
+ are located.
+
+ tomcat.home The location of the tomcat root directory.
+
-->
- <property name="app.name" value="Mir"/>
- <property name="deploy.home" value="../${app.name}"/>
+ <property name="app.name" value="mir"/>
+ <property name="deploy.home" value="./bin/${app.name}"/>
+
+ <!-- don't use unless your Jikes is >= v1.18 -->
+ <!-- <property name="build.compiler" value="jikes"/>-->
+
+
+<!-- No customization required after this line -->
+
+ <property environment="env"/>
<property name="dist.home" value="${deploy.home}"/>
+ <property name="deploy.webinf" value="${deploy.home}/WEB-INF"/>
+ <property name="deploy.classes" value="${deploy.webinf}/classes"/>
<property name="dist.src" value="${app.name}.jar"/>
<property name="dist.war" value="${app.name}.war"/>
<property name="javadoc.home" value="${deploy.home}/javadoc"/>
+ <property name="tomcat.home" value="${env.TOMCAT_HOME}"/>
+
+
+
+ <!-- Construct the classpath -->
+ <path id="project.class.path">
+ <pathelement path="${deploy.home}"/>
+ <pathelement path="${deploy.classes}"/>
+ <pathelement path="source"/>
+ <pathelement path="etc/extrasource"/>
+ <fileset dir="lib">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="lib/hibernate">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement path="${tomcat.home}/lib/tomcat.jar"/>
+ <!-- for libs shared between tomcat and webapps (tomcat 3.3.x) -->
+ <fileset dir="${tomcat.home}">
+ <include name="lib/common/*.jar" />
+ </fileset>
+ <!-- for libs shared between webapps (tomcat 3.3.x) -->
+ <fileset dir="${tomcat.home}">
+ <include name="lib/apps/*.jar" />
+ </fileset>
+ <!-- for libs shared between tomcat and webapps (tomcat 4.x.x) -->
+ <fileset dir="${tomcat.home}">
+ <include name="common/lib/*.jar" />
+ </fileset>
+ <!-- for libs shared between webapps (tomcat 4.0.x) -->
+ <fileset dir="${tomcat.home}">
+ <include name="lib/*.jar" />
+ </fileset>
+ <!-- for libs shared between webapps (tomcat 4.1.x) -->
+ <fileset dir="${tomcat.home}">
+ <include name="shared/lib/*.jar" />
+ </fileset>
+ <fileset dir="${tomcat.home}">
+ <include name="common/endorsed/*.jar" />
+ </fileset>
+ </path>
+
<!-- The "prepare" target is used to construct the deployment home
<target name="prepare">
<mkdir dir="${deploy.home}"/>
+ <mkdir dir="${deploy.webinf}"/>
+ <mkdir dir="${deploy.classes}"/>
+ <mkdir dir="${deploy.webinf}/log"/>
+
<copy todir="${deploy.home}">
<fileset dir="web"/>
</copy>
- <mkdir dir="${deploy.home}/templates"/>
- <copy todir="${deploy.home}/templates">
- <fileset dir="templates"/>
+
+ <copy todir="${deploy.webinf}/classes">
+ <fileset dir="source">
+ <include name="**/*.xml"/>
+ </fileset>
</copy>
- <mkdir dir="${deploy.home}/src"/>
- <copy todir="${deploy.home}/src">
- <fileset dir="source"/>
+
+ <copy todir="${deploy.webinf}/etc">
+ <fileset dir="etc" excludes="bundles/** hibernate.cfg.xml web.xml"/>
+ </copy>
+ <copy todir="${deploy.classes}/bundles">
+ <fileset dir="etc/bundles"/>
</copy>
+ <copy todir="${deploy.webinf}" file="etc/web.xml"/>
- <mkdir dir="${deploy.home}/WEB-INF"/>
- <copy file="etc/web.xml" tofile="${deploy.home}/WEB-INF/web.xml"/>
- <mkdir dir="${deploy.home}/WEB-INF/classes"/>
- <mkdir dir="${deploy.home}/WEB-INF/lib"/>
+ <copy todir="${deploy.webinf}/templates">
+ <fileset dir="templates"/>
+ </copy>
+
+ <copy todir="${deploy.webinf}" file="source/default.properties" />
+
+ <copy todir="${deploy.classes}/bundles">
+ <fileset dir="bundles"/>
+ </copy>
+
+ <copy todir="${deploy.classes}" file="etc/hibernate.cfg.xml"/>
+
<copy todir="${deploy.home}/WEB-INF/lib">
<fileset dir="lib">
<exclude name="ant.jar"/>
<exclude name="xerces.jar"/>
</fileset>
+ <fileset dir="lib/hibernate">
+ </fileset>
</copy>
- <copy todir="${deploy.home}/WEB-INF/classes">
- <fileset dir="bundles"/>
- </copy>
- <mkdir dir="${javadoc.home}"/>
- <mkdir dir="${deploy.home}/log"/>
-
</target>
+
<!-- The "clean" target removes the deployment home directory structure,
so that the next time the "compile" target is requested, it will need
to compile everything from scratch.
<target name="clean">
+ <delete dir="${deploy.classes}"/>
+ <mkdir dir="${deploy.classes}"/>
+ </target>
+
+
+
+<!-- The "mrproper" target removes the entire deploy dir - including all
+ built pages and images.
+-->
+
+ <target name="mrproper">
<delete dir="${deploy.home}"/>
</target>
+ <!-- drop out if $TOMCAT_HOME is not set>-->
+ <target name="testtomcat" unless="tomcat.present">
+ <fail message="the $$TOMCAT_HOME environment variable is not set or is set to the wrong path. Please set it first. giving up!"/>
+ </target>
<!-- The "compile" target is used to compile (or recompile) the Java classes
that make up this web application. The recommended source code directory
-->
<target name="compile" depends="prepare">
- <javac srcdir="source" destdir="${deploy.home}/WEB-INF/classes"
- classpath="${deploy.home}/WEB-INF/classes"
- debug="on" optimize="off" deprecation="on"/>
- <copy todir="${deploy.home}/WEB-INF/classes">
- <fileset dir="source" includes="**/*.properties"/>
- </copy>
- <copy todir="${deploy.home}/WEB-INF/classes">
- <fileset dir="source" includes="**/*.xml"/>
- </copy>
- <copy todir="${deploy.home}">
- <fileset dir="source" includes="**/content-types.properties"/>
- </copy>
+ <!-- check to see if $TOMCAT_HOME was set to something useful.. -->
+ <available file="${tomcat.home}/conf" property="tomcat.present"/>
+ <antcall target="testtomcat"/>
+
+ <!--<antcall target="clean"/>-->
+ <dependset>
+ <srcfileset
+ dir="source"
+ includes="**/*.java"/>
+<!-- ML: now why can't this be added?
+ <srcfileset
+ dir="etc/extrasource"
+ includes="**/*.java"/> -->
+ <srcfileset
+ dir="lib"
+ includes="*.jar"/>
+ <targetfileset
+ dir="${deploy.classes}"
+ includes="**/*.class"/>
+ </dependset>
+ <javac destdir="${deploy.classes}"
+ debug="on" optimize="off" deprecation="on">
+ <src path="source"/>
+ <src path="etc/extrasource"/>
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+
+
+
+ <target name="perms">
+ <exec executable="./perms.sh"/>
</target>
<javadoc packagenames="mir.*, mircoders.*"
sourcefiles="source/${app.name}.java,source/Open${app.name}.java"
sourcepath="source"
- destdir="${javadoc.home}"/>
+ destdir="${javadoc.home}">
+ <classpath refid="project.class.path"/>
+ </javadoc>
</target>
that separately.
-->
<target name="dist" depends="prepare,compile">
- <jar jarfile="mirbase.jar"
+ <jar jarfile="${dist.home}/mirbase.jar"
includes="mir/**"
- basedir="../Mir/WEB-INF/classes"/>
- <jar jarfile="${dist.src}"
+ basedir="${deploy.classes}"/>
+ <jar jarfile="${dist.home}/${dist.src}"
basedir="./source"/>
- <jar jarfile="${dist.war}"
- basedir="${deploy.home}"/>
+ <jar jarfile="${dist.home}/${dist.war}"
+ basedir="${deploy.home}"
+ excludes="${dist.war}"/>
+ </target>
+
+ <target name="rundbtest" depends="compile">
+ <java fork="true" classname="mir.core.test.Test">
+ <classpath>
+ <fileset dir="${tomcat.home}/common/endorsed">
+ <include name="**/*.jar"/>
+ </fileset>
+ <fileset dir="${tomcat.home}/common/lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ <fileset dir="${deploy.webinf}/lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ <path id="classes" path="${deploy.classes}"/>
+ </classpath>
+ <sysproperty key="org.xml.sax.driver" value="org.apache.xerces.parsers.SAXParser"/>
+ </java>
</target>
</project>