<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project default="jar" basedir="." name="Forrest build file">
  <description>
    Build system for Apache Forrest. Run the build script: build.bat or build.sh
  </description>
<!-- Global properties for taskdef ... -->
  <property name="forrest.home" location=".."/>
  <property name="forrest.ant.lib-dir"    location="${forrest.home}/tools/ant/lib"/>
<!-- Defintion of optional but useful targets ... -->
  <taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
      <fileset dir="${forrest.ant.lib-dir}" includes="ant-contrib-*.jar" />
    </classpath>
  </taskdef>
  <target name="init">
    <tstamp>
      <format property="YEAR" pattern="yyyy" locale="en"/>
    </tstamp>
    <xmlproperty file="status.xml"     prefix="xstatus"  keeproot="false" collapseAttributes="true" />
    <property name="build.compiler.emacs"       value="on"/>
    <property name="build.compiler.warnings"    value="true"/>
    <property name="build.compiler.pedantic"    value="false"/>
    <property name="build.compiler.depend"      value="true"/>
    <property name="build.compiler.fulldepend"  value="true"/>
    <property name="build.compiler.debug"       value="on"/>
    <property name="build.compiler.optimize"    value="off"/>
    <property name="build.compiler.deprecation" value="on"/>
    <property name="build.compiler.nowarn"      value="on"/>
    <property name="build.compiler.type"        value="classic"/>
    <property name="build.compiler.vm"          value="1.5"/>
    <property name="name" value="apache-forrest"/>
    <property name="forrest.version" value="0.10-dev"/>
    <property name="forrest.core" location="."/>
    <property name="java.dir"              location="java"/>
    <property name="plugins.dir"           location="${forrest.home}/plugins"/>
    <property name="build.dir"             location="${forrest.home}/build"/>
    <property name="build.docs"            location="${build.dir}/docs"/>
    <property name="build.classes"         location="${build.dir}/classes"/>
    <property name="dist.dir"              location="${build.dir}/dist" />
    <property name="dist-shbat.dir"        location="${dist.dir}/shbat" />
    <property name="tools.dir"             location="${forrest.home}/tools"/>
    <property name="tools.jar"             location="${java.home}/../lib/tools.jar"/>
    <available file="${tools.jar}"         property="tools.jar.present"/>
    <property name="src-fresh-site"         location="${forrest.home}/main/fresh-site"/>
    <property name="forrestbot.dir"         location="${forrest.home}/tools/forrestbot"/>
    <mkdir dir="${build.dir}"/>
    <buildnumber file="${build.dir}/build.number"/>
    <echo level="info">
      --------------------------------------------------------------

      Using ${ant.version}
      Build file ${ant.file}
      Use 'build.[sh|bat] -projecthelp' to see other options.
      Build system home ${ant.home}
      Build number ${build.number}
      Project Name ${ant.project.name}
      Java Version ${ant.java.version}      
      Timestamp ${DSTAMP}${TSTAMP}
      This is: ${name} ${forrest.version}

      --------------------------------------------------------------
    </echo>
    <path id="classpath">
      <fileset dir="${forrest.home}/lib" includes="**/*.jar"/>
      <fileset dir="${tools.dir}/jetty" includes="servlet*.jar"/>
      <pathelement location="${tools.jar}"/>
    </path>
  </target>
  <target name="clean" depends="init" description="Delete all generated files">
    <delete dir="${build.dir}"/>
    <delete dir="${forrestbot.dir}/logs"/>
    <delete dir="${forrestbot.dir}/work"/>
    <delete dir="${forrestbot.dir}/build"/>
    <delete dir="${forrestbot.dir}/sites"/>
    <delete dir="${forrestbot.dir}/webapp/target"/>
    <delete dir="${forrestbot.dir}/webapp/maven.log"/>
    <delete dir="webapp/WEB-INF/logs"/>
  </target>
  <target name="dist-clean" depends="init, clean"
     description="Delete all non-forrest files (*.settings, *.bak, *~)">
    <delete dir="${forrestbot.dir}/*.settings"/>
    <delete file="**/*.bak"/>
    <delete file="**/*~"/>
  </target>
