<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./tools/antipede/resources/stylesheets/build.xsl"?>

<!--<!DOCTYPE project SYSTEM "./tools/antipede/build.dtd" >-->
<!DOCTYPE project [
  <!-- antipede -->
  <!ENTITY import-antipede  SYSTEM "./tools/antipede/build.xtarget">

]>
<project default="interactive" basedir="." name="project build file">

<description>
                   * ===================================== *
                   |   Krysalis Centipede Build System     |
                   * ===================================== *
                                     by

                   Nicola Ken Barozzi (nicolaken@apache.org)
                   Marc Johnson (mjohnson@apache.org)


                   For a simple interactive build, simply
                   run the build script (build.bat or build.sh)
</description>

  <path id="classpath">
    <fileset dir="./lib/endorsed">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="./lib/core">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="./lib/optional">
      <include name="*.jar"/>
    </fileset>
  </path>


  <!-- =================================================================== -->
  <!-- Targets for this project                                            -->
  <!-- =================================================================== -->

  <target name="init" depends="-init">
    <property name="name"                  value="${xgump.module.project.name}"/>
    <property name="packages"              value="${xgump.module.project.packages}"/>

    <property name="build.root"            value="${xlayout.build.dir}"/>
    <property name="build.dir"             value="${xlayout.build.dir}"/>
    <property name="resource.dir"          value="${xlayout.source.resources.dir}"/>
    <property name="context.dir"           value="${xlayout.source.documentation.dir}"/>
    <property name="build.docs"            value="${xlayout.build.documentation.dir}"/>
    <property name="build.javadocs"        value="${xlayout.build.documentation.javadocs.dir}"/>
    <property name="build.context"         value="${xlayout.build.work.dir}"/>
    <property name="build.dest"            value="${xlayout.build.classes.dir}"/>
    <property name="build.scratchpad.dest" value="${xlayout.build.scratchpad.classes.dir}"/>

    <property name="tools.dir"             value="./tools"/>
    <property name="tools.jar"             value="${java.home}/../lib/tools.jar"/>
    <available file="${tools.jar}"         property="tools.jar.present"/>

  </target>



  <target name="run" depends="init">

    <antcall target="runforrestrun">
      <param name="getcvsmodule.package"      value="jakarta-poi"/>
      <param name="getcvsmodule.work.dir"     value="${build.dir}/work/forrest/cvsmodule" />
      <param name="documentation.source.dir"  value="${build.dir}/work/forrest/cvsmodule/jakarta-poi/src/documentation"/>
      <param name="deploy.username"           value="forrestbot"/>
      <param name="deploy.package-name"       value="jakarta-poi"/>
      <param name="deploy.data.dir"           value="${build.dir}/docs"/>
      <param name="deploy.hostname"           value="krysalis.sourceforge.net"/>
      <param name="deploy.remotedir"          value="/home/groups/k/kr/krysalis/htdocs/poi"/>
    </antcall>

  </target>

  <target name="runforrestrun" depends="getcvsmodule, prepare-docs, owdocs, deploy"/>

  <target name="updateforrestsite" depends="init, docs, deployforrestsite, sendlog"/>

  <target name="deployforrestsite" depends="init, docs">
    <antcall target="deploy">
      <param name="deploy.username"     value="forrestbot"/>
      <param name="deploy.package-name" value="xml-forrest"/>
      <param name="deploy.data.dir"     value="${build.dir}/docs"/>
      <param name="deploy.hostname"     value="krysalis.sourceforge.net"/>
      <param name="deploy.remotedir"    value="/home/groups/k/kr/krysalis/htdocs/forrest"/>
    </antcall>
  </target>

  <!-- =================================================================== -->
  <!-- Interactive build                                                   -->
  <!-- =================================================================== -->
  <target name="interactive" description="Interactive Build" depends="-init">
    <echo>
    --------------------------------------------------------------

          ${xgump.module.project.name} ${xgump.module.project.version.major}.${xgump.module.project.version.minor}   [${YEAR}]

    --------------------------------------------------------------
     Using ${ant.version}
     Build file ${ant.file}
    --------------------------------------------------------------
     These are the most common build targets.
     You can also invoke them directly; see build.xml for more info.
     Builds will be in /build directory, distributions in /dist.

     forrest-typical targets:

     docs ------------- generates static Forrest website
     webapp ----------- builds webapp (.war) deployable version of Forrest website
     bot.run ---------- runs the forrestbot using the configuration specified in
                        forrestbot.conf.xml

     default centipede targets:

     compile ---------- compiles the source code
     test ------------- performs the jUnit tests
     jar -------------- create the jar files
     docs ------------- generates the html docs - clean not needed
     javadocs --------- generates the API documentation
     site ------------- generates the html site (docs+reports)
     clean ------------ cleans the build directory
     dist ------------- creates src and bin distributions
     scratchpad ------- build-run scratchpad code
     contrib ---------- build-run contributed code


    </echo>
    <property name="input.selection" value="docs"/>
    <centipede-user-input name="input.selection">Please select a target </centipede-user-input>

    <antcall target="call-cent">
      <param name="cent-name"   value="centipede"/>
      <param name="cent-target" value="splash"/>
    </antcall>

    <antcall target="${input.selection}"/>

  </target>


  <!-- ================================== -->
  <!--              Compile               -->
  <!-- ================================== -->

  <target  name="compile"   depends="-init"
           description="Compile java source code">

    <antcall target="call-cent">
      <param name="cent-name"   value="centipede"/>
      <param name="cent-target" value="compile"/>
    </antcall>

  </target>

  <!-- ================================== -->
  <!--              jar                   -->
  <!-- ================================== -->

  <target  name="jar"   depends="-init"
           description="Make jars">

    <antcall target="call-cent">
      <param name="cent-name"   value="centipede"/>
      <param name="cent-target" value="package"/>
    </antcall>

  </target>

  <!-- ================================== -->
  <!--              Scratchpad               -->
  <!-- ================================== -->

  <target  name="scratchpad"   depends="-init"
           description="Execute scratchpad targets">

    <ant antfile="${xlayout.source.scratchpad.targets.dir}/scratchpad.xml"/>

  </target>

  <!-- ================== -->
  <!-- Prepares the docs  -->
  <!-- ================== -->
  <target name="prepare-docs" depends="init, compile">

    <property name="centipede.tools.cents.forrest.loglevel" value="ERROR"/>
    <property name="use.skin" value="forrest-site"/>

    <property name="documentation.context.dir"  value="${resource.dir}"/>
    <property name="documentation.source.dir"   value="${context.dir}"/>

    <echo>Running docs generation from: ${documentation.source.dir}.</echo>

    <!-- define filters -->
    <filter token="skin"              value="${use.skin}"/>
    <filter token="link1"             value="apache"/>
    <filter token="link1.href"        value="http://www.apache.org/"/>
    <filter token="link2"             value="xml.apache"/>
    <filter token="link2.href"        value="http://xml.apache.org/"/>
    <!-- the breadcrumb script already generates it, so it needs to be kept blank -->
    <filter token="link3"             value=""/>
    <filter token="link3.href"        value=""/>
    <filter token="group-logo.src"    value="images/group-logo.gif"/>
    <filter token="group-logo.href"   value="http://xml.apache.org/"/>
    <filter token="group-logo.alt"    value="Apache XML logo"/>
    <filter token="project-logo.src"  value="images/project-logo.gif"/>
    <filter token="project-logo.href" value="http://xml.apache.org/forrest/"/>
    <filter token="project-logo.alt"  value="Forrest logo"/>
    <filter token="year" value="2002"/>
    <filter token="vendor" value="Apache Sofware Foundation"/>


    <mkdir dir="${build.context}"/>
    <mkdir dir="${build.docs}"/>
    <mkdir dir="${build.dir}/work"/>


    <!-- make filtered copy of XML docs -->
    <copy todir="${build.context}" filtering="on" overwrite="true">
      <fileset dir="${documentation.source.dir}" casesensitive="no">
        <include name="**/*.x*"/>
      </fileset>
    </copy>

    <!-- make non filtered copy of images -->
    <copy todir="${build.context}" filtering="off">
      <fileset dir="${documentation.source.dir}" casesensitive="no">
        <exclude name="**/*.x*"/>
      </fileset>
    </copy>

    <!-- Copy entity catalog, entities and class files -->
    <copy todir="${build.context}/resources/schema" filtering="on">
      <fileset dir="${resource.dir}/schema"/>
    </copy>
    <mkdir dir="${build.context}/WEB-INF/classes"/>
    <copy todir="${build.context}/WEB-INF/classes">
      <fileset dir="${build.context}/resources/schema">
        <include name="CatalogManager.properties"/>
      </fileset>
      <fileset dir="${build.dest}">
        <include name="**/*.class"/>
      </fileset>
      <fileset dir="${build.scratchpad.dest}">
        <include name="**/*.class"/>
      </fileset>
    </copy>

    <!-- Copy Cocoon configuration, sitemap and skin conf -->
    <copy todir="${build.context}" filtering="on">
      <fileset dir="${documentation.context.dir}/conf">
        <include name="sitemap.xmap"/>
        <include name="skinconf.xml"/>
        <include name="cocoon.xconf"/>
        <include name="logkit.xconf"/>
      </fileset>
    </copy>
    <copy todir="${build.context}/WEB-INF/" filtering="on">
      <fileset dir="${documentation.context.dir}/conf">
        <exclude name="sitemap.xmap"/>
      </fileset>
    </copy>

    <!-- Copy libraries -->
    <copy todir="${build.context}/library/" filtering="on">
      <fileset dir="${documentation.context.dir}/library">

      </fileset>
    </copy>

    <!-- Copy skins -->
    <copy todir="${build.context}/skins/" filtering="on">
      <fileset dir="${documentation.context.dir}/skins">
        <exclude name="**/images/**"/>
      </fileset>
    </copy>
    <copy todir="${build.context}/skins/" filtering="off">
      <fileset dir="${documentation.context.dir}/skins">
        <include name="**/images/**"/>
      </fileset>
    </copy>

    <!-- Copy the project descriptors -->
    <copy todir="${build.context}" filtering="on">
      <fileset dir=".">
        <include name="*.*ml"/>
      </fileset>
    </copy>

  </target>

  <!-- =================================================================== -->
  <!-- Prepares the docs to create a .war                                  -->
  <!-- =================================================================== -->
  <target name="webapp" depends="init, prepare-docs">
    <delete file="${build.context}/cocoon.xconf"/>
    <war warfile="${build.dir}/${name}.war"
         webxml="${build.context}/WEB-INF/web.xml"
         compress="true">

      <fileset dir="${build.context}">
        <exclude name="WEB-INF/web.xml"/>
      </fileset>
      <lib dir="lib/endorsed"/>
      <lib dir="lib/core"/>
      <lib dir="lib/optional"/>
      <lib dir="src/scratchpad/lib"/>
      <classes dir="${build.context}/WEB-INF/classes/"/>

    </war>

  </target>

  <target name="cleandocs" depends="init" description="* Cleans the build docs directories">
    <delete dir="${build.docs}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->
  <target name="javadocs"
      description="* Generates the API documentation">
    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="${packages}"
             sourcepath="${build.src}"
             destdir="${build.javadocs}"
             author="true"
             version="true"
             use="false"
             noindex="true"
             windowtitle="${Name} API"
             doctitle="${Name}"
             bottom="Copyright &#169; ${year} ${fullname} project. All Rights Reserved."
             stylesheetfile="${resource.dir}/javadoc.css">
      <classpath refid="classpath"/>
    </javadoc>
  </target>

  <!-- =================================================================== -->
  <!-- Validate xml                                                        -->
  <!-- =================================================================== -->
  <target name="validate-docs" description="Checks that the xml files are valid and conform to the DTD.">
    <xmlvalidate failonerror="yes" lenient="yes" warn="yes"
       className="org.apache.xerces.parsers.SAXParser">

       <classpath>
         <fileset dir="./lib/endorsed">
           <include name="*.jar"/>
         </fileset>
       </classpath>

       <fileset dir="."
                includes="*.x*" excludes="build.xml"/>

     </xmlvalidate>
  </target>

  <!-- =================================================================== -->
  <!-- The documentation system                                            -->
  <!-- =================================================================== -->
  <target name="docs"
          depends="cleandocs, owdocs"
          description="* Generates the documentation"/>

  <!-- =================================================================== -->
  <!-- The documentation system                                            -->
  <!-- =================================================================== -->
  <target name="owdocs"
          depends="prepare-docs"
          description="* Generates the documentation">

    <property name="dir.containing.docs" value="${build.context}"/>

    <echo message="-------------------------------------------------------------"/>
    <echo message="  Building docs, please stand by ..."/>

    <java classname="org.apache.cocoon.Main" fork="true" dir="${dir.containing.docs}" failonerror="true">
      <arg value="-c."/>
      <arg value="-d../docs"/>
      <arg value="-w../work"/>
      <arg value="-b../brokenlinks.txt"/>
      <arg value="-k../work/logkit.xconf"/>
      <arg value="-u${centipede.tools.cents.forrest.loglevel}"/>
      <arg value="-V"/>
      <arg value="index.html"/>
      <classpath>
        <path refid="classpath"/>
        <fileset dir="${build.dir}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${tools.dir}">
          <include name="*/lib/*.jar"/>
        </fileset>
        <pathelement location="${tools.jar}"/>
        <pathelement location="${build.context}/WEB-INF/classes"/>
      </classpath>
    </java>

    <echo message="  ...docs generated successfully in ${build.docs}"/>
    <echo message="-------------------------------------------------------------"/>

  </target>

  <!-- =================================================================== -->
  <!-- Creates the web site                                                -->
  <!-- =================================================================== -->
  <target name="site" depends="docs, javadocs"
      description="Generates the web site (for site maintainers only)">
    <mkdir dir="${site}"/>
    <copy todir="${site}" filtering="off">
      <fileset dir="${build.docs}">
      </fileset>
    </copy>
    <copy todir="${site}/apidocs" filtering="off">
      <fileset dir="${build.javadocs}"/>
    </copy>
  </target>


  <target name="getcvsmodule" depends="init">

    <property name="getcvsmodule.work.dir" value="${build.dir}/work/forrest/cvsmodule" />
    <property name="getcvsmodule.package" value="xml-forrest" />

    <delete dir="${getcvsmodule.work.dir}"/>
    <mkdir dir="${getcvsmodule.work.dir}"/>

    <cvspass cvsroot=":pserver:anoncvs@jakarta.apache.org:/home/cvspublic"
            password="anoncvs"
     />

    <cvs cvsRoot=":pserver:anoncvs@cvs.apache.org:/home/cvspublic"
         package="${getcvsmodule.package}"
         dest="${getcvsmodule.work.dir}"
         quiet="true"
    />
  </target>

  <target name="deploy" unless="deploy.username, deploy.package-name
                                    deploy.data.dir, deploy.hostname, deploy.remotedir">
  <!--
    deploy.username
    deploy.package-name
    deploy.data.dir
    deploy.hostname
    deploy.remotedir
   -->

    <property name="deploy.work.dir"  value="${build.dir}/work/forrest/deploy/${deploy.package-name}"/>

    <delete dir="${deploy.work.dir}"/>
    <mkdir dir="${deploy.work.dir}"/>

    <property name="deploy.tar.fullpath"
              value="${deploy.work.dir}/${deploy.package-name}-deploy"/>

    <tar tarfile="${deploy.tar.fullpath}.tar" basedir="${deploy.data.dir}"/>
    <gzip zipfile="${deploy.tar.fullpath}.tar.gz" src="${deploy.tar.fullpath}.tar"/>
    <delete file="${deploy.tar.fullpath}.tar"/>

    <exec dir="." executable="scp">
      <!--<arg value="-oProtocol=1"/>-->
      <arg value="${deploy.tar.fullpath}.tar.gz"/>
      <arg value="${deploy.username}@${deploy.hostname}:${deploy.remotedir}"/>
    </exec>

    <exec dir="." executable="ssh">
      <arg line="-n ${deploy.hostname} -l ${deploy.username} 'cd ${deploy.remotedir};gunzip ${deploy.package-name}-deploy.tar.gz;tar xUvf ${deploy.package-name}-deploy.tar;chmod -R g+u *;rm ${deploy.package-name}-deploy.tar'"/>
    </exec>

    <delete file="${deploy.tar.fullpath}.tar.gz"/>

  </target>

  <target name="sendlog" depends="init" if="sendlog.to">

   <mail from="forrest-dev@xml.apache.org"
         tolist="${sendlog.to}"
         subject="[DO NOT REPLY] Building in the Forrest"
         files="forrestbot.log" />

  </target>


  <target name="testpoi" depends="init, testpoicvs, testpoigen, testpoideploy"/>


  <target name="testpoicvs" depends="init">

    <antcall target="getcvsmodule">
      <param name="getcvsmodule.package"  value="jakarta-poi"/>
      <param name="getcvsmodule.work.dir" value="${build.dir}/work/forrest/cvsmodule" />
    </antcall>

  </target>

  <target name="testpoigen" depends="init">

    <antcall target="prepare-docs">
      <param name="documentation.source.dir"  value="${build.dir}/work/forrest/cvsmodule/jakarta-poi/src/documentation"/>
    </antcall>

    <antcall target="owdocs"></antcall>

  </target>

  <target name="testpoideploy" depends="init">


    <antcall target="deploy">
      <param name="deploy.username"     value="forrestbot"/>
      <param name="deploy.package-name" value="jakarta-poi"/>
      <param name="deploy.data.dir"     value="${build.dir}/docs"/>
      <param name="deploy.hostname"     value="krysalis.sourceforge.net"/>
      <param name="deploy.remotedir"    value="/home/groups/k/kr/krysalis/htdocs/poi"/>
    </antcall>

  </target>



   <target name="forrestbar" depends="init">

      <mkdir dir="${build.dir}" />
      <mkdir dir="${build.dir}/work/forrestbar" />

      <jar jarfile="${build.dir}/work/forrestbar/forrestbar.jar">
         <fileset dir="src/resources/forrestbar" includes="content/**/*" />
      </jar>

      <copy file="src/resources/forrestbar/install.js" todir="${build.dir}/work/forrestbar" overwrite="true" />

      <zip zipfile="${build.dir}/forrestbar.xpi" basedir="${build.dir}/work/forrestbar" />

   </target>



  <!-- ================================== -->
  <!--        Target used by Gump         -->
  <!-- ================================== -->

  <target  name="gump" description="Target used by Gump">

      <antcall target="docs"/>
      <antcall target="webapp"/>

  </target>

  <!-- ================================== -->
  <!--    Targets for the remote builds   -->
  <!-- ================================== -->

  <target name="bot.init" depends="init">
    <!-- initializes environment to start on bot targets -->
    <property name="bot.build.dir"              value="${xlayout.build.bot.dir}"/>
    <property name="bot.work.build.xml"         value="${bot.build.dir}/work.build.xml"/>
    <property name="bot.default.parameters.xml" value="${bot.build.dir}/default.parameters.xml"/>
    <property name="bot.forrestbot.xconf"       value="forrestbot.conf.xml" />
    <property file="ant-mail.properties" />
    <property name="bot.templates.build.xml"    value="${xlayout.source.resources.forrestbot.ant.dir}/templates.build.xml" />
    <property name="bot.work.builder.xslt"      value="${xlayout.source.resources.forrestbot.xslt.dir}/config2work.xsl" />
    <property name="bot.default.builder.xslt"   value="${xlayout.source.resources.forrestbot.xslt.dir}/config2defaults.xsl" />
    <mkdir dir="${bot.build.dir}" />
    <echo message="Using config file: ${bot.forrestbot.xconf}" />
  </target>

  <target name="bot.conf2build" depends="bot.init" >
		<!-- remove previous versions to force generation again -->
		<delete file="${bot.work.build.xml}" />
		<delete file="${bot.default.parameters.xml}" />

    <!-- builds the different xml files this process needs.  -->
    <style in="${bot.forrestbot.xconf}"
       out="${bot.work.build.xml}"
       style="${bot.work.builder.xslt}"/>
    <style in="${bot.forrestbot.xconf}"
       out="${bot.default.parameters.xml}"
       style="${bot.default.builder.xslt}"/>
    <copy todir="${bot.build.dir}" file="${bot.templates.build.xml}"/>
  </target>

  <target name="bot.prepare-cp" depends="bot.init, compile" >
    <!-- todo: question if it is good practice to share WEB-INF classes -->
    <mkdir dir="${bot.build.dir}/WEB-INF/classes"/>
    <copy todir="${bot.build.dir}/WEB-INF/classes">
      <fileset dir="${resource.dir}/schema">
        <include name="CatalogManager.properties"/>
      </fileset>
      <fileset dir="${build.dest}">
        <include name="**/*.class"/>
      </fileset>
      <fileset dir="${build.scratchpad.dest}">
        <include name="**/*.class"/>
      </fileset>
    </copy>

    <path id="forrest.cp">
      <path refid="classpath"/>
      <fileset dir="${build.dir}">
        <include name="*.jar"/>
      </fileset>
      <fileset dir="${tools.dir}">
        <include name="*/lib/*.jar"/>
      </fileset>
      <pathelement location="${tools.jar}"/>
      <pathelement location="${bot.build.dir}/WEB-INF/classes"/>
    </path>
  </target>

  <target name="bot.run" depends="bot.conf2build, bot.prepare-cp" >
    <!-- delegates to the generated XML file -->
    <ant antfile="${bot.work.build.xml}" target="work" inheritRefs="true"/>
  </target>

  <target name="bot" depends="bot.run" />

  <!-- =================================================================== -->
  <!-- Import Ant-Centipede init targets - sets up basic build stuff       -->
  <!-- =================================================================== -->
  <!--
        This is the target that initializes tasks and properties used
        commonly in every other target.

        Remember to add depends="init" to every target, so that this
        target is called before any other.

        This target is internal; to make it unusable from the commandline,
        its name starts with a hyphen.
        To make it invisible when using -projecthelp, it lacks a description.
  -->

    &import-antipede;

</project>
