<!--

   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.

-->
<!--


              A p a c h e   B a t i k   B u i l d   S y s t e m



Build Tools
..............................................................................

The Batik build system is based on Apache Ant, which is a Java building tool
used in Apache projects.
For more information refer to <http://ant.apache.org/>.

The distribution contains a precompiled version of Ant.

The only thing that you have to make sure, is that the "JAVA_HOME" environment
property should be set to match the JVM you want to use. 

If you are going to be doing development you may want to create a file
called 'build.properties' with the line 'debug=on' in it.  This will 
turn on the generation of debugging information when compiling Batik.

Building Instructions
..............................................................................

First, make sure your current working directory is where this file is located.
Then type:

  [unix]  ./build.sh compile
  [win32] .\build.bat compile

This action will compile the sources to the 'classes' directory.

You can now launch the SVG browser by typing:

  [unix]  ./build.sh squiggle
  [win32] .\build.bat squiggle


Build Targets
..............................................................................

To display the available targets type:

  [unix]  ./build.sh  help
  [win32] .\build.bat help

 
 $Id$

-->

<project default="help" name="batik" basedir=".">

  <!-- Configuring the build -->
  <property file="${basedir}/build-local.properties"/>
  <property environment="env"/>

  <!-- Initializations .................................................... -->
  <target name="init">
    <tstamp>
      <format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
    </tstamp>
    <property name="Project"            value="Apache Batik"/>
    <property name="project"            value="batik"/>
    <property name="year"               value="2009"/>
    <property name="version"            value="1.8"/>
    <property name="revisionType"       value="pre"/>
    <property name="revisionNumber"     value=""/>
    <property name="completeVersion"    value="${version}${revisionType}${revisionNumber}"/>
  
    <property file="build.properties"/>
    <property name="debug"              value="off"/>
    <property name="optimize"           value="on"/>
    <property name="deprecation"        value="on"/>
  
    <property name="src"                value="sources"/>
    <property name="src-internal-codec" value="sources-internal-codec"/>
    <property name="resources"          value="resources"/>
    <property name="testsrc"            value="test-sources"/>
    <property name="testresources"      value="test-resources"/>
    <property name="dest"               value="classes"/>
    <property name="dest-internal-codec" value="classes-internal-codec"/>
    <property name="build"              value="${project}-${completeVersion}"/>
    <property name="build.id"           value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
    <property name="docs"               value="${build}/docs"/>
    <property name="forrest-build"      value="${build}/forrest"/>
    <property name="app"                value="${build}/Squiggle.app"/>
    <property name="dmg"                value="${build}/Squiggle-${completeVersion}.dmg"/>
    <property name="maven"              value="${build}/maven"/>
    <property name="lib"                value="lib"/>
    <property name="samples"            value="samples"/>
    <property name="package-prefix"     value="org/apache/${project}"/>
  
    <property name="class-prefix"       value="org.apache.${project}"/>
  
    <property name="dom.javadoc"        value="http://www.w3.org/2003/01/dom2-javadoc/"/>
    <property name="jdk.javadoc"        value="http://java.sun.com/j2se/1.4/docs/api/"/>
    <property name="rhino.javadoc"      value="http://www.mozilla.org/rhino/apidocs/"/>
  
    <property name="site"               value="site"/>
  
    <property name="test-reports"       value="test-reports"/>
    <property name="test-references"    value="test-references"/>
    <property name="test-resources"     value="test-resources"/>
  
    <!-- For site deployment -->
    <property name="deploy.svn.url"     value="https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/batik"/>
    <property name="build.site-dir"     value="${site}"/>
  
    <pathconvert property="cwd">
      <path path="."/>
    </pathconvert>
  
    <path id="libs-classpath">
      <fileset dir="lib">
        <include name="*.jar"/>
      </fileset>
    </path>
  
    <path id="libs-build-classpath">
      <fileset dir="lib/build">
        <include name="stylebook*.jar"/>
      </fileset>
      <fileset dir="lib">
        <include name="xalan*.jar"/>
        <include name="xerces*.jar"/>
        <include name="xml-apis.jar"/>
        <include name="xml-apis-ext.jar"/>
      </fileset>
    </path>
  
    <available property="rhino.present" classname="org.mozilla.javascript.Context">
      <classpath refid="libs-classpath"/>
    </available>
    <available property="jpython.present" classname="org.python.util.PythonInterpreter">
      <classpath refid="libs-classpath"/>
    </available>
    <available property="jacl.present" classname="tcl.lang.Interp">
      <classpath refid="libs-classpath"/>
    </available>
    
    <!-- When compiling Batik under GNU Classpath, the Sun codecs are not available. -->
    <condition property="sun-codecs.present">
      <and>
        <available classname="com.sun.image.codec.jpeg.JPEGCodec" 
                   classpathref="libs-classpath"/>
        <!-- This became quite tricky in JDK 7, as the Sun codecs were "retired"
             (they are available in run-time although the "classes are not located when compiling")
             http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6527962 -->
        <not>
            <and>
                <equals arg1="${java.specification.vendor}" arg2="Oracle Corporation"/>
                <or>
                    <!-- According to Sun issue 6527962, the classes are to be completely removed in JDK 8
                         (so there should be no need to extend this list any longer) -->
                    <equals arg1="${java.specification.version}" arg2="1.7"/>
                    <equals arg1="${java.specification.version}" arg2="1.8"/>
                </or>
            </and>
        </not>
        <not>
          <equals arg1="${sun-codecs.disabled}" arg2="true"/>
        </not>
      </and>
    </condition>

    <condition property="javadoc-exclusion-rhino"
               value="org.apache.batik.script.rhino">
      <not>
        <equals arg1="${rhino.present}" arg2="true"/>
      </not>
    </condition>
    <condition property="javadoc-exclusion-jpython"
               value="org.apache.batik.script.jpython">
      <not>
        <equals arg1="${jpython.present}" arg2="true"/>
      </not>
    </condition>
    <condition property="javadoc-exclusion-jacl"
               value="org.apache.batik.script.jacl">
      <not>
        <equals arg1="${jacl.present}" arg2="true"/>
      </not>
    </condition>
  
    <property name="javadoc-exclusions"
              value="${javadoc-exclusion-rhino},${javadoc-exclusion-jpython},${javadoc-exclusion-jacl}"/>
  
    <uptodate property="IWasLoadedUpToDate" 
     targetfile="${testresources}/org/apache/batik/bridge/IWasLoaded.jar">
     <srcfiles dir="${testresources}//org/apache/batik/bridge"
               includes="IWasLoaded.java"/>
    </uptodate>
  
    <uptodate property="IWasLoadedTooUpToDate" 
     targetfile="${testresources}/org/apache/batik/bridge/IWasLoadedToo.jar">
     <srcfiles dir="${testresources}//org/apache/batik/bridge"
               includes="IWasLoadedToo.java"/>
    </uptodate>
  
    <condition property="forrest.call" value="cmd" else="${env.FORREST_HOME}/bin/forrest">
      <os family="windows"/>
    </condition>
  
    <condition property="forrest.args" value="/c &quot;${env.FORREST_HOME}\bin\forrest.bat&quot;" else="">
      <os family="windows"/>
    </condition>
  
    <!-- Info ............................................................... -->
    <echo message=" == ${Project} ${completeVersion} build file ================================"/>
    <echo message=""/>
    <echo message="    JAVA_HOME: ${env.JAVA_HOME}"/>
    <echo message="    VM:        ${java.vm.version}, ${java.vm.vendor}"/>
  </target>

  <!-- Help ............................................................... -->
  <target name="help" depends="init" description="Displays the usage">
    <echo message=""/>
    <echo message="The following build targets are available:"/>
    <echo message=""/>
    <echo message=" -- Running -------------------------------------------------------"/>
    <echo message=""/>
    <echo message="    squiggle"/>
    <echo message="        Runs the Squiggle SVG browser application."/>
    <echo message=""/>
    <echo message="    svgrasterizer"/>
    <echo message="        Runs the SVG rasterizer application."/>
    <echo message=""/>
    <echo message="    svgpp"/>
    <echo message="        Runs the SVG pretty-printer application."/>
    <echo message=""/>
    <echo message="    ttf2svg"/>
    <echo message="        Runs the TrueType Font to SVG Font convert application."/>
    <echo message=""/>
    <echo message=" -- Building ------------------------------------------------------"/>
    <echo message=""/>
    <echo message="    dist-zip"/>
    <echo message="        Builds the binary, source and documentation distributions"/>
    <echo message="        as ZIP files."/>
    <echo message="        (Creates ${project}-${completeVersion}.zip, ${project}-docs-${completeVersion}.zip"/>
    <echo message="        and ${project}-src-${completeVersion}.zip.)"/>
    <echo message=""/>
    <echo message="    dist-tgz"/>
    <echo message="        Builds the binary, source and documentation distributions"/>
    <echo message="        as .tar.gz files."/>
    <echo message="        (Creates ${project}-${completeVersion}.tar.gz, ${project}-docs-${completeVersion}.tar.gz"/>
    <echo message="        and ${project}-src-${completeVersion}.tar.gz.)"/>
    <echo message=""/>
    <echo message="    appbundle"/>
    <echo message="        Builds the Mac OS X Squiggle application bundle."/>
    <echo message="        (Creates ${app}.)"/>
    <echo message=""/>
    <echo message="    dmg"/>
    <echo message="        Builds the Mac OS X Squiggle application bundle disk image."/>
    <echo message="        (Creates ${dmg}.)"/>
    <echo message=""/>
    <echo message="    compile"/>
    <echo message="        Compiles all of Batik except the test infrastructure."/>
    <echo message="        (Creates class files in classes/ from files in sources/.)"/>
    <echo message=""/>
    <echo message="    compiletest"/>
    <echo message="        Compiles the Batik test infrastructure."/>
    <echo message="        (Creates class files in classes/ from files in"/>
    <echo message="        test-sources/.)"/>
    <echo message=""/>
    <echo message="    jars"/>
    <echo message="        Builds jar files for all Batik libraries and applications."/>
    <echo message="        (Creates ${build}/.)"/>
    <echo message=""/>
    <echo message="    all-jar"/>
    <echo message="        Builds a single jar that contains all Batik libraries."/>
    <echo message="        (Creates ${build}/lib/${project}-all.jar.)"/>
    <echo message=""/>
    <echo message="    maven-artifacts"/>
    <echo message="        Builds Maven artifacts for all jars."/>
    <echo message="        (Creates ${maven}/.)"/>
    <echo message=""/>
    <echo message="    javadoc"/>
    <echo message="        Generates the API documentation."/>
    <echo message="        (Creates ${docs}/javadoc/.)"/>
    <echo message=""/>
    <echo message="    site"/>
    <echo message="        Generates the http://xmlgraphics.apache.org/batik/ site,"/>
    <echo message="        including Javadocs."/>
    <echo message="        (Creates ${site}/.)"/>
    <echo message=""/>
    <echo message="    sitedoc"/>
    <echo message="        Generates the http://xmlgraphics.apache.org/batik/ site,"/>
    <echo message="        excluding Javadocs."/>
    <echo message="        (Creates ${site}/.)"/>
    <echo message=""/>
    <echo message="    html"/>
    <echo message="        Generates the HTML documentation, including Javadocs."/>
    <echo message="        (Creates ${docs}/.)"/>
    <echo message=""/>
    <echo message="    htmldoc"/>
    <echo message="        Generates the HTML documentation, excluding Javadocs."/>
    <echo message="        (Creates ${docs}/.)"/>
    <echo message=""/>
    <echo message="    splash"/>
    <echo message="        Regenerates the Squiggle browser splash screen."/>
    <echo message=""/>
    <echo message="    clean"/>
    <echo message="        Removes all output files and directories."/>
    <echo message="    "/>
    <echo message=" -- Testing -------------------------------------------------------"/>
    <echo message=""/>
    <echo message="    regard"/>
    <echo message="        Runs the Regard regression testing tool for all tests that"/>
    <echo message="        need no user interaction."/>
    <echo message="        (Creates HTML test reports in test-reports/.)"/>
    <echo message=""/>
    <echo message="    regard.manual"/>
    <echo message="        Runs the Regard regression testing tool for all test that"/>
    <echo message="        need user interaction."/>
    <echo message="        (Creates HTML test reports in test-reports/.)"/>
    <echo message=""/>
    <echo message="    runtestsuite"/>
    <echo message="        Runs a test suite, given an XML test suite document."/>
    <echo message=""/>
    <echo message="    runtest"/>
    <echo message="        Runs an individual test, given a class name."/>
    <echo message=""/>
    <echo message="    showpainter"/>
    <echo message="        Runs an SVG Generator painter test, given a class name."/>
    <echo message=""/>
    <echo message="See the comments in the build.xml file for more details."/>
  </target>

  <!-- Build .............................................................. -->
  <target name="dist-zip" depends="build-zip"/>
  <target name="build-zip" depends="doc-zip, bin-zip, src-zip"/>

  <target name="doc-zip" depends="init, html">
    <delete dir="${build}/docs/images/BE"/>
    <zip zipfile="${project}-docs-${completeVersion}.zip" basedir="${build}"
         includes="docs/javadoc/**"/>
    <delete dir="${build}/docs/javadoc"/>
  </target>

  <target name="bin-zip" depends="init, jars, htmldoc, bundle-script">
    <zip zipfile="${project}-${completeVersion}.zip">
      <zipfileset dir="." prefix="${project}-${completeVersion}">
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="README"/>
        <include name="CHANGES"/>
      </zipfileset>
      <zipfileset dir="${build}" prefix="${project}-${completeVersion}">
        <include name="*.jar"/>
        <include name="docs/**"/>
        <include name="extensions/**"/>
        <include name="lib/*.jar"/>
        <include name="lib/make-squiggle-app.sh"/>
      </zipfileset>
      <zipfileset dir="lib" prefix="${project}-${completeVersion}/lib">
        <include name="LICENSE.*.txt"/>
        <include name="README.*.txt"/>
      </zipfileset>
      <zipfileset dir="${resources}/${package-prefix}/extensions"
                  prefix="${project}-${completeVersion}/extensions">
        <include name="README.txt"/>
      </zipfileset>
      <zipfileset dir="${src}" prefix="${project}-${completeVersion}/lib">
        <include name="Squiggle.icns"/>
      </zipfileset>
      <zipfileset dir="." includes="samples/**" prefix="${project}-${completeVersion}"/>
    </zip>
  </target>

  <target name="src-zip" depends="init, record-svn-revision">
    <zip zipfile="${project}-src-${completeVersion}.zip">
      <zipfileset dir="." prefix="${project}-${completeVersion}">
        <include name="LICENSE"/>
        <include name="KEYS"/>
        <include name="MAINTAIN"/>
        <include name="NOTICE"/>
        <include name="README"/>
        <include name="CHANGES"/>
        <include name="build.bat"/>
        <include name="build.sh"/>
        <include name="build.xml"/>
        <include name="forrest.properties"/>
        <include name="svn-revision"/>
        <include name="contrib/**"/>
        <include name="lib/**"/>
        <include name="documentation-sources/**"/>
        <include name="resources/**"/>
        <include name="samples/**"/>
        <include name="sources/**"/>
        <include name="test-resources/**"/>
        <include name="test-sources/**"/>
      </zipfileset>
    </zip>
    <delete file="svn-revision" failonerror="false"/>
  </target>

  <target name="dist-tgz" depends="build-tgz"/>
  <target name="build-tgz" depends="doc-tgz, bin-tgz, src-tgz"/>

  <target name="doc-tgz" depends="init, html">
    <delete dir="${build}/docs/images/BE"/>
    <tar tarfile="${project}-docs-${completeVersion}.tar.gz" compression="gzip"
         basedir="${build}" includes="docs/javadoc/**"/>
    <delete dir="${build}/docs/javadoc"/>
  </target>

  <target name="bin-tgz" depends="init, jars, htmldoc, bundle-script">
    <tar tarfile="${project}-${completeVersion}.tar.gz" compression="gzip">
      <tarfileset dir="." prefix="${project}-${completeVersion}">
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="README"/>
        <include name="CHANGES"/>
      </tarfileset>
      <tarfileset dir="${build}" prefix="${project}-${completeVersion}">
        <include name="*.jar"/>
        <include name="docs/**"/>
        <include name="extensions/**"/>
        <include name="lib/*.jar"/>
        <include name="lib/make-squiggle-app.sh"/>
      </tarfileset>
      <tarfileset dir="lib" prefix="${project}-${completeVersion}/lib">
        <include name="LICENSE.*.txt"/>
        <include name="README.*.txt"/>
      </tarfileset>
      <tarfileset dir="${resources}/${package-prefix}/extensions"
                  prefix="${project}-${completeVersion}/extensions">
        <include name="README.txt"/>
      </tarfileset>
      <tarfileset dir="${src}" prefix="${project}-${completeVersion}/lib">
        <include name="Squiggle.icns"/>
      </tarfileset>
      <tarfileset dir="." includes="samples/**" prefix="${project}-${completeVersion}"/>
    </tar>
  </target>

  <target name="src-tgz" depends="init, record-svn-revision">
    <tar tarfile="${project}-src-${completeVersion}.tar.gz" compression="gzip">
      <tarfileset dir="." prefix="${project}-${completeVersion}">
        <include name="LICENSE"/>
        <include name="KEYS"/>
        <include name="MAINTAIN"/>
        <include name="NOTICE"/>
        <include name="README"/>
        <include name="CHANGES"/>
        <include name="build.bat"/>
        <include name="build.sh"/>
        <include name="build.xml"/>
        <include name="forrest.properties"/>
        <include name="svn-revision"/>
        <include name="contrib/**"/>
        <include name="lib/**"/>
        <include name="documentation-sources/**"/>
        <include name="resources/**"/>
        <include name="samples/**"/>
        <include name="sources/**"/>
        <include name="test-resources/**"/>
        <include name="test-sources/**"/>
      </tarfileset>
    </tar>
    <delete file="svn-revision" failonerror="false"/>
  </target>

  <target name="dmg" depends="appbundle">
    <exec executable="hdiutil">
      <arg line="create -srcfolder ${app} ${dmg}"/>
    </exec>
  </target>

  <target name="appbundle" depends="init, jars, determine-svn-revision">
    <mkdir dir="${app}/Contents/MacOS"/>
    <mkdir dir="${app}/Contents/Resources"/>
    <echo file="${app}/Contents/Info.plist"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleExecutable</key>
  <string>Squiggle</string>
  <key>CFBundleVersion</key>
  <string>${completeVersion}${svn-revision-suffix}</string>
  <key>CFBundleShortVersionString</key>
  <string>${completeVersion}${svn-revision-suffix}</string>
  <key>CFBundleIconFile</key>
  <string>Squiggle.icns</string>
  <key>CFBundleIdentifier</key>
  <string>org.apache.batik</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>Squiggle</string>
  <key>CFBundlePackageType</key>
  <string>APPL</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>NSHumanReadableCopyright</key>
  <string>Copyright © ${year} Apache Software Foundation. All Rights Reserved.</string>