<!-- =================================================================== -->
<!-- Make release distributions                                          -->
<!-- =================================================================== -->
  <target name="release-dist" depends="init, dist-clean, dist-shbat" 
    description="Makes release distributions">
    <property name="release-name-bin" value="${name}-${forrest.version}"/>
<!-- Prepare *.tar.gz for "lf" eol-style systems -->
<!-- FIXME: 2007-04-11
     Leaving this alone. fixcrlf seems to mess with some images and jar files.
    <fixcrlf eol="lf" srcdir="${dist-shbat.dir}">
      <exclude name="**/*.bat"/>
      <exclude name="**/*.jar"/>
    </fixcrlf>
-->
    <tar longfile="gnu" compression="gzip"
      destfile="${dist.dir}/${release-name-bin}.tar.gz" >
      <tarfileset prefix="${release-name-bin}" dir="${dist-shbat.dir}"
        username="forrest" group="forrest">
        <exclude name="**/*.sh"/>
        <exclude name="**/ant"/>
        <exclude name="**/forrest"/>
      </tarfileset>
      <tarfileset prefix="${release-name-bin}" dir="${dist-shbat.dir}"
        mode="755" username="forrest" group="forrest">
        <include name="**/*.sh"/>
        <include name="**/ant"/>
        <include name="**/forrest"/>
      </tarfileset>
    </tar>
    <checksum file="${dist.dir}/${release-name-bin}.tar.gz" algorithm="md5" forceOverwrite="true" />
    <checksum file="${dist.dir}/${release-name-bin}.tar.gz" algorithm="sha1" forceOverwrite="true" />
<!-- Prepare *.zip for "crlf" eol-style systems -->
<!-- FIXME: 2007-04-11
     Leaving this alone. fixcrlf seems to mess with some images and jar files.
    <fixcrlf eol="crlf" srcdir="${dist-shbat.dir}">
      <exclude name="**/*.sh"/>
      <exclude name="**/*.jar"/>
    </fixcrlf>
-->
    <zip
      file="${dist.dir}/${release-name-bin}.zip" >
      <zipfileset dir="${dist-shbat.dir}" prefix="${release-name-bin}"/>
    </zip>
    <checksum file="${dist.dir}/${release-name-bin}.zip" algorithm="md5" forceOverwrite="true" />
    <checksum file="${dist.dir}/${release-name-bin}.zip" algorithm="sha1" forceOverwrite="true" />
  </target>
<!-- =================================================================== -->
<!-- Make all known distributions                                        -->
<!-- =================================================================== -->
  <target name="dist" 
    description="Makes all the known incarnations of forrest"
    depends="clean,dist-shbat" />
<!-- =================================================================== -->
<!-- Use xmlformat on various xml-type files                             -->
<!-- =================================================================== -->
<!-- Notes:
You need 'xmlformat' locally installed.
Change the fileset/@dir to the tree that you want to clean.
If you encounter invalid xml, uncomment the -v (not xmlformat job to validate).
Remove any build directories in a tree before running.
-->
  <target name="xmlformat" depends="init">
    <apply executable="xmlformat" parallel="false" verbose="yes">
      <arg value="-f${forrest.home}/etc/xmlformat.conf"/>
      <arg value="-i"/>
<!--
      <arg value="-v"/>
-->
      <srcfile/>
      <fileset dir="${forrest.home}/etc/test-whitespace">
        <patternset>
          <include name="**/*.xml"/>
          <include name="**/*.xsl"/>
          <include name="**/*.xslt"/>
          <include name="**/*.xmap"/>
          <include name="**/*.jx"/>
          <include name="**/*.ft"/>
          <include name="**/*.fv"/>
          <include name="**/*.html"/>
          <include name="**/*.rdf"/>
          <include name="**/*.xcat"/>
          <include name="**/*.xhtml"/>
          <include name="**/*.xhtml2"/>
          <include name="**/*.xxe"/>
        </patternset>
      </fileset>
    </apply>
  </target>
  <target name="xmlformat-single" depends="init">
