blob: 13202bd70300d6ea8f43cbb56cc1109903b3d664 [file] [log] [blame]
<project name="struts-flow" default="jar" basedir=".">
<!-- ========== Initialization Properties ================================= -->
<!--
These property values may optionally be overridden with property
settings from an "ant" command line, the "antrc" properties file
in your home directory, or from settings in a superior build.xml
script.
-->
<!-- Java compilation options -->
<property name="compile.debug" value="true" />
<property name="compile.deprecation" value="true" />
<property name="compile.optimize" value="false" />
<!-- Doc directory and packages that go in there -->
<property name="doc.dir" value="./doc"/>
<!-- where all the library files are kept, plus what to include/exclude when building -->
<property name="lib.dir" value="./lib" />
<property name="lib.core" value="${lib.dir}/core" />
<property name="lib.examples" value="${lib.dir}/examples" />
<property name="lib.build" value="${lib.dir}/build" />
<!-- application information -->
<property name="app.name" value="struts-flow" />
<property name="app.version" value="0.5-dev" />
<!-- The base directory for distribution targets -->
<property name="dist.dir" value="./dist" />
<property name="src.dir" value="src" />
<property name="src.java" value="${src.dir}/java" />
<property name="src.test" value="${src.dir}/test" />
<property name="src.doc" value="${src.dir}/doc" />
<property name="src.examples" value="${src.dir}/examples" />
<property name="build.dir" value="ant-build" />
<property name="build.examples" value="${build.dir}/examples" />
<property name="build.target" value="${build.dir}/target" />
<property name="build.test" value="${build.dir}/test" />
<property name="build.doc" value="${build.dir}/doc" />
<property name="javadoc.packages" value="org.apache.struts.flow.*" />
<!-- ========== Derived Properties ======================================== -->
<!--
These property values are derived from values defined above, and
generally should NOT be overridden by command line settings
-->
<!-- The name of the web application archive file to be produced -->
<property name="app.jar" value="${app.name}-${app.version}.jar" />
<property name="release.zip" value="${app.name}-${app.version}.zip" />
<path id="base.classpath">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="${build.target}"/>
<pathelement location="${build.test}" />
</path>
<!-- ========== Executable Targets ======================================== -->
<!--
The "init" target evaluates "available" expressions as necessary
to modify the behavior of this script.
-->
<target name="init">
<echo message="Processing build.target init ${app.name}"/>
<available file="${src.java}" property="src.java.present"/>
<available file="${lib.dir}" property="lib.dir.present"/>
</target>
<target name="download-dependencies" unless="lib.dir.present">
<mkdir dir="${lib.build}" />
<get dest="${lib.build}/servletapi-2.3.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/servletapi/jars/servletapi-2.3.jar"/>
<get dest="${lib.build}/xjavadoc-1.0.3.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xjavadoc-1.0.3.jar"/>
<!--
<get dest="${lib.core}/commons-collections-2.1.1.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-collections/jars/commons-collections-2.1.1.jar"/>
-->
<get dest="${lib.build}/portlet-api-1.0.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/portlet-api/jars/portlet-api-1.0.jar"/>
<mkdir dir="${lib.core}" />
<get dest="${lib.core}/struts-action-1.3-30122005.jar" usetimestamp="true"
ignoreerrors="true"
src="http://cvs.apache.org/repository/struts/jars/struts-action-1.3-30122005.jar"/>
<get dest="${lib.core}/js-1.6R2.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/rhino/jars/js-1.6R2.jar"/>
<get dest="${lib.core}/commons-chain-1.0.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-chain/jars/commons-chain-1.0.jar"/>
<get dest="${lib.core}/commons-lang-2.1.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-lang/jars/commons-lang-2.1.jar"/>
<get dest="${lib.core}/jakarta-oro-2.0.7.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/oro/jars/oro-2.0.7.jar"/>
<get dest="${lib.core}/commons-logging.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.3.jar"/>
<get dest="${lib.core}/commons-beanutils.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-beanutils/jars/commons-beanutils-1.7.0.jar"/>
<get dest="${lib.core}/ibatis-common-2.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/com.ibatis/jars/ibatis2-common-2.1.5.582.jar"/>
<get dest="${lib.core}/ibatis-sqlmap-2.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/com.ibatis/jars/ibatis2-sqlmap-2.1.5.582.jar"/>
<get dest="${lib.core}/commons-validator.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-validator/jars/commons-validator-1.1.3.jar"/>
<get dest="${lib.core}/commons-digester.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-digester/jars/commons-digester-1.7.jar"/>
<mkdir dir="${lib.examples}" />
<get dest="${lib.examples}/hsqldb.jar" usetimestamp="true"
ignoreerrors="true"
src="http://www.ibiblio.org/maven/hsqldb/jars/hsqldb-1.8.0.1.jar"/>
</target>
<!--
The "clean" task deletes any created directories that have resulted
from running any of the other targets in this script.
-->
<target name="clean"
description="Clean build and distribution directories">
<echo message="Processing build.target clean ${app.name}"/>
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
<delete dir="${doc.dir}" />
</target>
<target name="docs" depends="doc.extensions, doc.jsdoc, doc.jsobjects"
description="Generates Struts Flow docs" />
<target name="doc.extensions" depends="prepare">
<delete dir="${build.doc}/extensions"/>
<mkdir dir="${build.doc}/extensions" />
<java classname="org.apache.struts.flow.sugar.SugarWrapFactory">
<arg value="${src.doc}/extensions.js" />
<arg value="${src.java}/org/apache/struts/flow/sugar"/>
<arg value="${build.doc}/extensions"/>
<classpath refid="base.classpath" />
</java>
<xslt basedir="${build.doc}/extensions" includes="*.xml" destdir="${build.doc}"
extension=".xml" style="${src.doc}/jsdoc2xdoc.xsl" />
</target>
<target name="doc.jsdoc" depends="compile">
<delete dir="${build.doc}/jsdoc"/>
<mkdir dir="${build.doc}/jsdoc" />
<java classname="org.apache.struts.flow.sugar.SugarWrapFactory">
<arg value="${src.doc}/jsdoc.js" />
<arg value="-d" />
<arg value="${build.doc}/jsdoc"/>
<arg value="-i" />
<arg value="${src.java}"/>
<classpath refid="base.classpath" />
</java>
<xslt basedir="${build.doc}/jsdoc" includes="*.xml" destdir="${build.doc}"
extension=".xml" style="${src.doc}/jsdoc2xdoc.xsl" />
</target>
<target name="doc.jsobjects" depends="compile">
<delete dir="${build.doc}/jsobjects"/>
<mkdir dir="${build.doc}/jsobjects" />
<java classname="org.apache.struts.flow.sugar.SugarWrapFactory">
<arg value="${src.doc}/jsobjects.js" />
<arg value="${src.java}/org/apache/struts/flow/core"/>
<arg value="${build.doc}/jsobjects"/>
<classpath refid="base.classpath" />
</java>
<java classname="org.apache.struts.flow.sugar.SugarWrapFactory">
<arg value="${src.doc}/jsobjects.js" />
<arg value="${src.java}/org/apache/struts/flow"/>
<arg value="${build.doc}/jsobjects"/>
<classpath refid="base.classpath" />
</java>
<xslt basedir="${build.doc}/jsobjects" includes="*.xml" destdir="${build.doc}"
extension=".xml" style="${src.doc}/jsdoc2xdoc.xsl" />
</target>
<!--
The "prepare" target creates a directory structure in the build target
area for the unpacked files associated with this web application
-->
<target name="prepare" depends="init, download-dependencies"
description="Prepare target directory">
<echo message="Processing app ${app.name}"/>
<mkdir dir="${build.dir}" />
<mkdir dir="${build.target}" />
<mkdir dir="${dist.dir}" />
</target>
<target name="release" depends="clean, jar, examples,javadoc"
description="Creates a release">
<echo message="Creating ${app.version} release" />
<zip destfile="${release.zip}"
compress="true">
<zipfileset dir="${src.dir}" prefix="src" />
<zipfileset dir="${doc.dir}" prefix="doc" />
<zipfileset dir="${lib.dir}" prefix="lib" />
<zipfileset dir="${dist.dir}" prefix="dist" />
<fileset dir="." includes="build.xml" />
</zip>
</target>
<!--
The "compile" target compiles the Java source code of your web
application, if and only if the specified source directory
actually exists.
-->
<target name="compile" depends="prepare" description="Compile Java sources">
<echo message="Processing app ${app.name}"/>
<echo message="Source ${src.java}"/>
<echo message="Target ${build.target}"/>
<javac srcdir="${src.java}"
destdir="${build.target}"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}"
source="1.4"
target="1.4">
<classpath refid="base.classpath" />
</javac>
<copy todir="${build.target}">
<fileset dir="${src.java}">
<exclude name="**/*.java"/>
<exclude name="**/!dirinfo.txt"/>
</fileset>
</copy>
</target>
<target name="run-tests" depends="compile">
<mkdir dir="${build.test}" />
<javac srcdir="${src.test}" destdir="${build.test}"
debug="on" optimize="off" deprecation="off" >
<classpath refid="base.classpath" />
</javac>
<copy todir="${build.test}">
<fileset dir="${src.test}" excludes="**/*.java" />
</copy>
<junit printsummary="on" fork="on">
<formatter type="xml" />
<classpath refid="base.classpath" />
<batchtest todir="${build.test}">
<fileset dir="${src.test}">
<include name="**/Test*.java" />
</fileset>
</batchtest>
</junit>
<java classpathref="base.classpath" classname="org.apache.struts.flow.sugar.JavascriptSugarTest">
<arg path="${src.test}" />
</java>
</target>
<!--
The 'javadoc' target creates the API documentation.
All javadoc is created in the ${doc.dir}/javadoc directory.
-->
<target name="javadoc" depends="init">
<mkdir dir="${doc.dir}/api"/>
<delete includeEmptyDirs="true" >
<fileset dir="${doc.dir}/api"/>
</delete>
<mkdir dir="${doc.dir}/api"/>
<javadoc packagenames="${javadoc.packages}"
sourcepath="${src.java}"
destdir="${doc.dir}/api"
author="true"
version="true"
private="false"
doctitle="${app.name} Version ${app.version}">
<classpath refid="base.classpath" />
</javadoc>
</target>
<!--
The "dist" target creates a web application archive containing
your completed web application, suitable for deployment on any
compatible servlet container.
-->
<target name="jar" depends="compile"
description="Create jar">
<echo message="Processing jarfile ${app.name}"/>
<jar jarfile="${dist.dir}/${app.jar}"
basedir="${build.target}"
excludes="**/example/*.*"/>
</target>
<target name="examples" depends="jar"
description="Create examples">
<echo message="Creating examples"/>
<mkdir dir="${build.examples}" />
<mkdir dir="${build.examples}/WEB-INF/lib" />
<copy todir="${build.examples}">
<fileset dir="${src.examples}" excludes="WEB-INF/web.xml" />
</copy>
<copy todir="${build.examples}/WEB-INF/lib">
<fileset dir="${lib.core}" />
<fileset dir="${lib.examples}" />
</copy>
<copy todir="${build.examples}/WEB-INF/lib" file="${dist.dir}/${app.jar}" />
<war destfile="${dist.dir}/examples.war"
basedir="${build.examples}"
webxml="${src.examples}/WEB-INF/web.xml"/>
</target>
</project>