</dict>
</plist>]]></echo>
    <echo file="${app}/Contents/MacOS/Squiggle"><![CDATA[#!/bin/sh

JAVA=/usr/bin/java
[ -e "$JAVA_HOME/bin/java" ] && JAVA="$JAVA_HOME/bin/java"

"$JAVA" -Dcom.apple.mrj.application.apple.menu.about.name=Squiggle -jar "`dirname \"$0\"`/../Resources/batik-squiggle.jar"
]]></echo>
    <chmod perm="a+x" file="${app}/Contents/MacOS/Squiggle"/>
    <copy todir="${app}/Contents/Resources">
      <fileset dir=".">
        <include name="LICENSE"/>
        <include name="NOTICE"/>
        <include name="README"/>
      </fileset>
      <fileset dir="${build}">
        <include name="*.jar"/>
        <include name="lib/**"/>
        <include name="extensions/**"/>
      </fileset>
      <fileset dir="${src}">
        <include name="Squiggle.icns"/>
      </fileset>
    </copy>
    <copy todir="${app}/Contents/Resources/lib">
      <fileset dir="${lib}">
        <include name="LICENSE.*.txt"/>
        <include name="README.*.txt"/>
      </fileset>
    </copy>
    <copy todir="${app}/Contents/Resources/extensions">
      <fileset dir="${resources}/${package-prefix}/extensions">
        <include name="README.txt"/>
      </fileset>
    </copy>
  </target>

  <target name="bundle-script" depends="init, determine-svn-revision">
    <copy file="${src}/make-squiggle-app.sh.template"
          tofile="${build}/lib/make-squiggle-app.sh">
      <filterset>
        <filter token="VERSION" value="${completeVersion}${svn-revision-suffix}"/>
        <filter token="YEAR" value="${year}"/>
      </filterset>
    </copy>
    <chmod perm="a+x" file="${build}/lib/make-squiggle-app.sh"/>
  </target>

  <!-- Generates maven artifacts to be copied to
       http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/xmlgraphics/.
       Updating maven-metadata.xml files, and PGP signing of artifacts and POMs
       must be done manually.

       Note that the rules to build the artifact jars here are mostly redundant
       with the relevant jar target (e.g. rasterizer-jar, squiggle-jar).  The
       commonality should be factored out.
       -->
  <target name="maven-artifacts" depends="init, determine-svn-revision, jars">
    <filter token="version" value="${completeVersion}"/>

    <!-- batik-rasterizer application artifact -->
    <mkdir dir="${maven}/batik-rasterizer/${completeVersion}"/>
    <copy file="${src}/batik-rasterizer.pom.template" tofile="${maven}/batik-rasterizer/${completeVersion}/batik-rasterizer-${completeVersion}.pom" filtering="true"/>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.classes.policy"/>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.bin.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"/>
    <jar jarfile="${maven}/batik-rasterizer/${completeVersion}/batik-rasterizer-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG rasterizer"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.rasterizer.Main"/>
        <attribute name="Class-Path" value="batik-ext-${completeVersion}.jar batik-dom-${completeVersion}.jar batik-css-${completeVersion}.jar batik-svg-dom-${completeVersion}.jar batik-gvt-${completeVersion}.jar batik-parser-${completeVersion}.jar batik-script-${completeVersion}.jar batik-bridge-${completeVersion}.jar batik-anim-${completeVersion}.jar batik-transcoder-${completeVersion}.jar batik-awt-util-${completeVersion}.jar batik-codec-${completeVersion}.jar batik-util-${completeVersion}.jar batik-xml-${completeVersion}.jar xerces-2.5.0.jar xalan-2.6.0.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar fop-0.94.jar batik-js.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/rasterizer/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/rasterizer/**/resources/**"/>
      </fileset>
    </jar>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.bin.policy"/>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.classes.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"/>

    <!-- batik-rasterizer-ext application artifact -->
    <mkdir dir="${maven}/batik-rasterizer-ext/${completeVersion}"/>
    <copy file="${src}/batik-rasterizer-ext.pom.template" tofile="${maven}/batik-rasterizer-ext/${completeVersion}/batik-rasterizer-ext-${completeVersion}.pom" filtering="true"/>
    <jar jarfile="${maven}/batik-rasterizer-ext/${completeVersion}/batik-rasterizer-ext-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG rasterizer with extensions"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.svgbrowser.Main"/>
        <attribute name="Class-Path" value="batik-rasterizer-${completeVersion}.jar batik-extension-${completeVersion}.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="META-INF/services/**"/>
      </fileset>
    </jar>

    <!-- batik-slideshow application artifact -->
    <mkdir dir="${maven}/batik-slideshow/${completeVersion}"/>
    <copy file="${src}/batik-slideshow.pom.template" tofile="${maven}/batik-slideshow/${completeVersion}/batik-slideshow-${completeVersion}.pom" filtering="true"/>
    <jar jarfile="${maven}/batik-slideshow/${completeVersion}/batik-slideshow-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG slide show tool"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.slideshow.Main"/>
        <attribute name="Class-Path" value="batik-ext-${completeVersion}.jar batik-dom-${completeVersion}.jar batik-css-${completeVersion}.jar batik-svg-dom-${completeVersion}.jar batik-gvt-${completeVersion}.jar batik-parser-${completeVersion}.jar batik-script-${completeVersion}.jar batik-bridge-${completeVersion}.jar batik-anim-${completeVersion}.jar batik-transcoder-${completeVersion}.jar batik-gui-util-${completeVersion}.jar batik-awt-util-${completeVersion}.jar batik-codec-${completeVersion}.jar batik-util-${completeVersion}.jar batik-xml-${completeVersion}.jar xerces-2.5.0.jar xalan-2.6.0.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar batik-js.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/slideshow/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/slideshow/**/resources/**"/>
      </fileset>
    </jar>

    <!-- batik-squiggle application artifact -->
    <mkdir dir="${maven}/batik-squiggle/${completeVersion}"/>
    <copy file="${src}/batik-squiggle.pom.template" tofile="${maven}/batik-squiggle/${completeVersion}/batik-squiggle-${completeVersion}.pom" filtering="true"/>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.classes.policy"/>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.bin.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"/>
    <jar jarfile="${maven}/batik-squiggle/${completeVersion}/batik-squiggle-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Squiggle SVG browser"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.svgbrowser.Main"/>
        <attribute name="Class-Path" value="batik-ext-${completeVersion}.jar batik-dom-${completeVersion}.jar batik-css-${completeVersion}.jar batik-svg-dom-${completeVersion}.jar batik-gvt-${completeVersion}.jar batik-parser-${completeVersion}.jar batik-script-${completeVersion}.jar batik-bridge-${completeVersion}.jar batik-swing-${completeVersion}.jar batik-anim-${completeVersion}.jar batik-transcoder-${completeVersion}.jar batik-gui-util-${completeVersion}.jar batik-awt-util-${completeVersion}.jar batik-codec-${completeVersion}.jar batik-util-${completeVersion}.jar batik-xml-${completeVersion}.jar xerces-2.5.0.jar xalan-2.6.0.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar batik-js.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/svgbrowser/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/svgbrowser/**/resources/**"/>
        <exclude name="${package-prefix}/apps/svgbrowser/resources/squiggle.xsl"/>
        <exclude name="${package-prefix}/apps/svgbrowser/resources/squiggle.svg"/>
      </fileset>
    </jar>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.bin.policy"/>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.classes.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"/>

    <!-- batik-squiggle-ext application artifact -->
    <mkdir dir="${maven}/batik-squiggle-ext/${completeVersion}"/>
    <copy file="${src}/batik-squiggle-ext.pom.template" tofile="${maven}/batik-squiggle-ext/${completeVersion}/batik-squiggle-ext-${completeVersion}.pom" filtering="true"/>
    <jar jarfile="${maven}/batik-squiggle-ext/${completeVersion}/batik-squiggle-ext-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Squiggle SVG browser with extensions"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.svgbrowser.Main"/>
        <attribute name="Class-Path" value="batik-squiggle-${completeVersion}.jar batik-extension-${completeVersion}.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="META-INF/services/**"/>
      </fileset>
    </jar>

    <!-- batik-svgpp application artifact -->
    <mkdir dir="${maven}/batik-svgpp/${completeVersion}"/>
    <copy file="${src}/batik-svgpp.pom.template" tofile="${maven}/batik-svgpp/${completeVersion}/batik-svgpp-${completeVersion}.pom" filtering="true"/>
    <jar jarfile="${maven}/batik-svgpp/${completeVersion}/batik-svgpp-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik XML pretty printer"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.svgpp.Main"/>
        <attribute name="Class-Path" value="batik-ext-${completeVersion}.jar batik-dom-${completeVersion}.jar batik-parser-${completeVersion}.jar batik-transcoder-${completeVersion}.jar batik-util-${completeVersion}.jar batik-xml-${completeVersion}.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/svgpp/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/svgpp/**/resources/**"/>
      </fileset>
    </jar>

    <!-- batik-ttf2svg application artifact -->
    <mkdir dir="${maven}/batik-ttf2svg/${completeVersion}"/>
    <copy file="${src}/batik-ttf2svg.pom.template" tofile="${maven}/batik-ttf2svg/${completeVersion}/batik-ttf2svg-${completeVersion}.pom" filtering="true"/>
    <jar jarfile="${maven}/batik-ttf2svg/${completeVersion}/batik-ttf2svg-${completeVersion}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik TrueType to SVG Font converter"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="org.apache.batik.apps.ttf2svg.Main"/>
        <attribute name="Class-Path" value="batik-svggen-${completeVersion}.jar batik-util-${completeVersion}.jar"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/ttf2svg/**/*.class"/>
      </fileset>
    </jar>

    <!-- library artifacts -->
    <mkdir dir="${maven}/batik-anim/${completeVersion}"/>
    <copy file="${src}/batik-anim.pom.template" tofile="${maven}/batik-anim/${completeVersion}/batik-anim-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-anim.jar" tofile="${maven}/batik-anim/${completeVersion}/batik-anim-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-awt-util/${completeVersion}"/>
    <copy file="${src}/batik-awt-util.pom.template" tofile="${maven}/batik-awt-util/${completeVersion}/batik-awt-util-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-awt-util.jar" tofile="${maven}/batik-awt-util/${completeVersion}/batik-awt-util-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-bridge/${completeVersion}"/>
    <copy file="${src}/batik-bridge.pom.template" tofile="${maven}/batik-bridge/${completeVersion}/batik-bridge-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-bridge.jar" tofile="${maven}/batik-bridge/${completeVersion}/batik-bridge-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-codec/${completeVersion}"/>
    <copy file="${src}/batik-codec.pom.template" tofile="${maven}/batik-codec/${completeVersion}/batik-codec-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-codec.jar" tofile="${maven}/batik-codec/${completeVersion}/batik-codec-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-css/${completeVersion}"/>
    <copy file="${src}/batik-css.pom.template" tofile="${maven}/batik-css/${completeVersion}/batik-css-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-css.jar" tofile="${maven}/batik-css/${completeVersion}/batik-css-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-dom/${completeVersion}"/>
    <copy file="${src}/batik-dom.pom.template" tofile="${maven}/batik-dom/${completeVersion}/batik-dom-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-dom.jar" tofile="${maven}/batik-dom/${completeVersion}/batik-dom-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-extension/${completeVersion}"/>
    <copy file="${src}/batik-extension.pom.template" tofile="${maven}/batik-extension/${completeVersion}/batik-extension-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-extension.jar" tofile="${maven}/batik-extension/${completeVersion}/batik-extension-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-ext/${completeVersion}"/>
    <copy file="${src}/batik-ext.pom.template" tofile="${maven}/batik-ext/${completeVersion}/batik-ext-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-ext.jar" tofile="${maven}/batik-ext/${completeVersion}/batik-ext-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-gui-util/${completeVersion}"/>
    <copy file="${src}/batik-gui-util.pom.template" tofile="${maven}/batik-gui-util/${completeVersion}/batik-gui-util-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-gui-util.jar" tofile="${maven}/batik-gui-util/${completeVersion}/batik-gui-util-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-gvt/${completeVersion}"/>
    <copy file="${src}/batik-gvt.pom.template" tofile="${maven}/batik-gvt/${completeVersion}/batik-gvt-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-gvt.jar" tofile="${maven}/batik-gvt/${completeVersion}/batik-gvt-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-parser/${completeVersion}"/>
    <copy file="${src}/batik-parser.pom.template" tofile="${maven}/batik-parser/${completeVersion}/batik-parser-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-parser.jar" tofile="${maven}/batik-parser/${completeVersion}/batik-parser-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-script/${completeVersion}"/>
    <copy file="${src}/batik-script.pom.template" tofile="${maven}/batik-script/${completeVersion}/batik-script-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-script.jar" tofile="${maven}/batik-script/${completeVersion}/batik-script-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-svg-dom/${completeVersion}"/>
    <copy file="${src}/batik-svg-dom.pom.template" tofile="${maven}/batik-svg-dom/${completeVersion}/batik-svg-dom-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-svg-dom.jar" tofile="${maven}/batik-svg-dom/${completeVersion}/batik-svg-dom-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-svggen/${completeVersion}"/>
    <copy file="${src}/batik-svggen.pom.template" tofile="${maven}/batik-svggen/${completeVersion}/batik-svggen-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-svggen.jar" tofile="${maven}/batik-svggen/${completeVersion}/batik-svggen-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-swing/${completeVersion}"/>
    <copy file="${src}/batik-swing.pom.template" tofile="${maven}/batik-swing/${completeVersion}/batik-swing-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-swing.jar" tofile="${maven}/batik-swing/${completeVersion}/batik-swing-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-transcoder/${completeVersion}"/>
    <copy file="${src}/batik-transcoder.pom.template" tofile="${maven}/batik-transcoder/${completeVersion}/batik-transcoder-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-transcoder.jar" tofile="${maven}/batik-transcoder/${completeVersion}/batik-transcoder-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-util/${completeVersion}"/>
    <copy file="${src}/batik-util.pom.template" tofile="${maven}/batik-util/${completeVersion}/batik-util-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-util.jar" tofile="${maven}/batik-util/${completeVersion}/batik-util-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-xml/${completeVersion}"/>
    <copy file="${src}/batik-xml.pom.template" tofile="${maven}/batik-xml/${completeVersion}/batik-xml-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/batik-xml.jar" tofile="${maven}/batik-xml/${completeVersion}/batik-xml-${completeVersion}.jar"/>

    <mkdir dir="${maven}/batik-js/${completeVersion}"/>
    <copy file="${src}/batik-js.pom.template" tofile="${maven}/batik-js/${completeVersion}/batik-js-${completeVersion}.pom" filtering="true"/>
    <copy file="${build}/lib/js.jar" tofile="${maven}/batik-js/${completeVersion}/batik-js-${completeVersion}.jar"/>

    <!-- Generate checksums of all artifacts and POMs -->
    <checksum algorithm="MD5" fileext=".md5">
      <fileset dir="${maven}">
        <include name="**/*.jar"/>
        <include name="**/*.pom"/>
      </fileset>
    </checksum>
    <checksum algorithm="SHA1" fileext=".sha1">
      <fileset dir="${maven}">
        <include name="**/*.jar"/>
        <include name="**/*.pom"/>
      </fileset>
    </checksum>
  </target>

  <!-- Compilation ........................................................ -->
  <target name="compiletest" depends="init, compile"
          description="Compiles the tests infrastructure source files">
    <mkdir dir="${dest}"/>

    <echo message="debug ${debug}, optimize ${optimize}, deprecation ${deprecation}"/>

    <javac srcdir="${testsrc}" destdir="${dest}"  deprecation="${deprecation}" 
           debug="${debug}" optimize="${optimize}" encoding="UTF-8">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
      </classpath>
    </javac>
  </target>

  <!-- Builds Jar Files needed for test purposes. Note that compilation of jars is done -->
  <!-- in a different directory than the usual 'classes' directory ({$dest}).           -->
  <!-- Note that this is needed to avoid having the class files in the classes          -->
  <!-- subdirectory, which interferes with the tests, because classes in that directory -->
  <!-- are loaded first in the development version.                                     -->
  <target name="testjars" depends="security2.jar, IWasLoaded.jar, IWasLoadedToo.jar, JarCheckPermissionsGranted.jar, JarCheckPermissionsDenied.jar, java-binding.jar"/>

  <target name="compiletestjars" depends="init, compile"
          description="Compiles the source files for the samples scripts and the test-resources">
    <mkdir dir="${testresources}/classes"/>
    <mkdir dir="${samples}/tests/resources/java/classes"/>

    <echo message="debug ${debug}, optimize ${optimize}, deprecation ${deprecation}"/>

    <javac srcdir="${samples}/tests/resources/java/sources" destdir="${samples}/tests/resources/java/classes"  deprecation="${deprecation}" 
           debug="${debug}" optimize="${optimize}" encoding="UTF-8">
      <classpath>
        <pathelement location="${dest}"/>
        <pathelement location="${samples}/tests/resources/java/classes"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
      </classpath>
    </javac>

    <javac srcdir="${testresources}" destdir="${testresources}/classes"  deprecation="${deprecation}" 
           debug="${debug}" optimize="${optimize}" encoding="UTF-8">
      <classpath>
        <pathelement location="${dest}"/>
        <pathelement location="${testresources}/classes"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="security2.jar" depends="init, compiletestjars">
    <jar manifest="${samples}/tests/resources/java/resources/com/untrusted/script/security2.mf"
         jarfile="samples/tests/spec/scripting/security2.jar">
      <fileset dir="${samples}/tests/resources/java/classes">
        <include name="com/untrusted/script/**/*.class"/>
      </fileset>
    </jar>
  </target>

  <target name="IWasLoaded.jar" depends="init, compiletestjars" 
          unless="IWasLoadedUpToDate">
    <jar manifest="${testresources}/org/apache/batik/bridge/IWasLoaded.mf"
         jarfile="${testresources}/org/apache/batik/bridge/IWasLoaded.jar">
      <fileset dir="${testresources}/classes">
        <include name="org/apache/batik/bridge/IWasLoaded.class"/>
        <include name="org/apache/batik/bridge/IWasLoaded$*.class"/>
      </fileset>
    </jar>
  </target>

  <target name="IWasLoadedToo.jar" depends="init, compiletestjars" 
          unless="IWasLoadedTooUpToDate">
    <jar manifest="${testresources}/org/apache/batik/bridge/IWasLoadedToo.mf"
         jarfile="${testresources}/org/apache/batik/bridge/IWasLoadedToo.jar">
      <fileset dir="${testresources}/classes">
        <include name="org/apache/batik/bridge/IWasLoadedToo.class"/>
        <include name="org/apache/batik/bridge/IWasLoadedToo$*.class"/>
      </fileset>
    </jar>
  </target>

  <target name="JarCheckPermissionsDenied.jar" depends="init, compiletestjars">
    <jar manifest="${testresources}/org/apache/batik/bridge/JarCheckPermissionsDenied.mf"
         jarfile="${testresources}/org/apache/batik/bridge/JarCheckPermissionsDenied.jar">
      <fileset dir="${testresources}/classes">
        <include name="org/apache/batik/bridge/JarCheckPermissionsDenied*.class"/>
      </fileset>
    </jar>
  </target>

  <target name="JarCheckPermissionsGranted.jar" depends="init, compiletestjars">
    <jar manifest="${testresources}/org/apache/batik/bridge/JarCheckPermissionsGranted.mf"
         jarfile="${testresources}/org/apache/batik/bridge/JarCheckPermissionsGranted.jar">
      <fileset dir="${testresources}/classes">
        <include name="org/apache/batik/bridge/JarCheckPermissionsGranted*.class"/>
      </fileset>
    </jar>
  </target>

  <target name="java-binding.jar" depends="init, compiletestjars">
    <jar manifest="${samples}/tests/resources/java/resources/com/test/script/java-binding.mf"
         jarfile="${samples}/tests/spec/scripting/java-binding.jar">
      <fileset dir="${samples}/tests/resources/java/classes">
        <include name="com/test/script/EventListenerInitializerImpl*.class"/>
      </fileset>
    </jar>
  </target>


  <target name="record-svn-revision" depends="determine-svn-revision"
          if="svn-revision-determined">
    <echo message="${svn-revision-number}" file="svn-revision"/>
  </target>

  <target name="determine-svn-revision"
          depends="determine-svn-revision-svn-info,
                   determine-svn-revision-transform,
                   determine-svn-revision-from-file,
                   determine-svn-revision-set"/>

  <target name="determine-svn-revision-svn-info" depends="init">
    <dirset id="dirs" dir="${src}/${package-prefix}">
      <include name="**"/>
    </dirset>
    <pathconvert refid="dirs" pathsep=" " property="svn-info-dirs"/>
    <exec executable="svn" output="svn-info.xml"
          resultproperty="svn-info-result" failifexecutionfails="false">
      <arg line="info --xml . ${svn-info-dirs}"/>
    </exec>
    <condition property="should-transform-svn-info">
      <equals arg1="${svn-info-result}" arg2="0"/>
    </condition>
  </target>

  <target name="determine-svn-revision-transform" depends="init"
          if="should-transform-svn-info">
    <java fork="yes" classname="org.apache.xalan.xslt.Process"
          outputproperty="svn-revision-number"
          errorproperty="svn-revision-transform-error"
          resultproperty="svn-revision-transform-result">
      <classpath>
        <path refid="libs-build-classpath"/>
      </classpath>
      <arg line="-in svn-info.xml -xsl ${lib}/build/svn-info-revision.xsl"/>
    </java>
    <condition property="svn-revision-determined">
      <equals arg1="${svn-revision-transform-result}" arg2="0"/>
    </condition>
  </target>

  <target name="determine-svn-revision-from-file"
          unless="svn-revision-determined">
    <loadfile property="svn-revision-number" srcFile="svn-revision"
              failonerror="false"/>
    <condition property="svn-revision-determined">
      <not>
        <equals arg1="${svn-revision-suffix-string}" arg2=""/>
      </not>
    </condition>
  </target>

  <target name="determine-svn-revision-set"
          if="svn-revision-determined">
    <property name="svn-revision-suffix" value="+r${svn-revision-number}"/>
    <delete file="svn-info.xml" failonerror="false"/>
  </target>


  <target name="compile-prepare" depends="init" unless="compile-prepare.done">
    <mkdir dir="${dest}"/>
    <echo message="debug ${debug}, optimize ${optimize}, deprecation ${deprecation}"/>
    <property name="compile-prepare.done" value="true"/>
  </target>

  <target name="compile" depends="init, compile-prepare" unless="compile.done">
    <javac destdir="${dest}" deprecation="${deprecation}" 
           debug="${debug}" optimize="${optimize}" encoding="UTF-8">
      <src path="${src}"/>
      <classpath refid="libs-classpath"/>
      <exclude name="**/*.html"/>
      <exclude name="**/rhino/*"   unless="rhino.present"/>      
      <exclude name="**/jpython/*" unless="jpython.present"/>
      <exclude name="**/jacl/*"    unless="jacl.present"/>
      <exclude name="${package-prefix}/ext/awt/image/codec/jpeg/*"
               unless="sun-codecs.present"/>
      <exclude name="${package-prefix}/ext/awt/image/codec/tiff/*"
               unless="sun-codecs.present"/>
    </javac>
    <property name="compile.done" value="true"/>
  </target>

  <target name="clean-compile" depends="init"
          description="Cleans the files generated by compile">
    <delete dir="${dest}"/>
  </target>

  <target name="clean-apache" depends="init"
          description="Cleans the Apache files generated by compile">
    <delete dir="${dest}/org/apache"/>
  </target>

  <target name="clean-test" depends="init"
          description="Cleans files generated by running tests">
    <delete file="${samples}/tests/spec/scripting/security2.jar"/>
    <delete file="${samples}/tests/spec/scripting/java-binding.jar"/>
    <delete file="${samples}/anne.pdf"/>
    <delete file="${samples}/anne.png"/>
  </target>


  <!-- Jars ............................................................... -->
  <target name="prepare-build" depends="init, determine-svn-revision">
    <mkdir dir="${build}"/>
    <mkdir dir="${build}/docs"/>
    <mkdir dir="${build}/lib"/>
  </target>

  <!-- Generates all the jars except all-jar -->
  <target name="jars" depends="init,
                               ext-jar,
                               util-jar,
                               awt-util-jar,
                               gui-util-jar,
                               dom-jar,
                               css-jar,
                               svg-dom-jar,
                               gvt-jar,
                               parser-jar,
                               script-jar,
                               transcoder-jar,
                               bridge-jar,
                               swing-jar,
                               anim-jar,
                               codec-jar,
                               extension-jar,
                               xml-jar,
                               root-jar,
                               svg-pp-jar,
                               svggen-jar,
                               svg-slideshow-jar,
                               squiggle-jar,
                               squiggle-ext-jar,
                               rasterizer-jar,
                               rasterizer-ext-jar,
                               ttf2svg-jar">
    <copy todir="${build}/lib">
      <fileset dir="${lib}">
        <include name="*.jar"/>
      </fileset>
    </copy>
  </target>


  <!-- All batik in a single jar (dependencies: none) -->
  <target name="all-jar" depends="init, compile, prepare-build"
          description="Creates a combined JAR file of the Batik libraries in ${build}/lib">
    <jar jarfile="${build}/lib/${project}-all.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik all-in-one JAR"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
        <attribute name="Main-Class" value="${class-prefix}.apps.svgbrowser.Main"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}" excludes="**/.svn/">
        <include name="**"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="**"/>
      </fileset>
    </jar>
  </target>


  <!-- All batik in a single jar, without SAX and DOM bindings
       (dependencies: batik-ext.jar) -->
  <target name="libs-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-libs.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik all-in-one minus external dependencies"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <fileset dir="${dest}" excludes="**/.svn/">
        <include name="org/apache/batik/**"/>
        <include name="org/w3c/**"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="**"/>
      </fileset>
    </jar>
  </target>


  <!-- What is needed to the JSVGCanvas bean in a jar,
       including the XML parser -->
  <target name="bean" depends="init, compile, prepare-build">
    <mkdir dir="${build}/tmp"/>
    <unjar src="lib/xerces_2_5_0.jar" dest="${build}/tmp"/>
    <jar jarfile="${build}/lib/${project}-bean.jar"
         manifest="${src}/${project}-bean.mf">
      <manifest>
        <attribute name="Implementation-Title" value="Batik JavaBean"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="org/w3c/**"/>
        <include name="${package-prefix}/bridge/**/*.class"/>
        <include name="${package-prefix}/css/**/*.class"/>
        <include name="${package-prefix}/dom/**/*.class"/>
        <include name="${package-prefix}/ext/**/*.class"/>
        <include name="${package-prefix}/gvt/**/*.class"/>
        <include name="${package-prefix}/i18n/**/*.class"/>
        <include name="${package-prefix}/parser/**/*.class"/>
        <include name="${package-prefix}/script/**/*.class"/>
        <include name="${package-prefix}/swing/**/*.class"/>
        <include name="${package-prefix}/util/*.class"/>
        <include name="${package-prefix}/util/io/*.class"/>
        <include name="${package-prefix}/xml/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/bridge/**"/>
        <include name="${package-prefix}/css/**"/>
        <include name="${package-prefix}/dom/**"/>
        <include name="${package-prefix}/ext/**"/>
        <include name="${package-prefix}/parser/**"/>
        <include name="${package-prefix}/swing/**"/>
        <include name="${package-prefix}/util/resources/**"/>
        <include name="${package-prefix}/util/io/resources/**"/>
      </fileset>
      <fileset dir="${build}/tmp">
        <include name="org/**"/>
      </fileset>
    </jar>
    <delete dir="${build}/tmp"/>
  </target>

  <!-- External code (DOM Level 3 Events and ElementTraversal interfaces) (dependencies: none) -->
  <target name="ext-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-ext.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik external code"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${lib}">
        <include name="LICENSE.dom-*.txt"/>
      </metainf>
      <fileset dir="${dest}">
        <include name="org/w3c/**"/>
      </fileset>
    </jar>
  </target>

  <!-- Util, i18n (dependencies: none) -->
  <target name="util-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-util.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik utility library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/i18n/*.class"/>
        <include name="${package-prefix}/util/*.class"/>
        <include name="${package-prefix}/util/io/*.class"/>
        <include name="${package-prefix}/Version.class"/>
        <include name="${package-prefix}/util/resources/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/util/resources/**"/>
        <include name="${package-prefix}/util/io/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- AWT Util (dependencies: none) -->
  <target name="awt-util-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-awt-util.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik AWT utility library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/ext/awt/**/*.class"/>
        <include name="${package-prefix}/ext/swing/**/*.class"/>
        <exclude name="${package-prefix}/ext/awt/image/codec/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/ext/awt/image/**"/>
        <include name="${package-prefix}/ext/swing/**"/>
        <exclude name="${package-prefix}/ext/awt/image/codec/**/properties"/>
      </fileset>
    </jar>
  </target>


  <!-- Codecs (dependencies: awt-util, transcoder) -->
  <target name="codec-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-codec.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik image codecs"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/ext/awt/image/codec/util/*.class"/>
        <include name="${package-prefix}/ext/awt/image/codec/png/*.class"/>
        <include name="${package-prefix}/ext/awt/image/codec/imageio/*.class"
                 unless="sun-codecs.present"/>
        <include name="${package-prefix}/ext/awt/image/codec/tiff/*.class"
                 if="sun-codecs.present"/>
        <include name="${package-prefix}/ext/awt/image/codec/jpeg/*.class"
                 if="sun-codecs.present"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/ext/awt/image/codec/**/properties"/>
        <include name="META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter"/>
        <include name="META-INF/services/org.apache.batik.ext.awt.image.spi.RegistryEntry"/>
      </fileset>
    </jar>
  </target>


  <!-- SVGGraphics2D (dependencies: util, awt-util) -->
  <target name="svggen-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-svggen.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG generator"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/svggen/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/svggen/font/resources/**"/>
      </fileset>
    </jar>
  </target>

  <!-- SVGGraphics2D (dependencies: util, awt-util) -->
  <target name="svggen-full-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-svggenfull.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG generator plus dependencies"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/svggen/**/*.class"/>
        <include name="${package-prefix}/util/Base64*.class"/>
        <include name="${package-prefix}/ext/awt/image/codec/*ImageEncoder.class"/>
        <include name="${package-prefix}/ext/awt/g2d/*.class"/>
        <include name="${package-prefix}/util/*Constants.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/svggen/font/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- GUI Util (dependencies: none) -->
  <target name="gui-util-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-gui-util.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik GUI utility library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/util/gui/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/util/gui/**/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- DOM Level 3 (dependencies: ext, util) -->
  <target name="dom-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-dom.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik DOM Level 3 implementation"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/dom/*.class"/>
        <include name="${package-prefix}/dom/events/*.class"/>
        <include name="${package-prefix}/dom/traversal/*.class"/>
        <include name="${package-prefix}/dom/util/*.class"/>
        <include name="${package-prefix}/dom/xbl/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/dom/resources/*"/>
        <include name="${package-prefix}/dom/events/resources/**"/>
        <include name="${package-prefix}/dom/traversal/resources/**"/>
        <include name="${package-prefix}/dom/util/resources/**"/>
        <include name="${package-prefix}/dom/xbl/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- CSS Engine (dependencies: ext, util) -->
  <target name="css-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-css.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik CSS engine"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/css/dom/*.class"/>
        <include name="${package-prefix}/css/engine/*.class"/>
        <include name="${package-prefix}/css/engine/sac/*.class"/>
        <include name="${package-prefix}/css/engine/value/*.class"/>
        <include name="${package-prefix}/css/engine/value/css2/*.class"/>
        <include name="${package-prefix}/css/engine/value/svg/*.class"/>
        <include name="${package-prefix}/css/engine/value/svg12/*.class"/>
        <include name="${package-prefix}/css/parser/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/css/dom/resources/**"/>
        <include name="${package-prefix}/css/engine/resources/**"/>
        <include name="${package-prefix}/css/engine/sac/resources/**"/>
        <include name="${package-prefix}/css/engine/value/resources/**"/>
        <include name="${package-prefix}/css/engine/value/css2/resources/**"/>
        <include name="${package-prefix}/css/engine/value/svg/resources/**"/>
        <include name="${package-prefix}/css/engine/value/svg12/resources/**"/>
        <include name="${package-prefix}/css/parser/resources/**"/>
      </fileset>
    </jar>
  </target>

  <!-- SVG DOM (dependencies: ext, DOM, CSS, util) -->
  <target name="svg-dom-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-svg-dom.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG DOM implementation"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/dom/anim/*.class"/>
        <include name="${package-prefix}/dom/svg/*.class"/>
        <include name="${package-prefix}/dom/svg12/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/dom/svg/resources/**"/>
        <include name="${package-prefix}/dom/svg12/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- GVT (dependencies: util, awt-util) -->
  <target name="gvt-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-gvt.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik GVT library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/gvt/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/gvt/**/resources/*"/>
      </fileset>
    </jar>
  </target>


  <!-- Parser (dependencies: util) -->
  <target name="parser-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-parser.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik parser library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/parser/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/parser/**/resources/*"/>
      </fileset>
    </jar>
  </target>


  <!-- Script (dependencies: util) -->
  <target name="script-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-script.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik script library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/script/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/script/**/resources/*"/>
        <include name="META-INF/services/org.apache.batik.script.InterpreterFactory"/>
      </fileset>
    </jar>
  </target>


  <!-- Transcoder (dependencies: all) -->
  <target name="transcoder-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-transcoder.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik transcoder"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/transcoder/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/transcoder/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- XML (dependencies: util) -->
  <target name="xml-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-xml.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik XML utility library"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/xml/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/xml/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- Bridge (dependencies: all) -->
  <target name="bridge-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-bridge.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik bridge"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/bridge/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/bridge/BrokenLink.svg"/>
        <include name="${package-prefix}/bridge/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- Swing (dependencies: all) -->
  <target name="swing-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-swing.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Swing components"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/swing/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/swing/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- Animation (dependencies: dom, util, xml, parser) -->
  <target name="anim-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-anim.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik animation"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/anim/*.class"/>
        <include name="${package-prefix}/anim/timing/*.class"/>
        <include name="${package-prefix}/anim/values/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/anim/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- Extensions (dependencies: all) -->
  <target name="extension-jar" depends="init, compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-extension.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik extensions"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="META-INF/services/org.apache.batik.bridge.BridgeExtension"/>
        <include name="META-INF/services/org.apache.batik.dom.DomExtension"/>
      </fileset>
      <fileset dir="${dest}">
        <include name="${package-prefix}/extension/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/extension/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- SVG Pretty-printer (dependencies: ???) -->
  <target name="svg-pp-jar" depends="init, compile, prepare-build">
    <jar manifest="${src}/${project}-pp.mf"
         jarfile="${build}/${project}-svgpp.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik XML pretty printer"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/svgpp/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/svgpp/**/resources/**"/>
      </fileset>
    </jar>
  </target>

  <!-- SVG Slide-show (dependencies: ???) -->
  <target name="svg-slideshow-jar" depends="init, compile, prepare-build">
    <jar manifest="${src}/${project}-slideshow.mf"
         jarfile="${build}/${project}-slideshow.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG slide show tool"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/slideshow/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/slideshow/**/resources/**"/>
      </fileset>
    </jar>
  </target>


  <!-- Squiggle (dependencies: all) -->
  <target name="squiggle-jar" depends="init, compile, prepare-build">
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.classes.policy"/>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.bin.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"/>
    <jar manifest="${src}/${project}-browser.mf"
         jarfile="${build}/${project}-squiggle.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Squiggle SVG browser"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/svgbrowser/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/svgbrowser/**/resources/**"/>
        <exclude name="${package-prefix}/apps/svgbrowser/resources/squiggle.xsl"/>
        <exclude name="${package-prefix}/apps/svgbrowser/resources/squiggle.svg"/>
      </fileset>
    </jar>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.bin.policy"/>
    <move file="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.classes.policy"
          tofile="${resources}/${package-prefix}/apps/svgbrowser/resources/svgbrowser.policy"/>
  </target>

  <target name="squiggle-ext-jar" depends="init, squiggle-jar">
     <mkdir dir="${build}/extensions"/>
     <jar manifest="${src}/${project}-browser-ext.mf"
          jarfile="${build}/extensions/${project}-squiggle-ext.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Squiggle SVG browser with extensions"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="META-INF/services/**"/>
      </fileset>
     </jar>
  </target>

  <!-- Squiggle - SVG Browser (dependencies: all) -->
  <target name="svg-browser-jar" depends="init, squiggle-jar"/>

  <!-- Rasterizer (dependencies: all except GUI util) -->
  <target name="rasterizer-jar" depends="init, compile, prepare-build">
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.classes.policy"/>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.bin.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"/>
    <jar manifest="${src}/${project}-rasterizer.mf"
         jarfile="${build}/${project}-rasterizer.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG rasterizer"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/rasterizer/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="${package-prefix}/apps/rasterizer/**/resources/**"/>
      </fileset>
    </jar>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.bin.policy"/>
    <move file="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.classes.policy"
          tofile="${resources}/${package-prefix}/apps/rasterizer/resources/rasterizer.policy"/>
  </target>

  <target name="rasterizer-ext-jar" depends="init, rasterizer-jar">
     <mkdir dir="${build}/extensions"/>
     <jar manifest="${src}/${project}-rasterizer-ext.mf"
          jarfile="${build}/extensions/${project}-rasterizer-ext.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik SVG rasterizer with extensions"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${resources}" excludes="**/.svn/">
        <include name="META-INF/services/**"/>
      </fileset>
     </jar>
  </target>

  <!-- batik-ttf2svg.jar (dependencies: all) -->
  <target name="ttf2svg-jar" depends="init, compile, prepare-build">
    <jar manifest="${src}/${project}-ttf2svg.mf"
         jarfile="${build}/${project}-ttf2svg.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik TrueType to SVG Font converter"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/ttf2svg/**/*.class"/>
      </fileset>
    </jar>
  </target>

  <!-- batik.jar (dependencies: all) -->
  <target name="root-jar" depends="init, compile, prepare-build">
    <jar manifest="${src}/${project}.mf" jarfile="${build}/${project}.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
    </jar>
  </target>

  <!-- regard.jar : A jar containing the regard test infrastructure. -->
  <!-- This jar only contains the generic parts of the Batik test    -->
  <!-- infrastructure.                                               -->
  <target name="regard-jar" depends="init, compiletest, prepare-build">
    <jar jarfile="regard.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik Regard regression testing tool"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <fileset dir="${dest}">
        <include name="${package-prefix}/test/*.class"/>
        <include name="${package-prefix}/test/xml/*.class"/>
        <include name="${package-prefix}/i18n/Localizable.class"/>
        <include name="${package-prefix}/i18n/LocalizableSupport.class"/>
        <include name="${package-prefix}/i18n/LocaleGroup.class"/>
        <include name="${package-prefix}/util/XMLConstants.class"/>
      </fileset>
      <fileset dir="${test-resources}">
        <include name="${package-prefix}/test/resources/*.properties"/>
        <include name="${package-prefix}/test/xml/resources/*.properties"/>
      </fileset>
    </jar>
  </target>

  <!-- imageCodecs.jar : A jar containing the image codecs -->
  <target name="imageCodecs-jar" depends="init, compiletest, prepare-build">
    <jar jarfile="imageCodecs.jar">
      <manifest>
        <attribute name="Implementation-Title" value="Batik image codecs"/>
        <attribute name="Implementation-Version" value="${completeVersion}${svn-revision-suffix}"/>
        <attribute name="Implementation-Vendor" value="The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)"/>
        <attribute name="Build-Id" value="${build.id}"/>
      </manifest>
      <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
      <fileset dir="${dest}">
        <include name="${package-prefix}/ext/awt/image/codec/*.class"/>
      </fileset>
      <fileset dir="${test-resources}">
        <include name="${package-prefix}/ext/awt/image/codec/resources/*.properties"/>
      </fileset>
    </jar>
  </target>

  <!-- Applications ....................................................... -->
  <target name="squiggle" depends="init, compile"
          description="Runs Squiggle - the SVG browser">
    <condition property="squiggle-suffix" value="osx" else="others">
      <os name="Mac OS X"/>
    </condition>
    <antcall target="squiggle-${squiggle-suffix}"/>
  </target>

  <target name="squiggle-osx" depends="appbundle">
    <exec executable="open">
      <arg value="${app}"/>
    </exec>
  </target>

  <target name="squiggle-others">
    <java fork="yes" 
          classname="${class-prefix}.apps.svgbrowser.Main">
