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