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