<!--          jvm="C:\Documents and Settings\<user>\.netbeans\4.0\modules\profiler-ea-vm\jre\bin\java"> -->
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
      <arg line="${args}"/> 
      <!-- <jvmarg value="-Xmx512m"/>  <jvmarg value="-Xms64m"/> -->
      <!-- <jvmarg value="-Djava.security.debug=all"/>  
           <jvmarg value="-verbose"/> -->
     <!-- 
      <jvmarg value="-Djava.security.debug=access failure"/> 
      <jvmarg value="-Djava.security.debug=policy"/> 
      <jvmarg value="-Djava.security.manager"/> 
      <jvmarg value="-Djava.security.policy=resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy"/> 
      -->
    </java>
  </target>

  <target name="svgbrowser" depends="squiggle"
          description="Runs Squiggle - the SVG browser"/>

  <target name="svgrasterizer" depends="init, compile"
          description="Runs the SVG rasterizer">
    <java fork="yes"
          classname="${class-prefix}.apps.rasterizer.Main">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
<!--      <jvmarg value="-Xmx512m"/>  <jvmarg value="-Xms64m"/>  -->
<!--      <jvmarg value="-Djava.awt.headless=true"/>  -->
      <arg line="${args}"/>
    </java>
  </target>

  <target name="svgpp" depends="init, compile"
          description="Runs the SVG pretty-printer">
    <java fork="yes"
          classname="${class-prefix}.apps.svgpp.Main">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
      <arg line="${args}"/>
    </java>
  </target>

  <target name="testdirs" depends="init"
          description="Created directories needed for test suite">

    <mkdir dir="${test-reports}"/>
    <mkdir dir="${test-reports}/style"/>
    <mkdir dir="${test-reports}/images"/>
    <copy todir="${test-reports}/style">
      <fileset dir="${test-resources}/org/apache/batik/test/svg/resources/style"/>
    </copy>
    <copy todir="${test-reports}/images">
      <fileset dir="${test-resources}/org/apache/batik/test/svg/resources/images"/>
    </copy>

    <mkdir dir="${test-references}/samples/candidate-variation"/>
    <mkdir dir="${test-references}/samples/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/coordinates/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/coordinates/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/fonts/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/fonts/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/masking/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/masking/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/paints/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/paints/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/shapes/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/shapes/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/styling/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/styling/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/color/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/color/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/filters/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/filters/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/linking/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/linking/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/painting/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/painting/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/rendering/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/rendering/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/structure/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/structure/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/text/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/text/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/interactivity/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/interactivity/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec/scripting/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec/scripting/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec12/filters/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec12/filters/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec12/paints/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec12/paints/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec12/structure/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec12/structure/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec12/structure/opera/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec12/structure/opera/candidate-reference"/>
    <mkdir dir="${test-references}/samples/tests/spec12/text/candidate-variation"/>
    <mkdir dir="${test-references}/samples/tests/spec12/text/candidate-reference"/>
    <mkdir dir="${test-references}/samples/extensions/candidate-variation"/>
    <mkdir dir="${test-references}/samples/extensions/candidate-reference"/>
    <mkdir dir="${test-references}/samples/extensions/opera/candidate-variation"/>
    <mkdir dir="${test-references}/samples/extensions/opera/candidate-reference"/>
    <mkdir dir="${test-references}/svgbe/candidate-variation"/>
    <mkdir dir="${test-references}/svgbe/candidate-reference"/>
    <mkdir dir="${test-references}/org/apache/batik/transcoder/wmf/candidate"/>
    <mkdir dir="${test-references}/org/apache/batik/svggen/candidate-ref"/>
    <mkdir dir="${test-references}/org/apache/batik/svggen/rendering/candidate-variation"/>
    <mkdir dir="${test-references}/org/apache/batik/svggen/rendering/candidate-reference"/>
    <mkdir dir="${test-references}/org/apache/batik/gvt/candidate"/>
    <mkdir dir="${test-references}/org/apache/batik/gvt/variation"/>
    <mkdir dir="${test-references}/org/apache/batik/ext/awt/geom/candidate"/>
    <mkdir dir="${test-references}/org/apache/batik/ext/awt/geom/variation"/>
    <mkdir dir="${test-references}/org/apache/batik/transcoder/image/candidate-reference"/>
    <mkdir dir="${test-references}/org/apache/batik/transcoder/image/candidate-variation"/>
    <mkdir dir="${test-references}/test-resources/org/apache/batik/test/svg/candidate-variation"/>
    <mkdir dir="${test-references}/test-resources/org/apache/batik/test/svg/candidate-reference"/>

  </target>

  <target name="ttf2svg" depends="init, compile, testdirs"
          description="converts selected glyphs from a True Type Font file to the SVG Font format">
    <java fork="yes"
          classname="${class-prefix}.apps.ttf2svg.Main">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
      <arg line="${args}"/>
    </java>
  </target>

  <target name="regard" depends="init, compiletest, testdirs, testjars"
          description="Runs test suite whose file or uri is passed as an input">
    <java fork="yes"
          classname="${class-prefix}.test.xml.XMLTestSuiteRunner">