<!-- Notes:
You need 'xmlformat' locally installed.
Change the last arg to be your single file.
See other notes above.
-->
    <exec dir="${build.dir}" executable="xmlformat">
      <arg line="-f${forrest.home}/etc/xmlformat.conf"/>
      <arg line="-i"/>
<!--
      <arg line="-v"/>
-->
      <arg line="${forrest.home}/etc/test-whitespace/test-1.xml"/>
    </exec>
  </target>
<!-- =================================================================== -->
<!-- Test tidy.sf.net on a single xml-type file                          -->
<!-- See also etc/tidy-xml.pl                                            -->
<!-- FIXME: We use 'xmlformat' instead. See above and FOR-644.           -->
<!-- =================================================================== -->
  <target name="tidy-xml-file" depends="init">
    <exec dir="${build.dir}" executable="tidy">
      <arg line="-config ${forrest.home}/etc/tidy-config.txt"/>
      <arg line="${forrest.home}/etc/test-whitespace/test-1.xml"/>
    </exec>
  </target>
<!-- =================================================================== -->
<!-- Validate the important core configuration files                     -->
<!-- =================================================================== -->
  <target name="validate-config" depends="init"
    description="Validate the important core configuration files">
    <if>
      <available file="${build.dir}/plugins"/>
      <then>
        <dirset dir="${build.dir}/plugins" id="installed-plugins">
          <include name="*"/>
          <exclude name="lib"/>
        </dirset>
        <pathconvert pathsep=", " property="installed-plugins" refid="installed-plugins">
          <mapper type="flatten"/>
        </pathconvert>
      </then>
      <else>
        <property name="installed-plugins" value="None"/>
      </else>
    </if>
    <echo level="info">Installed plugins: ${installed-plugins}</echo>
<!-- FIXME allow switch if="validate.config"  -->
    <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask">
      <classpath>
        <fileset dir="${forrest.home}/lib/core" includes="*.jar" />
      </classpath>
    </taskdef>
<!-- skinconf.xml -->
    <echo level="info" message="validating **/skinconf.xml ..."/>
    <xmlvalidate failonerror="true" lenient="no" warn="yes">
      <xmlcatalog id="xcat">
        <catalogpath>
          <pathelement
            location="${forrest.core}/webapp/resources/schema/catalog.xcat"/>
        </catalogpath>
      </xmlcatalog>
      <fileset dir="${forrest.core}/fresh-site"
        includes="**/skinconf.xml" />
    </xmlvalidate>
<!-- All stylesheets **/*.xsl -->
    <echo level="info" message="validating stylesheets **/*.xsl ..."/>
    <jing rngfile="${forrest.core}/webapp/resources/schema/relaxng/xslt.rng">
      <fileset dir="${forrest.core}" includes="**/*.xsl"/>
      <fileset dir="${tools.dir}" includes="**/*.xsl"/>
    </jing>
<!-- sitemap.xmap -->
<!-- commented out see http://issues.apache.org/bugzilla/show_bug.cgi?id=33378 
    <echo level="info" message="validating **/sitemap.xmap ..."/>
    <jing rngfile="${forrest.core}/webapp/resources/schema/relaxng/sitemap-v06.rng">
      <fileset dir="${forrest.core}/webapp/" includes="*.xmap"/>
    </jing>
    -->
<!-- book.xml -->
<!-- FIXME: Need Norm Walsh catalog entity resolver or Jeff's DoctypeChanger.
    <echo level="info" message="validating **/book.xml ..."/>
    <jing rngfile="${forrest.core}/resources/schema/relaxng/book-v01.rng">
      <fileset dir="${forrest.core}" includes="**/book.xml"/>
    </jing>
    -->
  </target>
  <target name="dist-shbat" 
    depends="init, jar, validate-config" >
