<?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.
-->
<!DOCTYPE project PUBLIC "-//Ant//Project 1.5//EN" "ant.dtd">

<!--
    POI Build System.  Written by:

        Glen Stampoultzis   glens at apache.org

    Modified by:

        Rainer Klute        klute@rainer-klute.de

    This build was tested with ant 1.6.2 although it will probably work with
    other versions.  The following jar files should be available on the 
    classpath when running ant:

    LIBRARY         LOCATION
    =======         ========
    junit(3.8+)     http://www.ibiblio.org/maven/junit/jars/
    xerces          http://www.ibiblio.org/maven/xerces/jars/
    jdepend         http://www.ibiblio.org/maven/jdepend/jars/
    xalan           http://www.ibiblio.org/maven/xalan/jars/

    The ant jar "optional.jar" should also be available otherwise the
    build will fail.

    To build the documentation you will need to install forrest and set
    the FORREST_HOME environment variable.  Forrest 0.5.1 required.

    You will need JDK 1.5 or newer to build much of POI. If all you want
    is the core OLE2 support, then you only need JDK 1.4

    Some people may find the tests hang when run through Ant. If this
    happens to you, try giving Ant some more memory when you run it, eg:
          ANT_OPTS="-Xmx1024m -XX:MaxPermSize=256m" ant test


    TO BE COMPLETED:

    Convert book.xml files to a sitemap.

 -->
