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