<!-- fresh drop-off location for the distribution -->
    <delete dir="${dist-shbat.dir}" />
    <mkdir dir="${dist-shbat.dir}" />
    <echo level="info">Copy Forrest core files from ${forrest.home}</echo>
    <copy todir="${dist-shbat.dir}">
      <fileset dir="${forrest.home}" >
        <exclude name="admin/**"/>
        <exclude name="build/**"/>
        <exclude name="etc/**"/>
        <exclude name="whiteboard/**"/>
        <exclude name="plugins/**"/>
<!-- exclude some tools that are not yet ready to be bundled -->
        <exclude name="examples/**"/>
        <exclude name="tools/eclipse/**"/>
        <exclude name="tools/logos/**"/>
<!-- testing removal of tools/anttasks FOR-911 -->
        <exclude name="tools/anttasks/**"/>
      </fileset>
    </copy>
    <echo level="info">Copy plugin related files from ${plugins.dir}</echo>
    <copy todir="${dist-shbat.dir}/plugins">
      <fileset dir="${plugins.dir}" >
        <include name="plugins.xml"/>
        <include name="build.xml"/>
        <include name="pluginTemplate/**"/>
        <include name="org.apache.forrest.plugin.output.pdf/**"/>
      </fileset>
    </copy>
    <echo level="info">Copy whiteboard plugin related files</echo>
    <copy todir="${dist-shbat.dir}/whiteboard/plugins">
      <fileset dir="${forrest.home}/whiteboard/plugins" >
        <include name="whiteboard-plugins.xml"/>
        <include name="build.xml"/>
      </fileset>
    </copy>
    <echo level="info">Copy forrest.jar</echo>
    <copy todir="${dist-shbat.dir}">
      <fileset dir="${forrest.home}" >
        <include name="build/xml-forrest.jar"/>
      </fileset>
    </copy>
    <echo level="info">Copy some miscellaneous stuff</echo>
    <copy todir="${dist-shbat.dir}">
      <fileset dir="${forrest.home}" >
        <include name="etc/README.txt"/>
        <include name="etc/RELEASE*.txt"/>
        <include name="etc/AnsiColorLogger.properties"/>
        <include name="etc/publishing_our_site.txt"/>
        <include name="etc/xmlformat.conf"/>
      </fileset>
    </copy>
<!-- Fix bin/ permissions -->
    <fixcrlf eol="crlf" srcdir="${dist-shbat.dir}/bin" includes="*.bat"/>
    <fixcrlf eol="lf" srcdir="${dist-shbat.dir}/bin" excludes="*.bat"/>
    <chmod dir="${dist-shbat.dir}/bin" perm="ugo+rx" excludes="*.bat"/>
<!-- Fix ant/bin/ permissions -->
    <fixcrlf eol="crlf" srcdir="${dist-shbat.dir}/tools/ant/bin" includes="*.bat"/>
    <fixcrlf eol="lf" srcdir="${dist-shbat.dir}/tools/ant/bin" excludes="*.bat"/>
    <chmod dir="${dist-shbat.dir}/tools/ant/bin" perm="ugo+rx" excludes="*.bat"/>
    <echo level="info">
  *-----------------------------------------------------------------
  | installation notice 
  *-----------------------------------------------------------------
  | You have succesfully built the shell-bat distribution of Forrest.
  | Please find it at: ${dist-shbat.dir}
  | Please copy the contents to the install directory of your choice
  | Please have the environment variable FORREST_HOME point to
  |  ${dist-shbat.dir}
  | It is recommended to add
  |    unix: $FORREST_HOME/bin: to your $PATH
  |    win: %FORREST_HOME%\bin; to your %PATH%
  | Calling
  |    unix: $FORREST_HOME/bin/forrest -projecthelp
  |    win: %FORREST_HOME%\bin\forrest -projecthelp
  | will list options for the 'forrest' command
  | More help at http://forrest.apache.org/ and dev AT forrest.apache.org
  *-----------------------------------------------------------------
    </echo>
  </target>