<project name="POI Build" default="help" basedir=".">

  <description>
    The POI project Ant build.
  </description>

  <property environment="env"/>

  <property name="repository" value="http://www.ibiblio.org/maven"/>
  <property name="forrest.home" value="${env.FORREST_HOME}"/>

  <!-- Main: -->
  <property name="main.resource1.dir" value="src/resources/main"/>
  <property name="main.src" location="src/java"/>
  <property name="main.src.test" location="src/testcases"/>
  <property name="main.documentation" value="src/documentation"/>
  <property name="main.output.dir" location="build/classes"/>
  <property name="main14.output.dir" location="build/classes-jdk14"/>
  <property name="main.output.test.dir" location="build/test-classes"/>
  <property name="main.lib" location="lib"/>
  <property name="ooxml.lib" location="ooxml-lib"/>
  <property name="main.reports.test" location="build/test-results"/>
  <property name="main.jar1.dir" location="${main.lib}/commons-logging-1.1.jar"/>
  <property name="main.jar1.url" value="${repository}/commons-logging/jars/commons-logging-1.1.jar"/>
  <property name="main.jar2.dir" location="${main.lib}/log4j-1.2.13.jar"/>
  <property name="main.jar2.url" value="${repository}/log4j/jars/log4j-1.2.13.jar"/>
  <property name="main.testokfile" location="build/main-testokfile.txt"/>

  <property name="junit.jar1.dir" location="${main.lib}/junit-3.8.1.jar"/>
  <property name="junit.jar1.url" value="${repository}/junit/jars/junit-3.8.1.jar"/>

  <!-- Scratchpad: -->
  <property name="scratchpad.resource1.dir" value="src/resources/scratchpad"/>
  <property name="scratchpad.src" location="src/scratchpad/src"/>
  <property name="scratchpad.src.test" location="src/scratchpad/testcases"/>
  <property name="scratchpad.lib" location="src/scratchpad/lib"/>
  <property name="scratchpad.reports.test" location="build/scratchpad-test-results"/>
  <property name="scratchpad.output.dir" location="build/scratchpad-classes"/>
  <property name="scratchpad.output.test.dir" location="build/scratchpad-test-classes"/>
  <property name="scratchpad.testokfile" location="build/scratchpad-testokfile.txt"/>

  <!-- Contributed software: -->
  <property name="contrib.src" location="src/contrib/src"/>
  <property name="contrib.src.test" location="src/contrib/testcases"/>
  <property name="contrib.lib" location="src/contrib/lib"/>
  <property name="contrib.reports.test" location="build/contrib-test-results"/>
  <property name="contrib.output.dir" location="build/contrib-classes"/>
  <property name="contrib.output.test.dir" location="build/contrib-test-classes"/>
  <property name="contrib.testokfile" location="build/contrib-testokfile.txt"/>

  <!-- Examples: -->
  <property name="examples.src" location="src/examples/src"/>
  <property name="examples.output.dir" location="build/examples-classes"/>

  <!-- Common interfaces for ole2 and ooxml classes -->
  <property name="interfaces.jdk14.src" location="src/ooxml/interfaces-jdk14"/>
  <property name="interfaces.jdk15.src" location="src/ooxml/interfaces-jdk15"/>

  <!-- Experimental OOXML support: -->
  <property name="ooxml.src" location="src/ooxml/java"/>
  <property name="ooxml.src.test" location="src/ooxml/testcases"/>
  <property name="ooxml.reports.test" location="build/ooxml-test-results"/>
  <property name="ooxml.output.dir" location="build/ooxml-classes"/>
  <property name="ooxml.output.test.dir" location="build/ooxml-test-classes"/>
  <property name="ooxml.testokfile" location="build/ooxml-testokfile.txt"/>

  <property name="ooxml.jar1.dir" location="${ooxml.lib}/dom4j-1.6.1.jar"/>
  <property name="ooxml.jar1.url" value="${repository}/dom4j/jars/dom4j-1.6.1.jar"/>
  <property name="ooxml.jar2.dir" location="${ooxml.lib}/jaxen-1.1.jar"/>
  <property name="ooxml.jar2.url" value="${repository}/jaxen/jars/jaxen-1.1.jar"/>
  <property name="ooxml.jar3.dir" location="${ooxml.lib}/xercesImpl-2.8.1.jar"/>
  <property name="ooxml.jar3.url" value="${repository}/xerces/jars/xercesImpl-2.8.1.jar"/>
  <property name="ooxml.jar4.dir" location="${ooxml.lib}/xmlbeans-2.3.0.jar"/>
  <property name="ooxml.jar4.url" value="${repository}/org.apache.xmlbeans/jars/xmlbeans-2.3.0.jar"/>
  <property name="ooxml.jar5.dir" location="${ooxml.lib}/jsr173_1.0_api.jar"/>
  <property name="ooxml.jar5.url" value="${repository}/xmlbeans/jars/jsr173_1.0_api.jar"/>
  <!-- No official release of openxml4j yet -->
  <property name="ooxml.jar6.dir" location="${ooxml.lib}/openxml4j-bin-beta-080728.jar"/>
  <property name="ooxml.jar6.url" value="http://people.apache.org/~nick/openxml4j-bin-beta-080728.jar"/>

  <!-- See http://www.ecma-international.org/publications/standards/Ecma-376.htm -->
  <!-- "Copy these file(s), free of charge" -->
  <property name="ooxml.xsds.ozip" location="${ooxml.lib}/OfficeOpenXML-Part4.zip"/>
  <property name="ooxml.xsds.izip" location="${ooxml.lib}/OfficeOpenXML-XMLSchema.zip"/>
  <property name="ooxml.xsds.url" value="http://www.ecma-international.org/publications/files/ECMA-ST/Office%20Open%20XML%20Part%204%20(DOCX).zip" />
  <property name="ooxml.xsds.jar" location="${ooxml.lib}/ooxml-schemas.jar"/>

  <property name="build.site" location="build/tmp/site/build/site"/>
  <property name="build.site.src" location="build/tmp/site"/>
  <property name="junit.report.dir" location="${build.site}/junit"/>
  <property name="jdepend.report.dir" location="${build.site}/jdepend"/>
  <property name="jdepend.report.out.dir" location="${build.site.src}/src/documentation/content/jdepend"/>
  <property name="apidocs.report.dir" location="${build.site}/apidocs"/>
  <property name="changelog.file" location="${build.site}/changelog.html"/>
  <property name="dist.dir" location="build/dist"/>
  <property name="mavendist.dir" location="build/maven-dist"/>
  <property name="mavendist.poi.dir" location="build/maven-dist/poi"/>
  <property name="mavendist.oap.dir" location="build/maven-dist/org.apache.poi"/>
  <property name="jar.name" value="poi"/>
  <property name="version.id" value="3.5-beta3"/>
  <property name="halt.on.test.failure" value="true"/>

  <property name="jdk.version.source" value="1.5"
    description="JDK version of source code"/>
  <property name="jdk.version.class" value="1.5"
    description="JDK version of generated class files"/>  
  <property name="jdk14.version.source" value="1.3"
    description="JDK version of source code, when built on JDK 1.4"/>
  <property name="jdk14.version.class" value="1.3"
    description="JDK version of generated class files, when built on JDK 1.4"/>  
 

	<!-- normally use the jdk 1.5 stuff -->
    <path id="main.classpath">
        <pathelement location="${main.jar1.dir}"/>
        <pathelement location="${main.jar2.dir}"/>
        <pathelement location="${main.resource1.dir}"/>
    </path>

    <path id="main14.classpath">
        <pathelement location="${main.jar1.dir}"/>
        <pathelement location="${main.jar2.dir}"/>
        <pathelement location="${main.resource1.dir}"/>
    </path>

    <path id="scratchpad.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${scratchpad.resource1.dir}"/>
    </path>

    <path id="contrib.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${main.output.test.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
        <pathelement location="${scratchpad.output.test.dir}"/>
        <pathelement location="${contrib.output.dir}"/>
        <pathelement location="${contrib.output.test.dir}"/>
    </path>

    <path id="ooxml.classpath">
        <path refid="main.classpath"/>
        <path refid="scratchpad.classpath"/>
        <pathelement location="${scratchpad.output.dir}"/>
        <fileset dir="${ooxml.lib}">
			<include name="*.jar" />
		</fileset>
    </path>

    <path id="test.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${main.output.test.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
    </path>

    <path id="test.ooxml.classpath">
        <path refid="ooxml.classpath"/>
        <pathelement location="${ooxml.output.dir}"/>
        <pathelement location="${ooxml.output.test.dir}"/>
        <pathelement location="${main.output.test.dir}"/> <!-- ooxml tests use some utilities from main tests -->
        <pathelement location="${junit.jar1.dir}"/>
    </path>


    <path id="examples.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
    </path>



  <!-- Prints POI's Ant usage help -->
  <target name="help" description="Prints POI's Ant usage help">
    <echo>
      - Execute "ant -projecthelp" to view a listing of the main build
        targets.
      - Execute "ant help-properties" to view a listing of some properties
        controlling the build process.
    </echo>
  </target>



  <target name="help-properties"
    description="Prints a listing of build controlling properties">
    <echo>
      The following properties control the build process:

      -Ddisconnected="true": Do not execute any targets that require an online
          connection to the Internet.
      -Dtestcase=org.apache.poi.xxx.xxx : for the single-test target, specify
	      the test to run
      -Dfilename=xxxx.xls : for the command line task targets, specify the
          file to run against

      WARNING: This list is not exhaustive.
    </echo>
  </target>



    <target name="with.clover" if="clover.present">
        <taskdef resource="clovertasks"/>
        <clover-setup initString="mycoverage.db"/>
    </target>

    <target name="clover.html" depends="with.clover" if="clover.present">
        <echo>Generating clover report</echo>
       <clover-report>
          <current outfile="build/tmp/site/build/site/clover_html">
             <format type="html"/>
          </current>
       </clover-report>
    </target>

    <target name="init" depends="check-jars,fetch-jars">

        <tstamp>
          <format property="tstamp.year" pattern="yyyy"/>
        </tstamp>

        <available resource="clovertasks" property="clover.present"/>
        <antcall target="with.clover"/>
        
        <mkdir dir="build"/>
        <mkdir dir="build/non-ant-classes"/>
        <mkdir dir="${main.output.dir}"/>
        <mkdir dir="${main14.output.dir}"/>
        <mkdir dir="${scratchpad.output.dir}"/>
        <mkdir dir="${contrib.output.dir}"/>
        <mkdir dir="${examples.output.dir}"/>
        <mkdir dir="${ooxml.output.dir}"/>
        <mkdir dir="${main.output.test.dir}"/>
        <mkdir dir="${contrib.output.test.dir}"/>
        <mkdir dir="${scratchpad.output.test.dir}"/>
        <mkdir dir="${ooxml.output.test.dir}"/>
        <mkdir dir="${main.reports.test}"/>
        <mkdir dir="${scratchpad.reports.test}"/>
        <mkdir dir="${contrib.reports.test}"/>
        <mkdir dir="${ooxml.reports.test}"/>
        <mkdir dir="${junit.report.dir}"/>
        <mkdir dir="${jdepend.report.dir}"/>
        <mkdir dir="${jdepend.report.out.dir}"/>
        <mkdir dir="${apidocs.report.dir}"/>
        <mkdir dir="${dist.dir}"/>
        <mkdir dir="${build.site.src}/${main.documentation}"/>

        <mkdir dir="${mavendist.dir}"/>
        <mkdir dir="${mavendist.poi.dir}"/>
        <mkdir dir="${mavendist.poi.dir}/poms"/>
        <mkdir dir="${mavendist.oap.dir}"/>
        <mkdir dir="${mavendist.oap.dir}/jars"/>
        <mkdir dir="${mavendist.oap.dir}/poms"/>

        <copy todir="${build.site.src}/${main.documentation}">
            <fileset dir="${main.documentation}"/>
        </copy>
        <copy file="forrest.properties" tofile="${build.site.src}/forrest.properties"/>
    </target>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="check-jars">
        <condition property="jars.present">
            <or>
                <and>
                    <available file="${main.jar1.dir}"/>
                    <available file="${main.jar2.dir}"/>
                    <available file="${junit.jar1.dir}"/>
                    <available file="${ooxml.jar1.dir}"/>
                    <available file="${ooxml.jar2.dir}"/>
                    <available file="${ooxml.jar3.dir}"/>
                    <available file="${ooxml.jar4.dir}"/>
                    <available file="${ooxml.jar5.dir}"/>
                    <available file="${ooxml.jar6.dir}"/>
                </and>
                <isset property="disconnected"/>
            </or>
        </condition>
    </target>

    <target name="fetch-jars" unless="jars.present"
     description="Fetches needed JAR files from the Internet">
        <get src="${main.jar1.url}" dest="${main.jar1.dir}"/>
        <get src="${main.jar2.url}" dest="${main.jar2.dir}"/>
        <get src="${junit.jar1.url}" dest="${junit.jar1.dir}"/>

        <get src="${ooxml.jar1.url}" dest="${ooxml.jar1.dir}"/>
        <get src="${ooxml.jar2.url}" dest="${ooxml.jar2.dir}"/>
        <get src="${ooxml.jar3.url}" dest="${ooxml.jar3.dir}"/>
        <get src="${ooxml.jar4.url}" dest="${ooxml.jar4.dir}"/>
        <get src="${ooxml.jar5.url}" dest="${ooxml.jar5.dir}"/>
        <get src="${ooxml.jar6.url}" dest="${ooxml.jar6.dir}"/>
    </target>

	<target name="check-ooxml-xsds">
        <condition property="ooxml-xsds.present">
            <or>
                <and>
                    <available file="${ooxml.xsds.izip}"/>
                </and>
                <isset property="disconnected"/>
            </or>
        </condition>
	</target>
    <target name="fetch-ooxml-xsds" unless="ooxml-xsds.present"
     description="Fetches needed OOXML xsd files from the Internet">
        <get src="${ooxml.xsds.url}" dest="${ooxml.xsds.ozip}"/>
		<unzip src="${ooxml.xsds.ozip}" dest="${ooxml.lib}">
			<patternset>
				<include name="OfficeOpenXML-XMLSchema.zip" />
			</patternset>
		</unzip>
	</target>
	<target name="check-compiled-ooxml-xsds">
        <condition property="ooxml-compiled-xsds.present">
            <or>
                <and>
                    <available file="${ooxml.xsds.jar}"/>
                </and>
                <isset property="disconnected"/>
            </or>
        </condition>
	</target>
	<target name="compile-ooxml-xsds" unless="ooxml-compiled-xsds.present"
	 depends="check-jars,fetch-jars,check-ooxml-xsds,fetch-ooxml-xsds,check-compiled-ooxml-xsds"
	 description="Unpacks the OOXML xsd files, and compiles them into XmlBeans">
		<taskdef name="xmlbean"
			classname="org.apache.xmlbeans.impl.tool.XMLBean"
			classpath="${ooxml.jar2.dir}:${ooxml.jar3.dir}:${ooxml.jar4.dir}:${ooxml.jar4.dir}:${ooxml.jar5.dir}" />

		<unzip src="${ooxml.xsds.izip}" dest="build/ooxml-xsds/" />
		<!--
			schema="build/ooxml-xsds/"
			schema="build/ooxml-xsds/sml-workbook.xsd"
		-->
		<xmlbean
			schema="build/ooxml-xsds/"
			destfile="${ooxml.xsds.jar}"
			javasource="1.4"
			failonerror="true"
			fork="true"
			memoryMaximumSize="512m"
		>
			<classpath refid="ooxml.classpath"/>
		</xmlbean>
	</target>

  <target name="compile" depends="init, compile-main, compile-main-14, 
    compile-scratchpad, compile-contrib, compile-examples"
    description="Compiles the POI main classes, scratchpad, contrib, and examples"/>

  <target name="compile-main" depends="fail-unless-xslt-is-available">
    <copy todir="${main.output.dir}">
      <fileset dir="${main.resource1.dir}"/>
    </copy>
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${main.output.dir}" debug="on" fork="yes">
      <src path="${main.src}" />
      <src path="${interfaces.jdk15.src}" />
      <classpath refid="main.classpath"/>
    </javac>
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${main.output.test.dir}" debug="on"
      fork="yes" srcdir="${main.src.test}">
      <classpath>
        <path refid="main.classpath"/>
        <pathelement path="${main.output.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-main-14" depends="fail-unless-xslt-is-available">
    <copy todir="${main14.output.dir}">
      <fileset dir="${main.resource1.dir}"/>
    </copy>
    <javac target="${jdk14.version.class}" source="${jdk14.version.source}"
      failonerror="true" destdir="${main14.output.dir}" debug="on" fork="yes">
      <src path="${main.src}" />
      <src path="${interfaces.jdk14.src}" />
      <classpath refid="main.classpath"/>
    </javac>
  </target>

  <target name="compile-scratchpad" depends="init,compile-main">
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${scratchpad.output.dir}" debug="on"
      fork="yes" srcdir="${scratchpad.src}">
      <classpath refid="scratchpad.classpath"/>
    </javac>
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${scratchpad.output.test.dir}" debug="on"
      fork="yes" srcdir="${scratchpad.src.test}">
      <classpath>
        <path refid="scratchpad.classpath"/>
        <pathelement location="${main.output.test.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
    </javac>

	<!-- Copy HSLF Resources over -->
	<property name="hslf.data" value="org/apache/poi/hslf/data" />
	<mkdir dir="${scratchpad.output.dir}/${hslf.data}" />
	<copy todir="${scratchpad.output.dir}/${hslf.data}">
		<fileset dir="${scratchpad.src}/${hslf.data}">
			<include name="*.ppt" />
		</fileset>
	</copy>

	<!-- Copy HDGF Resources over -->
    <copy todir="${scratchpad.output.dir}">
      <fileset dir="${scratchpad.resource1.dir}"/>
    </copy>
  </target>

  <target name="compile-contrib" depends="init">
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${contrib.output.dir}" debug="on" fork="yes"
      srcdir="${contrib.src}">
      <classpath refid="contrib.classpath"/>
    </javac>
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${contrib.output.test.dir}" debug="on"
      fork="yes" srcdir="${contrib.src.test}">
      <classpath>
        <path refid="contrib.classpath"/>
        <pathelement path="${contrib.output.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-examples" depends="init,compile-ooxml">
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${examples.output.dir}" debug="on" fork="yes"
      srcdir="${examples.src}">
      <classpath>
        <path refid="examples.classpath"/>
        <path refid="ooxml.classpath"/>
        <pathelement path="${ooxml.output.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-ooxml" depends="init, check-ooxml-xsds, fetch-ooxml-xsds, compile-ooxml-xsds, compile-main">
	<!-- openxml4j requires java 1.5, so so must we, for now -->
    <javac target="1.5" source="1.5"
      destdir="${ooxml.output.dir}" debug="on" srcdir="${ooxml.src}">
      <classpath refid="ooxml.classpath"/>
    </javac>

    <javac target="1.5" source="1.5"
      failonerror="true" destdir="${ooxml.output.test.dir}" debug="on"
      fork="yes" srcdir="${ooxml.src.test}">
      <classpath>
        <path refid="ooxml.classpath"/>
        <pathelement path="${ooxml.output.dir}"/>
        <pathelement path="${main.output.test.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-version" depends="init"
        description="Compiles the version class">
	<!-- Generate the .java file -->
	<property name="version.java" value="${main.output.dir}/org/apache/poi/Version.java" />
	<delete file="${version.java}" />
	<copy 
		file="src/resources/version/Version.java.template"
		tofile="${version.java}">
		<filterset>
			<filter token="VERSION" value="${version.id}" />
			<filter token="DSTAMP" value="${DSTAMP}" />
		</filterset>
	</copy>

	<!-- Compile -->
    <javac target="${jdk.version.class}" source="${jdk.version.source}"
      failonerror="true" destdir="${main.output.dir}" debug="on" fork="yes"
      srcdir="${main.output.dir}" />
    <javac target="${jdk14.version.class}" source="${jdk14.version.source}"
      failonerror="true" destdir="${main14.output.dir}" debug="on" fork="yes"
      srcdir="${main.output.dir}" />

	<!-- Tidy up -->
	<delete file="${version.java}" />
  </target>

  <target name="test" depends="test-main,test-scratchpad,test-contrib"
    description="Tests main, contrib and scratchpad"/>

    <target name="-test-main-check">
        <uptodate property="main.test.notRequired" targetfile="${main.testokfile}">
            <srcfiles dir="${main.src}"/>
            <srcfiles dir="${main.src.test}"/>
            <srcfiles dir="${ooxml.src}"/>
        </uptodate>
    </target>

  <target name="test-main" unless="main.test.notRequired"
    depends="compile-main, -test-main-check, fail-unless-junit-is-available">
    <junit fork="no" printsummary="yes" haltonfailure="${halt.on.test.failure}"
      failureproperty="main.test.failed" showoutput="true">
      <classpath refid="test.classpath"/>
      <sysproperty key="HSSF.testdata.path"
        file="${main.src.test}/org/apache/poi/hssf/data"/> 
      <sysproperty key="HSLF.testdata.path"
        file="${main.src.test}/org/apache/poi/hslf/data"/> 
      <sysproperty key="HWPF.testdata.path"
        file="${main.src.test}/org/apache/poi/hwpf/data"/> 
      <sysproperty key="HPSF.testdata.path"
        file="${main.src.test}/org/apache/poi/hpsf/data"/> 
      <sysproperty key="POIFS.testdata.path"
        file="${main.src.test}/org/apache/poi/poifs/data"/> 
      <sysproperty key="DDF.testdata.path"
        file="${main.src.test}/org/apache/poi/ddf/data"/> 
      <sysproperty key="java.awt.headless" value="true"/>
      <formatter type="plain"/>
      <formatter type="xml"/>
      <batchtest todir="${main.reports.test}">
        <fileset dir="${main.src.test}">
          <include name="**/Test*.java"/>
          <exclude name="**/All*Tests.java"/>
          <exclude name="**/TestUnfixedBugs.java"/>
          <exclude name="**/TestcaseRecordInputStream.java"/>
        </fileset>
      </batchtest>
    </junit>
    <delete file="${main.testokfile}"/>
    <antcall target="-test-main-write-testfile"/>
  </target>

  <target name="test-fail" depends="compile-main,
    fail-unless-junit-is-available"
    description="run tests that are known to fail">
    <junit printsummary="yes" showoutput="true" filtertrace="no"
      haltonfailure="false">
      <classpath refid="test.classpath"/>
      <classpath>
        <path refid="scratchpad.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
        <pathelement location="${scratchpad.output.test.dir}"/>
        <pathelement location="${junit.jar1.dir}"/>
      </classpath>
      <sysproperty key="HSSF.testdata.path"
        file="${main.src.test}/org/apache/poi/hssf/data"/>
      <sysproperty key="HPSF.testdata.path"
        file="${main.src.test}/org/apache/poi/hpsf/data"/>
      <sysproperty key="HWPF.testdata.path"
        file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
      <sysproperty key="POIFS.testdata.path"
        file="${main.src.test}/org/apache/poi/poifs/data"/> 
      <sysproperty key="java.awt.headless" value="true"/>
      <formatter type="plain" usefile="no"/>
      <batchtest todir="${main.reports.test}">
        <fileset dir="${main.src.test}">
          <include name="**/TestEmptyDocument.java"/>
          <include name="**/TestUnfixedBugs.java"/>
        </fileset>
      </batchtest>
    </junit>
  </target>        



    <target name="single-test" depends="-test-property-check,compile-main" description="Runs a single test case specified with -Dtestcase=classname">
        <junit printsummary="yes" showoutput="true" filtertrace="no" haltonfailure="false" >
            <classpath refid="test.classpath"/>
                 <classpath>
                                <path refid="test.classpath"/>
                                <pathelement location="${main.output.dir}"/>
                                <pathelement location="${scratchpad.output.dir}"/>
                                <pathelement location="${scratchpad.output.test.dir}"/>
                                <pathelement location="${junit.jar1.dir}"/>
                            </classpath>
            <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" file="${main.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="HSLF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hslf/data"/>
            <sysproperty key="HWPF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
            <sysproperty key="HSMF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hsmf/data"/>
            <sysproperty key="HDGF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdgf/data"/>
            <sysproperty key="POIFS.testdata.path" file="${main.src.test}/org/apache/poi/poifs/data"/> 
            <sysproperty key="OOXML.testdata.path" file="${ooxml.src.test}/org/apache/poi/ooxml/data"/> 
                <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain" usefile="no"/>
            <formatter type="xml"/>
            <test name="${testcase}"/>
        </junit>
    </target>

    <target name="debug-test" depends="-test-property-check,compile-main" description="Runs a single test case specified with -Dtestcase=classname with remote debug options turned on." >
	    <echo>Waiting for debugger on port 5001</echo>    
        <junit printsummary="no" showoutput="true" filtertrace="no" fork="yes" haltonfailure="${halt.on.test.failure}" failureproperty="main.test.failed">
            <jvmarg value="-Xdebug"/>
            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=y"/>
            <sysproperty key="java.compiler" value="NONE"/>
            <classpath refid="test.classpath"/>
            <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" file="${main.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="POIFS.testdata.path" file="${main.src.test}/org/apache/poi/poifs/data"/> 
            <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain" usefile="no"/>
            <test name="${testcase}"/>
        </junit>
    </target>

    <target name="-test-property-check" unless="testcase">
        <echo message="Please use -Dtestcase=org.your.testcase to run a single test"/>
        <fail/>
    </target>

    <target name="-test-main-write-testfile" unless="main.test.failed">
        <echo file="${main.testokfile}" append="false" message="testok"/>
    </target>

    <target name="-test-scratchpad-check">
        <uptodate property="scratchpad.test.notRequired" targetfile="${scratchpad.testokfile}">
            <srcfiles dir="${scratchpad.src}"/>
            <srcfiles dir="${scratchpad.src.test}"/>
        </uptodate>
    </target>

    <target name="test-scratchpad" depends="compile-main,compile-scratchpad,-test-scratchpad-check" unless="scratchpad.test.notRequired">
        <junit printsummary="yes" fork="no" haltonfailure="${halt.on.test.failure}" failureproperty="scratchpad.test.failed">
            <classpath>
                <path refid="scratchpad.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${main.output.test.dir}"/>
                <pathelement location="${scratchpad.output.dir}"/>
                <pathelement location="${scratchpad.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
            <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="HDF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdf/data"/>
            <sysproperty key="HWPF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
            <sysproperty key="HSLF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hslf/data"/>
            <sysproperty key="HSMF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hsmf/data"/>
            <sysproperty key="HDGF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdgf/data"/>
            <sysproperty key="POIFS.testdata.path" file="${main.src.test}/org/apache/poi/poifs/data"/> 
            <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain"/>
            <formatter type="xml"/>
            <batchtest todir="${scratchpad.reports.test}">
                <fileset dir="${scratchpad.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/AllTests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${scratchpad.testokfile}"/>
        <antcall target="-test-scratchpad-write-testfile"/>
    </target>

    <target name="-test-scratchpad-write-testfile" unless="scratchpad.test.failed">
        <echo file="${scratchpad.testokfile}" append="false" message="testok"/>
    </target>

	<target name="single-scratchpad-test" depends="compile-scratchpad,-test-property-check" description="Runs a single test case specified with -Dtestcase=classname">
	        <junit printsummary="yes" showoutput="true" filtertrace="no" haltonfailure="false" >
	        <classpath refid="test.classpath"/>
	        <classpath>
	            <path refid="scratchpad.classpath"/>
	            <pathelement location="${main.output.dir}"/>
	            <pathelement location="${scratchpad.output.dir}"/>
	            <pathelement location="${scratchpad.output.test.dir}"/>
	            <pathelement location="${junit.jar1.dir}"/>
	        </classpath>
                <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
	            <sysproperty key="HPSF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hpsf/data"/>
	            <sysproperty key="HWPF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
                <sysproperty key="HSLF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hslf/data"/>
                <sysproperty key="HSMF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hsmf/data"/>
                <sysproperty key="HDGF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdgf/data"/>
                <sysproperty key="POIFS.testdata.path" file="${main.src.test}/org/apache/poi/poifs/data"/> 
	            <sysproperty key="java.awt.headless" value="true"/>
	            <sysproperty key="java.awt.headless" value="true"/>
	            <formatter type="plain" usefile="no"/>
	            <formatter type="xml"/>
	            <test name="${testcase}"/>
	        </junit>
	    </target>
	
    <target name="-test-contrib-check">
        <uptodate property="contrib.test.notRequired" targetfile="${contrib.testokfile}">
            <srcfiles dir="${contrib.src}"/>
            <srcfiles dir="${contrib.src.test}"/>
        </uptodate>
    </target>

    <target name="test-contrib" depends="compile-main,compile-contrib,-test-contrib-check" unless="contrib.test.notRequired">
        <junit printsummary="yes" fork="no" haltonfailure="${halt.on.test.failure}" failureproperty="contrib.test.failed">
            <classpath>
                <path refid="contrib.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${contrib.output.dir}"/>
                <pathelement location="${contrib.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
            <sysproperty key="HSSF.testdata.path" file="${contrib.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" file="${contrib.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain"/>
            <formatter type="xml"/>
            <batchtest todir="${contrib.reports.test}">
                <fileset dir="${contrib.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/AllTests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${contrib.testokfile}"/>
        <antcall target="-test-contrib-write-testfile"/>
    </target>

    <target name="-test-contrib-write-testfile" unless="contrib.test.failed">
        <echo file="${contrib.testokfile}" append="false" message="testok"/>
    </target>

    <target name="-test-ooxml-check">
        <uptodate property="ooxml.test.notRequired" targetfile="${ooxml.testokfile}">
            <srcfiles dir="${ooxml.src}"/>
            <srcfiles dir="${ooxml.src.test}"/>
        </uptodate>
    </target>

    <target name="test-ooxml" depends="compile-main,compile-ooxml,-test-ooxml-check" unless="ooxml.test.notRequired">
        <junit printsummary="yes" fork="no" haltonfailure="${halt.on.test.failure}" failureproperty="ooxml.test.failed">
            <classpath refid="test.ooxml.classpath" />
            <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HWPF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
            <sysproperty key="HSLF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hslf/data"/>
            <sysproperty key="HDGF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdgf/data"/>
            <sysproperty key="OOXML.testdata.path" file="${ooxml.src.test}/org/apache/poi/ooxml/data"/> 
            <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain"/>
            <formatter type="xml"/>
            <batchtest todir="${ooxml.reports.test}">
                <fileset dir="${ooxml.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/All*Tests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${ooxml.testokfile}"/>
        <antcall target="-test-ooxml-write-testfile"/>
    </target>

    <target name="-test-ooxml-write-testfile" unless="ooxml.test.failed">
        <echo file="${ooxml.testokfile}" append="false" message="testok"/>
    </target>

    <target name="single-test-ooxml" depends="-test-property-check,compile-main,compile-ooxml" description="Runs a single ooxml test case specified with -Dtestcase=classname">
        <junit printsummary="yes" showoutput="true" filtertrace="no" haltonfailure="false" >
            <classpath>
                <path refid="ooxml.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${ooxml.output.dir}"/>
                <pathelement location="${ooxml.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
            <sysproperty key="HSSF.testdata.path" file="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" file="${main.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="HSLF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hslf/data"/>
            <sysproperty key="HWPF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
            <sysproperty key="HSMF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hsmf/data"/>
            <sysproperty key="HDGF.testdata.path" file="${scratchpad.src.test}/org/apache/poi/hdgf/data"/>
            <sysproperty key="java.awt.headless" value="true"/>
            <formatter type="plain" usefile="no"/>
            <formatter type="xml"/>
            <test name="${testcase}"/>
        </junit>
    </target>

    <target name="-check-docs">
        <uptodate property="main.docs.notRequired" targetfile="${build.site}/index.html">
            <srcfiles dir="${build.site.src}"/>
        </uptodate>
    </target>

    <target name="-check-forrest-installed" unless="env.FORREST_HOME">
        <echo>Please install Apache Forrest (see
&lt;http://xml.apache.org/forrest/index.html&gt;) and set the
FORREST_HOME environment variable!</echo>
        <fail message="Apache Forrest is not installed."/>
    </target>

    <!--    <target name="check-docs">-->
    <!--        <uptodate property="main.docs.notRequired" targetfile="${build.site}/index.html" >-->
    <!--            <srcfiles dir= "${build.site.src}"/>-->
    <!--        </uptodate>-->
    <!--    </target>-->

    <target name="docs" depends="init, -check-forrest-installed, -check-docs"
      unless="main.docs.notRequired" description="Builds the POI website">

        <mkdir dir="${build.site.src}/src/documentation/content/apidocs"/>
        <copy todir="${build.site.src}/src/documentation/content/apidocs">
            <fileset dir="${apidocs.report.dir}"/>
        </copy>
        <copy
          tofile="${build.site.src}/src/documentation/content/jdepend.ehtml"
          file="${jdepend.report.dir}/index.html" failonerror="false"/>
        <mkdir dir="${build.site.src}/src/documentation/content/junit"/>
        <copy todir="${build.site.src}/src/documentation/content/junit">
            <fileset dir="${junit.report.dir}"/>
        </copy>

        <move
          file="${build.site.src}/src/documentation/content/xdocs/status.xml"
          tofile="${build.site.src}/status.xml"/>

        <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site">
            <property name="project.home" location="${build.site.src}"/>
        </ant>

        <echo>Broken links:</echo>
        <echo file="${build.site}/../tmp/brokenlinks.txt"/>

        <touch>
            <fileset dir="${build.site}"/>
        </touch>
    </target>

    <!-- Checks whether reports are required to be run.  If nothing has changed then they dont. -->
    <target name="-check-reports">
        <condition property="reports.notRequired">
            <and>
                <equals arg1="${main.test.notRequired}" arg2="true"/>
                <equals arg1="${scratchpad.test.notRequired}" arg2="true"/>
                <equals arg1="${contrib.test.notRequired}" arg2="true"/>
            </and>
        </condition>
    </target>



  <!-- Generates a log of the latest changes in the CVS repository. -->
  <target name="cvschangelog" unless="disconnected"
    depends="fail-unless-xslt-is-available"
    description="Generates a CVS change log report">
    <antcall target="cvs-rsh-warning"/>
    <cvschangelog destfile="${changelog.file}" daysinpast="30"/>

    <style in="${changelog.file}"
      out="${build.site.src}/src/documentation/content/changelog.html"
      style="changelog.xsl">
      <param name="title"  expression="POI Change Log"/>
      <param name="module" expression="jakarta-poi"/>
      <param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/>
    </style>
  </target>

  <target name="cvs-rsh-warning" unless="env.CVS_RSH">
    <echo>
      WARNING: The environment variable CVS_RSH is not set. If you cannot
      access the CVS repository this could be one of the reasons for the
      failure.
    </echo>
  </target>



  <!-- Creates reports and API documentation -->
  <target name="reports" unless="reports.notRequired" depends="-check-reports,
    fail-unless-xslt-is-available, fail-unless-junit-is-available,
    fail-unless-jdepend-is-available, test-ignore-failures, junitreport,
    jdepend, cvschangelog, javadocs, clover.html"
    description="Creates various reports and the API documentation">
  </target>



  <!-- Runs all JUnit tests without aborting if one of the tests fails. -->
  <target name="test-ignore-failures" depends="init">
    <antcall target="test">
      <param name="halt.on.test.failure" value="false"/>
    </antcall>
  </target>



  <!-- Produces a report of the JUnit test results -->
  <target name="junitreport"
    depends="fail-unless-xslt-is-available, test-ignore-failures"
    description="Produces a report of the JUnit test results">
    <junitreport todir="${junit.report.dir}">
      <fileset dir="${main.reports.test}">
        <include name="TEST-*.xml"/>
      </fileset>
      <fileset dir="${scratchpad.reports.test}">
        <include name="TEST-*.xml"/>
      </fileset>
      <fileset dir="${contrib.reports.test}">
        <include name="TEST-*.xml"/>
      </fileset>
      <report format="frames" todir="${junit.report.dir}"/>
    </junitreport>
  </target>



  <!-- Generates the API documentation. -->
  <target name="javadocs" depends="init, warn-unless-junit-is-available,
    warn-unless-xslt-is-available"
    description="Generates the API documentation">
    <javadoc verbose="false" author="true" destdir="${apidocs.report.dir}"
      windowtitle="POI API Documentation" use="true" version="true">

      <packageset dir="${main.src}" defaultexcludes="yes">
        <include name="org/apache/poi/**"/>
      </packageset>
      <packageset dir="${scratchpad.src}" defaultexcludes="yes">
        <include name="org/apache/poi/**"/>
        <exclude name="org/apache/poi/hdf/**"/>
      </packageset>
      <packageset dir="${contrib.src}" defaultexcludes="yes">
        <include name="org/apache/poi/**"/>
      </packageset>
      <packageset dir="${examples.src}" defaultexcludes="yes">
        <include name="org/apache/poi/**"/>
      </packageset>

      <classpath id="javadoc.classpath">
        <path refid="main.classpath"/>
        <path refid="scratchpad.classpath"/>
        <path refid="contrib.classpath"/>
        <path refid="examples.classpath"/>
        <path path="${env.CLASSPATH}"/>
      </classpath>

      <doctitle><![CDATA[<h1>POI API Documentation</h1>]]></doctitle>
      <bottom>
        <![CDATA[<i>Copyright ${tstamp.year} The Apache Software Foundation or
        its licensors, as applicable.</i>]]>
      </bottom>
      <group>
        <title>DDF - Dreadful Drawing Format</title>
        <package name="org.apache.poi.ddf*"/>
      </group>
      <group>
        <title>HPSF - Horrible Property Set Format</title>
        <package name="org.apache.poi.hpsf*"/>
      </group>
      <group>
        <title>HSSF - Horrible Spreadsheet Format</title>
        <package name="org.apache.poi.hssf*"/>
      </group>
      <group>
        <title>HWPF - Horrible Word Processor Format</title>
        <package name="org.apache.poi.hwpf*"/>
      </group>
      <group>
        <title>POIFS - POI File System</title>
        <package name="org.apache.poi.poifs*"/>
      </group>
      <group>
        <title>Utilities</title>
        <package name="org.apache.poi.util*"/>
      </group>
      <group>
        <title>Examples</title>
        <package name="org.apache.poi.hpsf.examples*"/>
        <package name="org.apache.poi.hssf.usermodel.examples*"/>
      </group>
    </javadoc>

    <antcall target="clover.html"/>
  </target>



  <!-- ================================== -->
  <!--       Generate records                -->
  <!-- ================================== -->

  <target name="generate-records" depends="init"
    description="Generates HSSF records"> 
    <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
      <arg file="src/records/definitions"/>
      <arg file="src/records/styles"/>
      <arg file="src/java"/>
      <arg file="src/testcases"/>
      <classpath>
        <path refid="scratchpad.classpath"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
      </classpath>
    </java>  
  </target>

  <!-- ================================== -->
  <!--       Generate types               -->
  <!-- ================================== -->

  <target name="generate-types" depends="init"
    description="Generates word types">
    <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
      <arg file="src/types/definitions"/>
      <arg file="src/types/styles"/>
      <arg file="src/scratchpad/src"/>
      <arg file="src/scratchpad/testcases"/>
      <classpath>
        <path refid="scratchpad.classpath">
        </path>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
      </classpath>
    </java>
  </target>



    <!-- Generates documentation and reports -->
    <target name="site" depends="reports, docs"
      description="Generates POI's website's contents"/>


    <target name="maven-dist" depends="jar,jar-ooxml" description="Builds the POM files for a maven distribution, and copies these and the jars to the appropriate locations">
		<!-- Copy the jar files into the maven jar directory -->
		<!-- Same jars as for the main release, only lacking the datestamp -->
		<copy
			file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"
			tofile="${mavendist.oap.dir}/jars/${jar.name}-${version.id}.jar" />
		<copy
			file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"
			tofile="${mavendist.oap.dir}/jars/${jar.name}-contrib-${version.id}.jar" />
		<copy
			file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"
			tofile="${mavendist.oap.dir}/jars/${jar.name}-scratchpad-${version.id}.jar" />

		<!-- TODO: Decide about source jars, and copy them if we have some -->

		<!-- Build the org.apache.poi poms -->
		<!-- Copy from the base file, substituting in the version and -->
		<!--  artificat, plus doing the core poi dependency as needed -->

		<!-- Build the main pom -->
		<copy 
			file="poi.pom" 
			tofile="${mavendist.oap.dir}/poms/${jar.name}-${version.id}.pom" 
		>
			<filterchain>
				<replacetokens>
					<token key="VERSION" value="${version.id}" />
					<token key="ARTIFICAT" value="poi" />
				</replacetokens>
				<tokenfilter>
					<filetokenizer/>
					<replaceregex pattern="START_NON_MAIN.*END_NON_MAIN_DEPENDENCY" replace="No POI dependency on the main jar" flags="s" />
				</tokenfilter>
			</filterchain>
		</copy>
		<!-- And the contrib pom -->
		<copy 
			file="poi.pom" 
			tofile="${mavendist.oap.dir}/poms/${jar.name}-contrib-${version.id}.pom" 
		>
			<filterchain>
				<replacetokens>
					<token key="VERSION" value="${version.id}" />
					<token key="ARTIFICAT" value="poi-contrib" />
				</replacetokens>
				<tokenfilter>
					<replaceregex pattern="..-- START_NON_MAIN_DEPENDENCY --." replace="" flags="s"/>
					<replaceregex pattern="..-- END_NON_MAIN_DEPENDENCY --." replace="" flags="s"/>
				</tokenfilter>
			</filterchain>
		</copy>
		<!-- And the scratchpad pom -->
		<copy 
			file="poi.pom" 
			tofile="${mavendist.oap.dir}/poms/${jar.name}-scratchpad-${version.id}.pom" 
		>
			<filterchain>
				<replacetokens>
					<token key="VERSION" value="${version.id}" />
					<token key="ARTIFICAT" value="poi-scratchpad" />
				</replacetokens>
				<tokenfilter>
					<replaceregex pattern="..-- START_NON_MAIN_DEPENDENCY --." replace="" flags="s"/>
					<replaceregex pattern="..-- END_NON_MAIN_DEPENDENCY --." replace="" flags="s"/>
				</tokenfilter>
			</filterchain>
		</copy>

		<!-- Build the poi => org.apache.poi redirect poms -->
		<!-- Copy from the base file, substituting in the version+artifact -->
		<copy 
			file="poi-redirect.pom" 
			tofile="${mavendist.poi.dir}/poms/${jar.name}-${version.id}.pom" 
		>
			<filterchain><replacetokens>
				<token key="VERSION" value="${version.id}" />
				<token key="ARTIFICAT" value="poi" />
			</replacetokens></filterchain>
		</copy>
		<copy 
			file="poi-redirect.pom" 
			tofile="${mavendist.poi.dir}/poms/${jar.name}-contrib-${version.id}.pom" 
		>
			<filterchain><replacetokens>
				<token key="VERSION" value="${version.id}" />
				<token key="ARTIFICAT" value="poi-contrib" />
			</replacetokens></filterchain>
		</copy>
		<copy 
			file="poi-redirect.pom" 
			tofile="${mavendist.poi.dir}/poms/${jar.name}-scratchpad-${version.id}.pom" 
		>
			<filterchain><replacetokens>
				<token key="VERSION" value="${version.id}" />
				<token key="ARTIFICAT" value="poi-scratchpad" />
			</replacetokens></filterchain>
		</copy>

		<!-- And that's it for maven -->
	</target>

    <target name="jar-14" depends="compile-main-14, compile-version" description="Creates the jdk 1.4 only jar file">
        <jar destfile="${dist.dir}/${jar.name}-jdk14-${version.id}-${DSTAMP}.jar">
			<fileset dir="${main14.output.dir}" />
			<fileset dir="legal/" />
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Specification-Title" value="Apache POI"/>
                <attribute name="Specification-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Specification-Vendor" value="Apache"/>
                <attribute name="Implementation-Title" value="Apache POI for JDK 1.3/1.4"/>
                <attribute name="Implementation-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Implementation-Vendor" value="Apache"/>
            </manifest>        
        </jar>
	</target>
    <target name="jar" depends="compile, compile-version, jar-14" description="Creates jar files for distribution">
        <jar destfile="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar">
			<fileset dir="${main.output.dir}" />
			<fileset dir="legal/" />
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Specification-Title" value="Apache POI"/>
                <attribute name="Specification-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Specification-Vendor" value="Apache"/>
                <attribute name="Implementation-Title" value="Apache POI"/>
                <attribute name="Implementation-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Implementation-Vendor" value="Apache"/>
            </manifest>        
        </jar>
        <jar destfile="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar">
			<fileset dir="${contrib.output.dir}" />
			<fileset dir="legal/" />
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Specification-Title" value="Apache POI"/>
                <attribute name="Specification-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Specification-Vendor" value="Apache"/>
                <attribute name="Implementation-Title" value="Apache POI"/>
                <attribute name="Implementation-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Implementation-Vendor" value="Apache"/>
            </manifest>        
        </jar>
        <jar destfile="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar">
			<fileset dir="${scratchpad.output.dir}" />
			<fileset dir="legal/" />
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Specification-Title" value="Apache POI"/>
                <attribute name="Specification-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Specification-Vendor" value="Apache"/>
                <attribute name="Implementation-Title" value="Apache POI"/>
                <attribute name="Implementation-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Implementation-Vendor" value="Apache"/>
            </manifest>        
        </jar>
    </target>
    <target name="jar-ooxml" depends="compile-ooxml" description="Creates the ooxml jar files for distribution">
        <jar destfile="${dist.dir}/${jar.name}-ooxml-${version.id}-${DSTAMP}.jar">
			<fileset dir="${ooxml.output.dir}" />
			<fileset dir="legal/" />
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Specification-Title" value="Apache POI"/>
                <attribute name="Specification-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Specification-Vendor" value="Apache"/>
                <attribute name="Implementation-Title" value="Apache POI"/>
                <attribute name="Implementation-Version" value="${version.id}-${DSTAMP}"/>
                <attribute name="Implementation-Vendor" value="Apache"/>
            </manifest>        
        </jar>
    </target>

  <target name="dist" depends="clean, fail-unless-tools-are-available, compile, site, jar, jar-ooxml"
    description="Creates the entire distribution into build/dist, from scratch">

	<property name="zipdir" value="${jar.name}-${version.id}" />

    <zip destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.zip">
      <zipfileset dir="legal/" prefix="${zipdir}" />
      <zipfileset dir="lib/" prefix="${zipdir}/lib" />
      <zipfileset dir="ooxml-lib/" prefix="${zipdir}/ooxml-lib">
          <exclude name="*.zip"/>
      </zipfileset>
      <zipfileset dir="${build.site}" prefix="${zipdir}/docs"/>
      <zipfileset file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <zipfileset file="${dist.dir}/${jar.name}-jdk14-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <zipfileset file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <zipfileset file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <zipfileset file="${dist.dir}/${jar.name}-ooxml-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
    </zip>

    <zip destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.zip">
      <zipfileset dir="legal/" prefix="${zipdir}" />
      <zipfileset dir="${build.site}" prefix="${zipdir}/docs"/>
      <zipfileset dir="." prefix="${zipdir}">
        <exclude name="build/**"/>
        <exclude name="scripts/**"/>
        <exclude name="*.ipr"/>
        <exclude name="*.iml"/>
        <exclude name="*.iws"/>
        <exclude name="*.swp"/>
      </zipfileset>
    </zip>

    <tar destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.tar.gz"
      compression="gzip">
      <tarfileset dir="legal/" prefix="${zipdir}" />
      <tarfileset dir="lib/" prefix="${zipdir}/lib" />
      <tarfileset dir="ooxml-lib/" prefix="${zipdir}/ooxml-lib">
          <exclude name="*.zip"/>
      </tarfileset>
      <tarfileset dir="${build.site}" prefix="${zipdir}/docs"/>
      <tarfileset file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <tarfileset file="${dist.dir}/${jar.name}-jdk14-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <tarfileset file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <tarfileset file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
      <tarfileset file="${dist.dir}/${jar.name}-ooxml-${version.id}-${DSTAMP}.jar" prefix="${zipdir}" />
    </tar>

    <tar destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.tar.gz"
      compression="gzip">
      <tarfileset dir="legal/" prefix="${zipdir}" />
      <tarfileset dir="${build.site}" prefix="${zipdir}/docs"/>
      <tarfileset dir="." prefix="${zipdir}">
        <exclude name="build/**"/>
        <exclude name="scripts/**"/>
        <exclude name="*.ipr"/>
        <exclude name="*.iml"/>
        <exclude name="*.iws"/>
        <exclude name="*.swp"/>
      </tarfileset>
    </tar>

    <echo>Distribution located in build/dist</echo>
  </target>

  <target name="clean-compile" depends="clean, compile"/>

  <target name="clean-dist" depends="clean, dist"
    description="Cleans the build directory then creates a distribution"/>

  <target name="gump" depends="test, jar"/>



  <!-- Generates the Ant document type definition (DTD) -->
  <target name="dtd"
    description="Generates the Ant document type definition (DTD)">
    <antstructure output="ant.dtd"/>
  </target>




  <!-- Abort the build if JUnit is missing. -->
  <target name="fail-unless-junit-is-available" depends="init">
    <condition property="isAvailable.junit">
      <available classname="junit.framework.TestCase"/>
    </condition>
    <antcall target="fail-junit"/>
  </target>

  <target name="fail-junit" unless="isAvailable.junit">
    <echo>
      JUnit is not available. You must download JUnit from
      &lt;http://www.junit.org/&gt; and include the JAR file in your
      classpath.
    </echo> 
    <fail message="JUnit is not available."/>
  </target>

  <!-- Warn if JUnit is missing. -->
  <target name="warn-unless-junit-is-available" depends="init">
    <condition property="isAvailable.junit">
      <available classname="junit.framework.TestCase"/>
    </condition>
    <antcall target="warn-junit"/>
  </target>

  <target name="warn-junit" unless="isAvailable.junit">
    <echo>
      WARNING: Since JUnit is not available you might encounter failures
      subsequently. In order to avoid this you should download JUnit from
      &lt;http://www.junit.org/&gt; and include the JAR file in your
      classpath.
    </echo> 
  </target>



  <!-- Abort the build if JDepend is missing. -->
  <target name="fail-unless-jdepend-is-available" depends="init">
    <condition property="isAvailable.jdepend">
      <available classname="jdepend.framework.JDepend"/>
    </condition>
    <antcall target="fail-jdepend"/>
  </target>

  <target name="fail-jdepend" unless="isAvailable.jdepend">
    <echo>
      JDepend is not available. You must download JDepend from
      &lt;http://www.clarkware.com/software/JDepend.html&gt; and include the
      JAR file in your classpath.
    </echo> 
    <fail message="JDepend is not available."/>
  </target>



  <!-- Abort the build if an XSLT processor is missing. -->
  <target name="fail-unless-xslt-is-available" depends="init">
    <condition property="isAvailable.xslt">
      <available classname="javax.xml.transform.TransformerFactory"/>
    </condition>
    <antcall target="fail-xslt"/>
  </target>

  <target name="fail-xslt" unless="isAvailable.xslt">
    <echo>
      An XSLT processor is missing. You must download e.g. Xalan from
      &lt;http://xml.apache.org/xalan-j/&gt; and include the JAR file in your
      classpath.
    </echo> 
    <fail message="An XSLT processor is not available."/>
  </target>

  <!-- Warn if an XSLT processor is missing. -->
  <target name="warn-unless-xslt-is-available" depends="init">
    <condition property="isAvailable.xslt">
      <available classname="javax.xml.transform.TransformerFactory"/>
    </condition>
    <antcall target="warn-xslt"/>
  </target>

  <target name="warn-xslt" unless="isAvailable.xslt">
    <echo>
      WARNING: Since an XSLT processor is not available you might encounter
      failures subsequently. In order to avoid this you should download
      e.g. Xalan from &lt;http://xml.apache.org/xalan-j/&gt; and include the
      JAR file in your classpath.
    </echo> 
  </target>



  <!-- Aborts the build if any of the required tools are missing. -->
  <target name="fail-unless-tools-are-available"
    depends="fail-unless-junit-is-available, fail-unless-junit-is-available,
    fail-unless-jdepend-is-available"/>



  <!-- Runs jdepend to produce a report about package dependencies -->
  <target name="jdepend" depends="fail-unless-jdepend-is-available"
    description="Runs jdepend to produce a report about package dependencies">
    <jdepend outputfile="${jdepend.report.dir}/jdepend.xml" format="xml">
      <classespath>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${contrib.output.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
      </classespath>
      <classpath>
        <path refid="main.classpath"/>
        <path refid="contrib.classpath"/>
        <path refid="scratchpad.classpath"/>
      </classpath>
    </jdepend>

    <style basedir="${jdepend.report.dir}"
      in="${jdepend.report.dir}/jdepend.xml"
      out="${jdepend.report.out.dir}/index.html"
      style="jdepend.xsl"/>
  </target>


  <target name="-require-filename" description="Ensure -Dfilename=... was given">
     <fail unless="filename" message="A filename must be supplied with -Dfilename=, eg -Dfilename=test.xls" />
  </target>

  <!-- These tasks make it easy to run our command line tools, -->
  <!--  without you needing to worry about classpaths etc -->
  <target name="POIFSViewer" depends="compile-main,-require-filename"
    description="Runs poifs.dev.POIFSViewer against the supplied file">
    <java classname="org.apache.poi.poifs.dev.POIFSViewer">
        <arg line="${filename}" />
        <classpath refid="test.classpath"/>
    </java>
  </target>
  <target name="OOXMLLister" depends="compile-ooxml,-require-filename"
    description="Runs dev.OOXMLLister against the supplied file">
    <java classname="org.apache.poi.dev.OOXMLLister">
        <arg line="${filename}" />
        <classpath refid="test.ooxml.classpath"/>
    </java>
  </target>
  <target name="BiffViewer" depends="compile-main,-require-filename"
    description="Runs hssf.dev.BiffViewer against the supplied file">
    <java classname="org.apache.poi.hssf.dev.BiffViewer">
        <arg line="${filename}" />
        <classpath refid="test.classpath"/>
    </java>
  </target>

</project>

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