<!-- Using -Xincgc makes the memory leak tests _much_ more accurate but
     Also slows down the regard run by 3-4x,  In general I suggest running
     just the memory leak tests with -Xincgc, I might also experiment with
     a higher -Xms setting. -->
<!--      <jvmarg value="-Xincgc"/> -->
<!--      <jvmarg value="-Xrunhprof:format=b"/> -->
<!--      <jvmarg value="-Xrunhprof:net=localhost:1234,format=b"/> -->
      <jvmarg value="-Xmx256m"/>  <jvmarg value="-Xms64m"/>
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
        <pathelement location="resources"/>
        <pathelement location="test-resources"/>
      </classpath>
      <arg line="test-resources/org/apache/batik/test/regard.xml ${args}"/>
    </java>
  </target>

  <target name="regard.manual" depends="init, compiletest, testdirs, testjars"
          description="Runs test suite whose file or uri is passed as an input">
    <java fork="yes"
          classname="${class-prefix}.test.xml.XMLTestSuiteRunner">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
        <pathelement location="resources"/>
        <pathelement location="test-resources"/>
      </classpath>
      <arg line="test-resources/org/apache/batik/test/regardManual.xml ${args}"/>
    </java>
  </target>

  <target name="showpainter" depends="init, compiletest, testdirs"
          description="Runs test suite whose file or uri is passed as an input">
    <java fork="yes"
          classname="${class-prefix}.svggen.JPainterCompare">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
        <pathelement location="resources"/>
        <pathelement location="test-resources"/>
      </classpath>
      <arg line="${args}"/>
    </java>
  </target>

  <target name="runtestsuite" depends="init, compiletest, testdirs"
          description="Runs test suite whose file or uri is passed as an input">
    <mkdir dir="${test-reports}"/>
    <java fork="yes"
          classname="${class-prefix}.test.xml.XMLTestSuiteRunner">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
        <pathelement location="resources"/>
        <pathelement location="test-resources"/>
      </classpath>
      <arg line="${args}"/>
    </java>
  </target>

  <target name="runtest" depends="init, compiletest, testdirs"
          description="Runs test whose class name is passed as an input">
    <java fork="yes"
          classname="${args}">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <path refid="libs-build-classpath"/>
        <pathelement location="resources"/>
        <pathelement location="test-resources"/>
      </classpath>
    </java>
  </target>

  <!-- Documentation ...................................................... -->
  <target name="html" depends="javadoc, htmldoc"
          description="Generates the HTML documentation, including javadocs, in ${build}/docs/"/>
  <target name="htmldoc" depends="init, forrest"
          description="Generates HTML documentation">
    <mkdir dir="${docs}"/>
    <copy todir="${docs}">
      <fileset dir="${forrest-build}/site" excludes="doap.rdf, download.cgi"/>
    </copy>
  </target>

  <target name="site" depends="site-javadoc, sitedoc"/>
  <target name="sitedoc" depends="init, forrest"
          description="Generates the http://xmlgraphics.apache.org/batik/ site">
    <mkdir dir="${site}"/>
    <copy todir="${site}">
      <fileset dir="${forrest-build}/site"/>
    </copy>
  </target>

  <target name="site-javadoc" depends="init, javadoc">
    <mkdir dir="${site}/javadoc"/>
    <copy todir="${site}/javadoc">
      <fileset dir="${docs}/javadoc"/>
    </copy>
  </target>

  <target name="forrest" depends="init">
    <property name="forrest-build.dir" value="${cwd}${file.separator}${forrest-build}"/>
    <exec executable="${forrest.call}">
      <arg line="${forrest.args}"/>
      <arg value="-Dproject.build-dir=${forrest-build.dir}"/>
      <arg value="-Dproject.temp-dir=${forrest-build.dir}${file.separator}tmp"/>
      <arg value="-Dproject.webapp=${forrest-build.dir}${file.separator}webapp"/>
    </exec>
    <delete dir="${forrest-build}/tmp"/>
    <!-- Ideally Forrest would put its log files in ${forrest-build}, but it
         insists on creating a directory called 'build' for these. -->
    <delete dir="build"/>
  </target>

  <target name="javadocs" depends="javadoc"/>
  <target name="javadoc" depends="init">
    <mkdir dir="${docs}/javadoc"/>
    <javadoc packagenames="${class-prefix}.*,
                           org.xml.*,
                           org.w3c.css.*,
                           org.w3c.dom.*"
             excludepackagenames="${javadoc-exclusions}"
             maxmemory="128m"
             destdir="${docs}/javadoc"
             encoding="UTF-8"
             docencoding="UTF-8"
             author="false"
             version="false"
             use="true"
             splitindex="true"
             windowtitle="${Project} Javadoc"
             doctitle="${Project} API Specification ${completeVersion}"
             bottom="Copyright &#169; ${year} &lt;a href='http://www.apache.org/'&gt;Apache Software Foundation&lt;/a&gt;. All Rights Reserved.">
      <arg value="-notimestamp"/>
      <sourcepath path="${src}"/>
      <classpath refid="libs-classpath"/>
      <link href="${dom.javadoc}"/>
      <link href="${jdk.javadoc}"/>
      <link href="${rhino.javadoc}"/>
    </javadoc>
  </target>

  <target name="prepare-publish" depends="init">
    <mkdir dir="${site}"/>
    <mkdir dir="${forrest-build}"/>
    <exec executable="svn" dir="${site}" output="${forrest-build}/publish.info"
          failonerror="false">
      <arg value="info"/>
    </exec>
    <loadfile srcfile="${forrest-build}/publish.info" property="publish.info">
      <filterchain>
        <linecontains>
          <contains value="URL:"/>
        </linecontains>
        <tokenfilter>
          <replacestring from="URL: " to=""/>
        </tokenfilter>
        <striplinebreaks/>
      </filterchain>
    </loadfile>
    <delete file="${forrest-build}/publish.info"/>
    <condition property="publish-checkout-task" value="prepare-publish-up" else="prepare-publish-co">
      <equals arg1="${publish.info}" arg2="${deploy.svn.url}"/>
    </condition>
    <antcall target="${publish-checkout-task}"/>
  </target>

  <target name="prepare-publish-up">
    <exec executable="svn" dir="${site}" failonerror="true">
      <arg value="update"/>
    </exec>
  </target>

  <target name="prepare-publish-co">
    <exec executable="svn" dir="." failonerror="true">
      <arg value="checkout"/>
      <arg value="${deploy.svn.url}"/>
      <arg value="${site}"/>
    </exec>
  </target>

  <target name="do-publish" depends="init">
    <property name="deploy.svn.svn-filestoadd" location="${forrest-build}/publish.toadd"/>
    <exec executable="svn" dir="${site}" output="${deploy.svn.svn-filestoadd}"
          failonerror="true">
      <arg value="status"/>
    </exec>
    <replace file="${deploy.svn.svn-filestoadd}" token="?      " value=""/>
    <replace file="${deploy.svn.svn-filestoadd}" token="M      " value=""/>
    <exec executable="svn" dir="${site}" failonerror="true">
      <arg value="add"/>
      <arg value="--targets"/>
      <arg value="${deploy.svn.svn-filestoadd}"/>
    </exec>
    <exec executable="svn" dir="${site}" failonerror="true">
      <arg value="commit"/>
      <arg value="-m"/>
      <arg value="Automatic publish"/>
    </exec>
    <delete file="${forrest-build}/publish.toadd}"/>
    <echo message=""/>
    <echo message="Site has been committed to .../repos/asf/xmlgraphics/site/deploy/batik/."/>
    <echo message=""/>
    <echo message="Don't forget to run 'svn up' from /www/xmlgraphics.apache.org/batik on"/>
    <echo message="people.apache.org now."/>
  </target>

  <target name="publishdoc" depends="prepare-publish,sitedoc,do-publish"
          description="Generates the http://xmlgraphics.apache.org/batik/ site without the javadocs and commits it to SVN"/>

  <target name="publish" depends="prepare-publish,site,do-publish"
          description="Generates the http://xmlgraphics.apache.org/batik/ site including the javadocs and commits it to SVN"/>

  <target name="clean-docs" depends="init">
    <delete dir="${forrest-build}"/>
    <delete dir="${docs}"/>
    <delete dir="${site}"/>
    <delete dir="build"/>  <!-- In case it's left behind by Forrest. -->
  </target>

  <!-- Generates splash screens for the browser ........................... -->

  <target name="splash" depends="init, compile" 
          description="Updates browser splash screen">
    <java fork="yes"
          classname="${class-prefix}.apps.rasterizer.Main">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
      <arg line="${resources}/org/apache/batik/apps/svgbrowser/resources/squiggle.svg"/>
    </java>
  </target>

  <target name="jarDependImg" depends="init, compile"
          description="Updates jarDependImg PNG">
    <java fork="yes"
          classname="${class-prefix}.apps.rasterizer.Main">
      <classpath>
        <pathelement location="${dest}"/>
        <path refid="libs-classpath"/>
        <pathelement location="resources"/>
      </classpath>
      <arg line="documentation-sources/resources/images/jarDependImg.source.svg -d documentation-sources/resources/images/jarDependImg.png"/>
    </java>
  </target>

  <!-- Cleans everything .................................................. -->
  <target name="clean"
          depends="init, clean-compile, clean-docs, clean-test"
          description="Cleans everything">
    <delete dir="${build}"/>
    <delete file="${project}-${completeVersion}.zip"/>
    <delete file="${project}-docs-${completeVersion}.zip"/>
    <delete file="${project}-src-${completeVersion}.zip"/>
    <delete file="${project}-${completeVersion}.tar.gz"/>
    <delete file="${project}-docs-${completeVersion}.tar.gz"/>
    <delete file="${project}-src-${completeVersion}.tar.gz"/>
  </target>
</project>