<!-- =================================================================== -->
<!-- Generate project-site                                               -->
<!-- =================================================================== -->
  <target name="docs" depends="site"/>
  <target name="site" depends="dist-shbat"
    description="Generates static HTML documentation">
    <ant antfile="${forrest.core}/forrest.build.xml" target="site"/>
  </target>
  <target name="webapp" depends="dist-shbat"
    description="Builds a cocoon webapp for local execution">
    <ant antfile="${forrest.core}/forrest.build.xml" target="webapp"/>
  </target>
<!-- ================================== -->
<!--        Test targets                -->
<!-- ================================== -->
  <target name="test" 
          depends="validate-config, testseed, testPlugins" 
          description="Test that the features are okay before committing."/>
  <target name="test-basic" 
          depends="validate-config, testseedBasic"/>
  <target name="test-sample" depends="validate-config"
          description="Does 'seed-sample' and generates the 'skinned' site">
    <antcall target="testSiteType">
      <param name="test.site.type" value="skinned"/>
    </antcall>
  </target>
  <target name="testPlugins"
          depends="cleanPlugins"
          description="Test each type of the plugin">
<!--
      FIXME: these don't work as the compile stage executes since $java.dir = FORREST_HOME/main/java
      instead of PLUGIN_HOME/java
    <echo level="info">=============================</echo>
    <echo level="info">Testing using an input plugin</echo>
    <echo level="info">=============================</echo>
    <ant antfile="${forrest.home}/plugins/org.apache.forrest.plugin.excel/build.xml" target="test">
      <property name="basedir" location="${forrest.home}/plugins/org.apache.forrest.plugin.excel"/>
    </ant>
    
    <echo level="info">=============================</echo>
    <echo level="info">Testing using an ouptut plugin</echo>      
    <echo level="info">=============================</echo>
    <ant antfile="${forrest.home}/plugins/org.apache.forrest.plugin.output.pdf/build.xml" target="test">
      <property name="basedir" location="${forrest.home}/plugins/org.apache.forrest.plugin.output.pdf"/>
    </ant>
    
    <echo level="info">=============================</echo>
    <echo level="info">Testing using an internal plugin</echo>
    <echo level="info">=============================</echo>
    <ant antfile="${forrest.home}/plugins/IMSManifest/build.xml" target="test">
      <property name="basedir" location="${forrest.home}/plugins/IMSManifest"/>
    </ant>
    -->
  </target>
  <target name="cleanPlugins"
          description="Remove installed plugins before testing to ensure they are correctly installed when run">
    <delete dir="${forrest.home}/build/plugins"/>
  </target>
  <target name="testseed"
	  depends="init, cleanPlugins"
          description="Called by test target - Does 'seed-sample' and generates the different types of sites (skinned, dispatcher...)">
    <for list="skinned,dispatcher" param="type">
      <sequential>
        <antcall target="testSiteType">
          <param name="test.site.type" value="@{type}"/>
        </antcall>
      </sequential>
    </for>
  </target>
  <target name="testseedBasic"
          depends="init, cleanPlugins"
          description="Called by test target - Does 'seed-basic' and generates the different types of sites (skinned, dispatcher...)">
    <for list="skinned,dispatcher" param="type">
      <sequential>
        <antcall target="testSiteBasicType">
          <param name="test.site.type" value="@{type}"/>
        </antcall>
      </sequential>
    </for>
  </target>
  <target name="testSiteType"
	  depends="testSeedSiteType,testReplacePluginsList"
          if="test.site.type"
	  description="Called by test target - Seeds, replaces list of required plugins and generates a new site for testing">

    <ant antfile="${forrest.core}/forrest.build.xml" target="site" inheritAll="false">
      <property name="forrest.home" value="${forrest.home}"/>
      <property name="project.home" value="${test.dir}"/>
    </ant>
  </target>
  <target name="testSiteBasicType"
	  depends="testSeedSiteBasicType,testReplacePluginsList"
          if="test.site.type"
	  description="Called by test target - Seeds, replaces list of required plugins and generates a new site for testing">
    <ant antfile="${forrest.core}/forrest.build.xml" target="site">
      <property name="forrest.home" value="${forrest.home}"/>
      <property name="project.home" value="${test.dir}"/>
    </ant>
  </target>
  <target name="testSeedSiteType"
	  description="Called by test target - Seeds a new site for testing and read the value of project.required.plugins if supplied">
    <echo level="info">
      -------------------------------------
      Testing seeded ${test.site.type} site ...
      -------------------------------------
    </echo>
    <echo/>
    <property name="test.dir" value="${build.dir}/test_${test.site.type}_site"/>
    <delete dir="${test.dir}"/>
    <mkdir dir="${test.dir}"/>
    <ant antfile="${forrest.core}/forrest.build.xml" target="seed">
      <property name="forrest.home" value="${forrest.home}"/>
      <property name="project.home" value="${test.dir}"/>
    </ant>
