Dictionary/build.xml

314 lines
13 KiB
XML

<!--
This build file requires a build.properties file with the following properties:
#Configure properties to access the Manager application user/pass combo should be in $TOMCAT_HOME/conf/tomcat-users.xml with manager role.
catalina.home=/usr/local/tomcat
catalina.base=/usr/local/tomcat
url=http://localhost:2020/manager
username=
password=
#provide location of working copy of lex-context-config.xml
lex.context.config=lex-context-config-working.xml
#These properties need to be set to run the unit tests. They are your login to the dictionary
lex.username=
lex.password=
jmeterhome=../jmeter
-->
<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 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="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>
<fileset dir="${basedir}/lib/dlese-oai">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/lib/oai-xmlbeans">
<include name="*.jar"/>
</fileset>
</copy>
</target>
<target name="compile" description="Compile web application" depends="copy">
<mkdir dir="${build}/WEB-INF/classes"/>
<javac srcdir="${thdluser.home}/src/java"
destdir="${build}/WEB-INF/classes"
deprecation="on"
classpathref="classpath"
debug="on"/>
<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">
<install url="${url}" username="${username}" password="${password}" path="${path}" config="file://${basedir}/${lex.context.config}" 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>