Dictionary/build.xml

285 lines
12 KiB
XML

<project name="Lex" default="compile" basedir=".">
<!-- Configure the directory into which the web application is built -->
<property name="build" value="${basedir}/build"/>
<!-- Configure the directory containing the source files -->
<property name="source" value="${basedir}/src"/>
<!-- Configure the directory containing the config files
This files from this directory should not go in the CVS hierarchy. -->
<property name="config" value="${basedir}/lcl-cfg"/>
<!-- Configure the context path for this application -->
<property name="path" value="/lex"/>
<!-- <property file="${user.home}/.${ant.project.name}-build.properties"/>
<property file="${user.home}/.build.properties"/> -->
<property file="working.build.properties"/>
<!-- Configure the custom Ant tasks for the Manager application
These tasks require catalina-ant.jar in $ANT_HOME/lib-->
<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask"/>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask"/>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/>
<taskdef name="remove" classname="org.apache.catalina.ant.RemoveTask"/>
<taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask"/>
<taskdef name="roles" classname="org.apache.catalina.ant.RolesTask"/>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask"/>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask"/>
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>
<!-- Configure the classpath -->
<path id="classpath">
<fileset dir="${basedir}/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${catalina.home}/common/lib">
<include name="servlet.jar"/>
<include name="mysql-connector-java-3.0.8-stable-bin.jar"/>
</fileset>
<!--point to org/thdl/users-->
<pathelement location="${build}/WEB-INF/classes"/>
</path>
<!-- Executable Targets -->
<target name="copy" description="copy jsp, html, css, js, and other files into the build directory">
<copy todir="${build}">
<fileset dir="${source}/jsp">
<include name="*.jsp"/>
<include name="*.jsf"/>
</fileset>
</copy>
<copy todir="${build}/jsp">
<fileset dir="${source}/jsp/jsp">
<include name="*.jsp"/>
<include name="*.jsf"/>
</fileset>
</copy>
<copy todir="${build}/css">
<fileset dir="${source}/css">
<include name="*.css"/>
</fileset>
</copy>
<copy todir="${build}/js">
<fileset dir="${source}/js">
<include name="*.js"/>
</fileset>
</copy>
<copy todir="${build}/images">
<fileset dir="${basedir}/images"></fileset>
</copy>
<copy todir="${build}/WEB-INF">
<fileset dir="${basedir}/config">
<filename name="web.xml"/>
</fileset>
</copy>
<copy todir="${build}/WEB-INF/classes">
<fileset dir="${source}/java">
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</fileset>
</copy>
<copy todir="${build}/WEB-INF/tld">
<fileset dir="${basedir}/tld">
<include name="*.tld"/>
</fileset>
</copy>
<copy todir="${build}/WEB-INF/lib">
<fileset dir="${basedir}/lib/jstl">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/lib/hibernate">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/lib/thdl">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/lib/jwebunit">
<include name="*.jar"/>
</fileset>
</copy>
</target>
<target name="compile" description="Compile web application" depends="copy">
<mkdir dir="${build}/WEB-INF/classes"/>
<javac destdir="${build}/WEB-INF/classes" classpathref="classpath" debug="on" listfiles="no">
<src path="${source}/java"/>
<include name="org/thdl/lex/**"/>
<exclude name="**/old/**"/>
</javac>
</target>
<target name="javadoc" description="Create Javadocs">
<javadoc destdir="${build}/apidocs/" classpathref="classpath" author="true" version="true" use="true" windowtitle="THDL Tibetan Collaborative Dictionary API">
<fileset dir="${source}/java" defaultexcludes="yes">
<include name="org/thdl/**/*.java"/>
</fileset>
<doctitle><![CDATA[<h1>THDL Tibetan Collaborative Dictionary Javadocs</h1>]]></doctitle>
<bottom><![CDATA[<i>Copyright &#169; 2003 THDL. All Rights Reserved.</i>]]></bottom>
<tag name="todo" scope="all" description="To do:"/>
<group title="Lex Basics" packages="org.thdl.lex"/>
<group title="Lex Commands" packages="org.thdl.lex.commands"/>
<group title="Lex Components" packages="org.thdl.lex.component"/>
<group title="Lex Sub-components" packages="org.thdl.lex.component.child"/>
<link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/>
</javadoc>
</target>
<target name="install" description="Install web application" depends="compile, move-log">
<install url="${url}" username="${username}" password="${password}" path="${path}" config="file://${config}/lex-context-config.xml" war="file://${build}"/>
</target>
<target name="move-log" description="move old log file">
<mkdir dir="logs"/>
<mkdir dir="logs/old"/>
<tstamp prefix="now"/>
<touch file="${basedir}/logs/hibernate.log"/>
<move file="${basedir}/logs/hibernate.log" tofile="${basedir}/logs/old/${now.DSTAMP}_${now.TSTAMP}_hibernate.log" overwrite="true"/>
<touch file="${basedir}/logs/lex.log"/>
<move file="${basedir}/logs/lex.log" tofile="${basedir}/logs/old/${now.DSTAMP}_${now.TSTAMP}_lex.log" overwrite="true"/>
</target>
<target name="reinstall" description="Remove and Re-install web application" depends="remove">
<antcall target="install"/>
</target>
<target name="reload" description="Reload web application" depends="compile">
<reload url="${url}" username="${username}" password="${password}" path="${path}"/>
</target>
<target name="remove" description="Remove web application">
<remove url="${url}" username="${username}" password="${password}" path="${path}"/>
</target>
<target name="test" description="Run load and functional tests">
<java classname="org.thdl.lex.test.MainMenuTestCase" classpathref="classpath" fork="yes">
<classpath>
<pathelement location="${build}/WEB-INF/classes"/>
</classpath>
<arg value="${ lex.username }"/>
<arg value="${ lex.password }"/>
</java>
</target>
<target name="reload-test" description="Remove and Re-install web application" depends="reload">
<antcall target="test"/>
</target>
<target name="install-test" description="Remove and Re-install web application" depends="install">
<antcall target="test"/>
</target>
<target name="jmeter">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<echo message="${jmeterhome}"/>
<jmeter
jmeterhome="../jmeter"
testplan="${basedir}/loadtests/LoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl"/>
<!--
For the following task to work, jmeter.properties needs to have the following properties set thusly:
jmeter.save.saveservice.assertion_results=all
jmeter.save.saveservice.output_format=xml
-->
<xslt
in="${basedir}/loadtests/JMeterResults.jtl"
out="${basedir}/loadtests/JMeterResults.html"
style="${jmeterhome}/extras/jmeter-results-report.xsl"/>
</target>
<target name="hbm2java" description="generate source code">
<tstamp prefix="now"/>
<echo message="time is: ${now.DSTAMP}_${now.TSTAMP}"/>
<copy todir="${basedir}/backups/lex-src-bkp_${now.DSTAMP}_${now.TSTAMP}">
<fileset dir="${source}/java/org/thdl/lex/component">
<include name="**/*.java"/>
</fileset>
</copy>
<java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" classpathref="classpath" fork="yes">
<arg value="--output=${source}/java"/>
<arg value="--config=${basedir}/config/lex-codegen-cfg.xml"/>
<arg value="${source}/java/org/thdl/lex/component/LexComponent.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Author.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Dialect.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/EtymologyType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Function.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/FunctionsGeneral.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/FunctionsSpecific.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Language.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryForm.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryGenre.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryPeriod.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiterarySource.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/MajorDialectFamily.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/PhoneticsType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/ProjectSubject.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Register.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/RelatedTermType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Script.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Source.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/SpecificDialect.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/SpellingType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/TransitionalDataLabel.hbm.xml"/>
</java>
</target>
<target name="hbm2ddl" description="generate source code">
<java classname="net.sf.hibernate.tool.hbm2ddl.SchemaExport" classpathref="classpath" fork="yes">
<classpath>
<pathelement location="${build}/WEB-INF/classes"/>
</classpath>
<arg value="--output=${source}/sql/lex-schema.sql"/>
<arg value="--text"/>
<arg value="--format"/>
<arg value="--quiet"/>
<arg value="--delimiter=;"/>
<arg value="--properties=${config}/hibernate.properties"/>
<arg value="${source}/java/org/thdl/lex/component/LexComponent.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Author.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Dialect.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/EtymologyType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Function.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/FunctionsGeneral.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/FunctionsSpecific.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Language.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryForm.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryGenre.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiteraryPeriod.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/LiterarySource.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/MajorDialectFamily.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/PhoneticsType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/ProjectSubject.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Register.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/RelatedTermType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Script.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/Source.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/SpecificDialect.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/SpellingType.hbm.xml"/>
<arg value="${source}/java/org/thdl/lex/component/child/TransitionalDataLabel.hbm.xml"/>
</java>
</target>
<target name="schema-update">
<taskdef name="schemaupdate" classname="net.sf.hibernate.tool.hbm2ddl.SchemaUpdateTask" classpathref="classpath"/>
<schemaupdate>
<fileset dir="src">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaupdate>
</target>
</project>