<!-- reading the value of project.required.plugins property if defined in forrest.properties.${test.site.type}.properties -->
    <property file="${test.dir}/forrest.properties.${test.site.type}.properties"/>
    <delete file="${test.dir}/forrest.properties.*.properties" failonerror="false">
      <fileset dir="${test.dir}" includes="forrest.properties.*.properties"/>
    </delete>
  </target>
  <target name="testSeedSiteBasicType">
    <echo level="info">
      -------------------------------------
      Testing seeded basic ${test.site.type} site ...
      -------------------------------------
    </echo>
    <echo/>
    <property name="test.dir" value="${build.dir}/test_${test.site.type}_site"/>
    <delete dir="${test.dir}"/>
    <mkdir dir="${test.dir}"/>
    <ant antfile="${forrest.core}/forrest.build.xml" target="seed-basic">
      <property name="forrest.home" value="${forrest.home}"/>
      <property name="project.home" value="${test.dir}"/>
    </ant>
<!-- reading the value of project.required.plugins property if defined in forrest.properties.${test.site.type}.properties -->
    <property file="${test.dir}/forrest.properties.${test.site.type}.properties"/>
    <delete file="${test.dir}/forrest.properties.*.properties" failonerror="false">
      <fileset dir="${test.dir}" includes="forrest.properties.*.properties"/>
    </delete>
  </target>
  <target name="testReplacePluginsList"
          if="project.required.plugins"
          description="Called by test target - Replaces the list of required plugins if supplied for testing a new site">
    <echo level="info" message="Replace the plugins list"/>
    <replaceregexp file="${test.dir}/forrest.properties"
      match="project.required.plugins=(.+)"
      replace="project.required.plugins=${project.required.plugins}"
      byline="true"/>
  </target>
<!-- ==================================================
       Target used by Gump for the main "forrest" project.
       Our gump descriptor also has other projects for other aspects
       of forrest build:
       https://svn.apache.org/repos/asf/gump/metadata/project/forrest.xml
       ================================================== -->
  <target  name="gump" description="Target used by Gump: forrest">
    <antcall target="jar"/>
  </target>
<!-- Target used by Gump to deploy current versions of some plugins -->
  <target name="gump-plugins" depends="init"
      description="Target used by Gump: forrest-test-plugins">
    <ant antfile="${forrest.home}/plugins/org.apache.forrest.plugin.input.dtdx/build.xml" target="local-deploy">
      <property name="basedir" location="${forrest.home}/plugins/org.apache.forrest.plugin.input.dtdx"/>
    </ant>
    <ant antfile="${forrest.home}/plugins/org.apache.forrest.plugin.output.pdf/build.xml" target="local-deploy">
      <property name="basedir" location="${forrest.home}/plugins/org.apache.forrest.plugin.output.pdf"/>
    </ant>
  </target>
<!-- Target used by Gump to run the test with some other modifications -->
  <target name="gump-forrest-test" depends="init"
      description="Target used by Gump: forrest-test">
    <echo level="info">Doing pre-run configuration:</echo>
    <echo level="info">Add a Cocoon cli.xconf and exclude any problem docs.</echo>
    <copy overwrite="true"
        file="${forrest.home}/main/webapp/WEB-INF/cli.xconf"
        todir="${forrest.home}/main/fresh-site/src/documentation/conf/"/>
    <replaceregexp file="${forrest.home}/main/fresh-site/src/documentation/conf/cli.xconf"
        match="&lt;/cocoon>"
        replace="&lt;exclude pattern='**linking.pdf'/>&lt;exclude pattern='**custom.html'/>&lt;/cocoon>"/>
    <replaceregexp file="${forrest.home}/main/fresh-site/forrest.properties"
        match="^# layout properties$"
        replace="project.configfile=${project.home}/src/documentation/conf/cli.xconf"
        byline="true"/>
<!--
    <echo level="info">Raise verbosity of xml catalogs</echo>
    <replaceregexp file="${forrest.home}/main/fresh-site/src/documentation/classes/CatalogManager.properties"
        match="verbosity=1$"
        replace="verbosity=10"
        byline="true"/>
    <replaceregexp file="${forrest.home}/main/webapp/WEB-INF/properties/core.properties"
        match="org.apache.xml.resolver.verbosity=0$"
        replace="org.apache.xml.resolver.verbosity=10"
        byline="true"/>
-->
    <antcall target="validate-config"/>
    <antcall target="testSiteType">
      <param name="test.site.type" value="skinned"/>
    </antcall>
    <echo level="info">Doing post-run configuration:</echo>
    <delete file="${forrest.home}/main/fresh-site/src/documentation/conf/cli.xconf"/>
    <replace file="${forrest.home}/main/fresh-site/forrest.properties"
        token="project.configfile=${project.home}/src/documentation/conf/cli.xconf"
        value="# layout properties"/>
<!--
    <echo level="info">Reset verbosity of xml catalogs</echo>
    <replaceregexp file="${forrest.home}/main/fresh-site/src/documentation/classes/CatalogManager.properties"
        match="verbosity=10$"
        replace="verbosity=1"
        byline="true"/>
    <replaceregexp file="${forrest.home}/main/webapp/WEB-INF/properties/core.properties"
        match="org.apache.xml.resolver.verbosity=10$"
        replace="org.apache.xml.resolver.verbosity=0"
        byline="true"/>
-->
  </target>
<!-- Target used by Gump to run RAT on Forrest sources -->
  <target name="gump-rat" depends="init"
      description="Target used by Gump: forrest-rat">
    <typedef resource="org/apache/rat/anttasks/antlib.xml"
        uri="antlib:org.apache.rat.anttasks"/>
    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
      <fileset dir="${forrest.home}">
        <excludesfile name="${forrest.home}/etc/rat-avoid.txt"/>
      </fileset>
    </rat:report>
  </target>
<!-- =================================================================== -->
<!-- Compile Cocoon java classes                                         -->
<!-- =================================================================== -->
  <target name="compile" depends="init">
    <mkdir dir="${build.classes}"/>
    <javac srcdir=   "${java.dir}"
      destdir=       "${build.classes}"
      source=        "${build.compiler.vm}"
      target=        "${build.compiler.vm}"
      debug=         "${build.compiler.debug}"
      optimize=      "${build.compiler.optimize}"
      deprecation=   "${build.compiler.deprecation}"
      nowarn=        "${build.compiler.nowarn}"
      classpathref=  "classpath"></javac>
  </target>
<!-- =================================================================== -->
<!-- Jar Cocoon classes                                                  -->
<!-- =================================================================== -->
  <target name="jar" depends="init, compile">
    <jar destfile="${build.dir}/xml-forrest.jar">
      <fileset dir="${build.classes}"/>
      <fileset file="${forrest.core}/webapp/WEB-INF/ehcache.xml"/>
      <fileset file="${forrest.home}/LICENSE.txt"/>
      <fileset file="${forrest.home}/NOTICE.txt"/>
      <manifest>
        <section name="org/apache/forrest/">
          <attribute name="Comment" value="Support classes for Apache Forrest"/>
          <attribute name="Implementation-Title" value="org.apache.forrest"/>
          <attribute name="Implementation-Version" value="${forrest.version} ${TODAY}"/>
          <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
          <attribute name="Implementation-URL" value="http://forrest.apache.org/"/>
        </section>
        <section name="org/apache/cocoon/">
          <attribute name="Comment" value="Support classes for Apache Forrest"/>
          <attribute name="Implementation-Title" value="org.apache.cocoon"/>
          <attribute name="Implementation-Version" value="${forrest.version} ${TODAY}"/>
          <attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
          <attribute name="Implementation-URL" value="http://forrest.apache.org/"/>
        </section>
      </manifest>
    </jar>
    <echo level="info">
  *-----------------------------------------------------------------
  | Installation notice 
  *-----------------------------------------------------------------
  | You have now built the ${forrest.version} version of Forrest.
  | Please set the environment variable FORREST_HOME to point to
  |  ${forrest.home}
  | It is recommended to add
  |    unix: $FORREST_HOME/bin: to your $PATH
  |    win: %FORREST_HOME%\bin; to your %PATH%
  | Then do 'forrest -projecthelp' to list options for the 'forrest' command
  | More help at http://forrest.apache.org/
  *-----------------------------------------------------------------
    </echo>
  </target>
<!-- =================================================================== -->
<!-- Clean build, that is clean before build                             -->
<!-- =================================================================== -->
  <target name="clean-build" depends="clean, jar" description="Clean build, that is clean before build..." />
<!-- =================================================================== -->
<!-- Generate DTDs with entities expanded                                -->
<!-- =================================================================== -->
  <target name='expand-dtd' depends="init"
     description="Generates '-full' DTDs, with all entity refs expanded, for use with catalog-ignorant editors like IDEA">
    <taskdef name="dtd2xml" classpathref="classpath" classname="org.cyberneko.dtd.anttasks.DTD2XML"/>
    <property name="dtdx.dir" location="${build.dir}/tmp/dtdx"/>
    <mkdir dir="${dtdx.dir}"/>
<!-- Generate an intermediate XML representation of each DTD -->
    <dtd2xml classpathref="classpath" outputDir="${dtdx.dir}" preserveDirs="yes" extension=".dtdx">
      <fileset dir="${forrest.core}/webapp/resources/schema/dtd">
        <include name="changes-v12.dtd"/>
        <include name="changes-v13.dtd"/>
        <include name="document-v11.dtd"/>
        <include name="document-v12.dtd"/>
        <include name="document-v13.dtd"/>
        <include name="faq-v12.dtd"/>
        <include name="faq-v13.dtd"/>
        <include name="howto-v12.dtd"/>
        <include name="howto-v13.dtd"/>
        <include name="todo-v12.dtd"/>
        <include name="todo-v13.dtd"/>
        <include name="v20/document-v20.dtd"/>
        <include name="v20/changes-v20.dtd"/>
        <include name="v20/faq-v20.dtd"/>
        <include name="v20/howto-v20.dtd"/>
        <include name="v20/todo-v20.dtd"/>
      </fileset>
    </dtd2xml>
<!-- Now transform the intermediate format back to the regular DTD format -->
<!-- Note that we could also transform to XSD or RNG -->
    <xslt basedir="${dtdx.dir}"
		destdir="${dist-shbat.dir}/webapp/resources/schema/dtd"
		extension="-full.dtd"
    style="${forrest.home}/tools/dtdconverters/dtdx2dtd.xsl">
      <include name="*.dtdx"/>
      <include name="v20a/*.dtdx"/>
    </xslt>
  </target>
<!-- =================================================================== -->
<!-- Use Apache Ant to generate a patch file                             -->
<!-- =================================================================== -->
  <target name="patch" depends="init">
<!-- Do not advertise this capability. May need to be removed.
     It makes a messy patch when they have other pending changes.
        description="Create a patch from your working copy, ready for contribution">
-->
    <ant antfile="${forrest.home}/tools/targets/patch.xml" target="patchpackage"/>
  </target>
</project>
