blob: 0ff5e2d589142933fdffca47ab145423c9cef36e [file] [log] [blame]
<?xml version="1.0"?>
<!-- ===================================================================
Read the README file for build instruction.
Authors:
Stefano Mazzocchi <stefano@apache.org>
Anupam Bagchi <abagchi@apache.org>
Andy Clark, IBM
Copyright:
Copyright (c) 2000-2002 The Apache Software Foundation.
$Id$
==================================================================== -->
<project default="usage" basedir=".">
<!-- enable compilation under IBM JDK 1.4 -->
<taskdef name="xjavac" classname="org.apache.xerces.util.XJavac"/>
<!-- Allow properties following these statements to be overridden -->
<!-- Note that all of these don't have to exist. They've just been defined
incase they are used. -->
<property file="build.properties"/>
<property file=".ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<property file="default.properties"/>
<target name="init">
<property name='parser.Name' value='Xerces-J'/>
<property name='parser.name' value='xerces-j'/>
<property name='parser.shortname' value='xerces'/>
<property name='parser.Version' value='2.2.1'/>
<property name='parser.version' value='2.2.1'/>
<property name='parser_version' value='2_2_1'/>
<property name='deprecatedjar.parser' value='xerces.jar'/>
<property name='jar.apis' value='xmlParserAPIs.jar'/>
<property name='jar.parser' value='xercesImpl.jar'/>
<property name='jar.samples' value='xercesSamples.jar'/>
<property name='jar.dv' value='xercesDV.jar'/>
<property name="year" value="1999-2002"/>
<property name="copyright" value="Copyright &#169; ${year} Apache XML Project. All Rights Reserved."/>
<echo message= "---------------- ${parser.Name} ${parser.Version} [${year}] ---------------"/>
<!-- changed made to synchronize with a patch from Sam Ruby (<rubys@apache.org>) to Xerces1
<property name="build.compiler" value="classic"/> -->
<property name="debug" value="off"/>
<property name="optimize" value="on"/>
<property name="deprecation" value="off"/>
<property name="src.dir" value="./src"/>
<property name="tools.dir" value="./tools"/>
<property name="docs.dir" value="./docs"/>
<property name="data.dir" value="./data"/>
<property name="samples.dir" value="./samples"/>
<property name="tests.dir" value="./tests"/>
<property name="tools.dir" value="./tools"/>
<property name="docs.book" value="${docs.dir}/docs-book.xml"/>
<property name="packages" value="org.*"/>
<property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
<property name="doc.generator.package" value="${tools.dir}/stylebook-1.0-b2.jar"/>
<property name="build.dir" value="./build"/>
<property name="build.src" value="${build.dir}/src"/>
<property name="build.dest" value="${build.dir}/classes"/>
<property name="build.docs" value="${build.dir}/docs"/>
<property name="build.samples" value="${build.dir}/samples"/>
<property name="build.tests" value="${build.dir}/tests"/>
<property name="build.data" value="${build.dir}/data"/>
<property name="build.javadocs" value="${build.dir}/docs/javadocs"/>
<property name="distsrc.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
<property name="disttools.dir" value="${build.dir}/tools"/>
<property name="distbin.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
<filter token="year" value="${year}"/>
<filter token="version" value="${parser.Version}"/>
<filter token="date" value="${TODAY}"/>
<filter token="log" value="true"/>
<filter token="verbose" value="true"/>
</target>
<!-- =================================================================== -->
<!-- Help on usage -->
<!-- =================================================================== -->
<target name="usage">
<echo message=""/>
<echo message=""/>
<echo message="${parser.Name} Build instructions"/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=" available targets are:"/>
<echo message=""/>
<echo message=" jar --> generates the xercesImpl.jar file"/>
<echo message=" sampjar --> generates the xercesSamples.jar file"/>
<echo message=" apijar --> generates the xmlParserAPIs.jar file"/>
<echo message=" jars --> generates xercesImpl, xercesSamples &amp; xmlParserAPIs jars"/>
<echo message=" jar-dom3 --> 'jar' + DOM Level 3 support"/>
<echo message=" sampjar-dom3 --> 'sampjar' + DOM Level 3 support"/>
<echo message=" apijar-dom3 --> 'apijar' + DOM Level 3 support."/>
<echo message=" jars-dom3 --> 'jars' + DOM Level 3 support."/>
<echo message=" docs --> generates the HTML documentation"/>
<echo message=" javadocs --> generates the API docs (needs Java 1.2 or higher)"/>
<echo message=" samples --> compiles the samples source code"/>
<echo message=" samples-dom3 --> 'samples' + DOM Level 3 support."/>
<echo message=" compile --> compiles the source code"/>
<echo message=" compile-dom3 --> 'compile' + DOM Level 3 support."/>
<echo message=" deprecatedjar --> generates the xerces.jar file"/>
<echo message=" tests --> compiles the tests source code"/>
<echo message=" tests-dom3 --> 'tests' + DOM Level 3 support."/>
<echo message=" deprecatedjars --> generates xerces.jar and samples jar"/>
<echo message=" dtdjars --> generates xercesImpl containing no schema support or WML/HTML DOM and xercesSamples &amp; xmlParserAPIs jars"/>
<echo message=" xml11jars --> EXPERIMENTAL! Generates xercesImpl containing very preliminary XML 1.1 support, as well as xercesSamples &amp; xmlParserAPIs jars"/>
<echo message=" dvjar --> generates a Schema datatype jar"/>
<echo message=" pack-tools --> generates the tools distributions (zip and tar.gz)"/>
<echo message=" pack-src --> generates the source distributions (zip and tar.gz)"/>
<echo message=" deprecated-bin --> generates the binary distributions (zip and tar.gz)"/>
<echo message=" pack-bin --> generates the binary distributions (zip and tar.gz)"/>
<echo message=" all --> generates the binary, source and tools distributions"/>
<echo message=" deprecatedall --> generates the binary, source and tools distributions with the xerces.jar"/>
<echo message=" test --> runs a sanity test on the sample files"/>
<echo message=" test-dom3 --> 'test' + DOM Level 3 support."/>
<echo message=" clean --> cleans up all generated files and directories"/>
<echo message=" usage --> provides help on using the build tool (default)"/>
<echo message=""/>
<echo message=" See comments inside the build.xml file for more details."/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=""/>
</target>
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<target name="prepare" depends="init">
<mkdir dir="${build.dir}"/>
</target>
<!-- =================================================================== -->
<!-- directory creation and file copying common to all configurations -->
<!-- =================================================================== -->
<target name="prepare-common" depends="prepare">
<!-- create directories -->
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<mkdir dir="${build.dest}/META-INF"/>
<mkdir dir="${build.dest}/META-INF/services"/>
<copy file="${src.dir}/org/apache/xerces/jaxp/javax.xml.parsers.DocumentBuilderFactory"
tofile="${build.dest}/META-INF/services/javax.xml.parsers.DocumentBuilderFactory"/>
<copy file="${src.dir}/org/apache/xerces/jaxp/javax.xml.parsers.SAXParserFactory"
tofile="${build.dest}/META-INF/services/javax.xml.parsers.SAXParserFactory"/>
<copy file="${src.dir}/org/apache/xerces/parsers/org.xml.sax.driver"
tofile="${build.dest}/META-INF/services/org.xml.sax.driver"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the source code -->
<!-- =================================================================== -->
<target name="prepare-src" depends="prepare-common">
<copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration"
tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}"
includes="javax/**, org/**"
excludes="**/classfiles_updated **/CVS* **/.#* **/XMLMessages.java
**/DatatypeContentModel.java **/ComplexTypeInfo.java
**/v1/** **/v2/**
javax.xml.parsers.ConvertToURI.java
org/apache/xerces/dom3/ls/**">
</fileset>
</copy>
<!-- substitute tokens as needed -->
<replace file="${build.dir}/src/org/apache/xerces/impl/Version.java"
token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the source directory -->
<!-- =================================================================== -->
<target name="compile" depends="prepare-src">
<copy todir="${build.dest}">
<fileset dir="${build.src}"
includes="**/*.res, **/*.properties">
</fileset>
</copy>
<xjavac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"
includeAntRuntime="false"
includeJavaRuntime="false"/>
</target>
<!-- =================================================================== -->
<!-- Creates the omnibus class package -->
<!-- =================================================================== -->
<target name="deprecatedjar" depends="compile">
<jar jarfile="${build.dir}/${deprecatedjar.parser}"
basedir="${build.dest}"
compress="true"
includes="org/**, javax/**,META-INF/**"/>
</target>
<!-- =================================================================== -->
<!-- Creates the implementation class package, excluding DOM Level 3 -->
<!-- =================================================================== -->
<target name="jar" depends="compile">
<jar jarfile="${build.dir}/${jar.parser}"
basedir="${build.dest}"
compress="true"
includes="org/apache/**, META-INF/**
org/w3c/dom/html/HTMLDOMImplementation.class
org/w3c/dom/ls/**
org/w3c/dom/DOMError.class
org/w3c/dom/DOMErrorHandler.class
org/w3c/dom/DOMImplementationSource.class
org/w3c/dom/DOMImplementationRegistry.class
org/w3c/dom/DOMLocator.class
org/w3c/dom/UserDataHandler.class"/>
</target>
<!-- =================================================================== -->
<!-- Creates the API class package, excluding DOM Level 3 -->
<!-- =================================================================== -->
<target name="apijar" depends="compile">
<jar jarfile="${build.dir}/${jar.apis}"
basedir="${build.dest}"
compress="true"
includes="org/xml/**, org/w3c/**, javax/**"
excludes="org/w3c/dom/ls/**
org/w3c/dom/xpath/**
org/w3c/dom/DOMError.class
org/w3c/dom/DOMErrorHandler.class
org/w3c/dom/DOMImplementationSource.class
org/w3c/dom/DOMImplementationRegistry.class
org/w3c/dom/DOMLocator.class
org/w3c/dom/UserDataHandler.class" />
</target>
<!-- =================================================================== -->
<!-- Compiles the samples -->
<!-- =================================================================== -->
<target name="samples" depends="compile">
<mkdir dir="${build.samples}"/>
<copy todir="${build.samples}" >
<fileset dir="${samples.dir}"
excludes="dom/DOMAddLines.java
dom/DOM3.java" />
</copy>
<xjavac srcdir="${build.samples}"
destdir="${build.dest}"
classpath="${build.dir}/classes"
debug="${debug}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the tests -->
<!-- =================================================================== -->
<target name="tests" depends="samples">
<mkdir dir="${build.tests}"/>
<copy todir="${build.tests}">
<fileset dir="${tests.dir}"
excludes="dom/rename/**, dom/dom3/**, dom/registry/**, dom/mem/**" />
</copy>
<xjavac srcdir="${build.tests}"
destdir="${build.dest}"
classpath="${build.dir}/classes:./tools/junit.jar"
debug="${debug}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Creates the samples package -->
<!-- =================================================================== -->
<target name="sampjar" depends="samples">
<jar jarfile="${build.dir}/${jar.samples}"
basedir="${build.dest}"
compress="true"
includes="dom/**,sax/**,socket/**,ui/**,xni/**"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the docs -->
<!-- =================================================================== -->
<target name="prepare-docs" depends="init">
<mkdir dir="${build.docs}"/>
<mkdir dir="${build.dir}/xdocs"/>
<copy todir="${build.dir}/xdocs">
<fileset dir="${docs.dir}"/>
</copy>
<replace file="${build.dir}/xdocs/dtd/entities.ent"
token="@@VERSION@@" value="${parser.Version}"/>
<replace file="${build.dir}/xdocs/dtd/entities.ent"
token="@@version@@" value="${parser.version}"/>
<replace file="${build.dir}/xdocs/dtd/entities.ent"
token="@@_version_@@" value="${parser_version}"/>
</target>
<!-- =================================================================== -->
<!-- Generate HTML docs -->
<!-- =================================================================== -->
<target name="docs" depends="prepare, prepare-docs">
<echo message="Building docs for ${parser.Name} ${parser.Version} ..." />
<java fork="yes"
classpath="${java.class.path}:${doc.generator.package}:./tools/xalan.jar"
classname="${doc.generator}"
failOnError="yes">
<arg value="targetDirectory=${build.docs}"/>
<arg value="${build.dir}/xdocs/docs-book.xml"/>
<arg value="${build.dir}/xdocs/style"/>
</java>
</target>
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadocs" depends="prepare-src">
<!--
<mkdir dir="${build.javadocs}"/>
<javadoc packagenames="${packages}"
sourcepath="${build.src}"
destdir="${build.javadocs}"
author="true"
version="true"
use="true"
windowtitle="${parser.Name} API"
doctitle="${parser.Name}"
bottom="${copyright}" />
-->
<mkdir dir='${build.dir}/docs/javadocs/api'/>
<javadoc packagenames='javax.xml.parsers,org.w3c.*,org.xml.*'
locale='en_US'
sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/api'
author='true' version='true'
windowtitle='XML Standard API' doctitle='XML Standard API'
bottom='${copyright}'
/>
<mkdir dir='${build.dir}/docs/javadocs/xni'/>
<javadoc packagenames='org.apache.xerces.xni.*'
locale='en_US'
sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/xni'
author='true' version='true'
windowtitle='Xerces Native Interface'
doctitle='Xerces Native Interface'
bottom='${copyright}'
/>
<mkdir dir='${build.dir}/docs/javadocs/dom3-api'/>
<javadoc packagenames='org.apache.xerces.dom3.*'
locale='en_US'
sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/dom3-api'
author='true' version='true'
windowtitle='DOM Level 3 API' doctitle='DOM Level 3 API'
bottom='${copyright}'
/>
<mkdir dir='${build.dir}/docs/javadocs/xerces2'/>
<javadoc packagenames='org.apache.xerces.dom.*,
org.apache.xerces.impl.*,
org.apache.xerces.jaxp,
org.apache.xerces.parsers,
org.apache.xerces.util'
locale='en_US'
sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/xerces2'
author='true' version='true'
windowtitle='Xerces2 Implementation'
doctitle='Xerces2 Implementation'
bottom='${copyright}'
/>
<mkdir dir='${build.dir}/docs/javadocs/other'/>
<javadoc packagenames='org.apache.html.*,
org.apache.wml.*,
org.apache.xml.serialize.*'
locale='en_US'
sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/other'
author='true' version='true'
windowtitle='Other Classes' doctitle='Other Classes'
bottom='${copyright}'
/>
</target>
<!-- =================================================================== -->
<!-- Prepares the source distribution -->
<!-- =================================================================== -->
<target name="pack-src" depends="init">
<echo message="Building the source distribution files (zip,tar)"/>
<delete dir="${distbin.dir}"/>
<mkdir dir="${distsrc.dir}"/>
<mkdir dir="${distsrc.dir}/src"/>
<mkdir dir="${distsrc.dir}/data"/>
<mkdir dir="${distsrc.dir}/docs"/>
<mkdir dir="${distsrc.dir}/samples"/>
<copy todir="${distsrc.dir}/src" >
<fileset
dir="${src.dir}"
includes="**/Makefile, **/Makefile.incl, org/**, javax/**"
excludes="**/CVS*, **/.#*, **/*.class
**/v1/** **/v2/**"
/>
</copy>
<copy todir="${distsrc.dir}/data" >
<fileset
dir="${data.dir}"
excludes="**/CVS*, **/.#*"
/>
</copy>
<copy todir="${distsrc.dir}/docs" >
<fileset
dir="${docs.dir}"
excludes="**/CVS*, **/*.#*, pdf/**, html/**, **/javadocs*"
/>
</copy>
<copy todir="${distsrc.dir}/samples" >
<fileset
dir="${samples.dir}"
excludes="**/CVS*, **/*.#*"
/>
</copy>
<!--<copy file="Makefile" tofile="${distsrc.dir}/Makefile"/>-->
<copy file="LICENSE" tofile="${distsrc.dir}/LICENSE"/>
<copy file="README" tofile="${distsrc.dir}/README"/>
<copy file="Readme.html" tofile="${distsrc.dir}/Readme.html"/>
<copy file="STATUS" tofile="${distsrc.dir}/STATUS"/>
<copy file="TODO" tofile="${distsrc.dir}/TODO"/>
<copy file="ISSUES" tofile="${distsrc.dir}/ISSUES"/>
<copy file="build.xml" tofile="${distsrc.dir}/build.xml"/>
<copy file="${basedir}/build.sh" tofile="${distsrc.dir}/build.sh" />
<chmod file="${distsrc.dir}/build.sh" perm="ugo+rx" />
<copy file="${basedir}/build.bat" tofile="${distsrc.dir}/build.bat" />
<zip zipfile="${build.dir}/${parser.Name}-src.${parser.version}.zip"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**" excludes="*.class"/>
<tar tarfile="${build.dir}/${parser.Name}-src.${parser.version}.tar"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**" excludes="*.class"/>
<gzip zipfile="${build.dir}/${parser.Name}-src.${parser.version}.tar.gz"
src="${build.dir}/${parser.Name}-src.${parser.version}.tar" />
<!-- and why not get rid of the un-gzip'd tarball and save ourselves 15 Mb? -->
<delete file="${build.dir}/${parser.Name}-src.${parser.version}.tar"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the tools distribution -->
<!-- =================================================================== -->
<target name="pack-tools" depends="init">
<echo message="Building the tools distribution files (zip,tar)"/>
<mkdir dir="${disttools.dir}"/>
<copy todir="${disttools.dir}" >
<fileset
dir="${tools.dir}"
includes="**/*.txt, **/*.bat, **/*.jar"
excludes="**/CVS*, **/.#*, **/*.class"
/>
</copy>
<zip zipfile="${build.dir}/${parser.Name}-tools.${parser.version}.zip"
basedir="${build.dir}"
includes="tools/**"/>
<tar tarfile="${build.dir}/${parser.Name}-tools.${parser.version}.tar"
basedir="${build.dir}"
includes="tools/**"/>
<gzip zipfile="${build.dir}/${parser.Name}-tools.${parser.version}.tar.gz"
src="${build.dir}/${parser.Name}-tools.${parser.version}.tar" />
<!-- and why not get rid of the un-gzip'd tarball and save ourselves Mb? -->
<delete file="${build.dir}/${parser.Name}-tools.${parser.version}.tar"/>
<!-- and delete the directory: -->
<delete dir="${disttools.dir}"/>
</target>
<!-- =================================================================== -->
<!-- Prepares common parts of the binary distributions -->
<!-- =================================================================== -->
<target name="pack-bin-common" depends="javadocs, docs, sampjar">
<echo message="Building the binary distribution files (zip,tar)"/>
<delete dir="${distbin.dir}"/>
<mkdir dir="${distbin.dir}"/>
<mkdir dir="${distbin.dir}/data"/>
<mkdir dir="${distbin.dir}/docs"/>
<mkdir dir="${distbin.dir}/docs/javadocs"/>
<mkdir dir="${distsrc.dir}/samples"/>
<copy todir="${distbin.dir}/data" >
<fileset
dir="${data.dir}"
excludes="**/CVS*, **/*.#*"
/>
</copy>
<copy todir="${distbin.dir}/docs" >
<fileset dir="${build.docs}" />
</copy>
<copy todir="${distbin.dir}/docs/javadocs/api" >
<fileset dir="${build.dir}/docs/javadocs/api" />
</copy>
<copy todir="${distbin.dir}/docs/javadocs/xni" >
<fileset dir="${build.dir}/docs/javadocs/xni" />
</copy>
<copy todir="${distbin.dir}/docs/javadocs/xerces2" >
<fileset dir="${build.dir}/docs/javadocs/xerces2" />
</copy>
<copy todir="${distbin.dir}/docs/javadocs/other" >
<fileset dir="${build.dir}/docs/javadocs/other" />
</copy>
<copy file="LICENSE" tofile="${distbin.dir}/LICENSE"/>
<copy file="Readme.html" tofile="${distbin.dir}/Readme.html"/>
<copy file="${build.dir}/${jar.samples}" tofile="${distbin.dir}/${jar.samples}"/>
<copy todir="${distsrc.dir}/samples" >
<fileset
dir="${samples.dir}"
excludes="**/CVS*, **/*.#*"
/>
</copy>
<copydir src="${samples.dir}" dest="${distsrc.dir}/samples" excludes="**/CVS*, **/*.#*"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the binary distribution -->
<!-- =================================================================== -->
<target name="pack-bin" depends="pack-bin-common, jars">
<copy file="${build.dir}/${jar.parser}" tofile="${distbin.dir}/${jar.parser}"/>
<copy file="${build.dir}/${jar.apis}" tofile="${distbin.dir}/${jar.apis}"/>
<zip zipfile="${build.dir}/${parser.Name}-bin.${parser.version}.zip"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**"
excludes="*.class, **/${deprecatedjar.parser}"/>
<tar tarfile="${build.dir}/${parser.Name}-bin.${parser.version}.tar"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**"
excludes="*.class, **/${deprecatedjar.parser}"/>
<gzip zipfile="${build.dir}/${parser.Name}-bin.${parser.version}.tar.gz"
src="${build.dir}/${parser.Name}-bin.${parser.version}.tar" />
<!-- as before, let's kill of the ungzip'd tarball! -->
<delete file="${build.dir}/${parser.Name}-bin.${parser.version}.tar"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the deprecated binary distribution -->
<!-- =================================================================== -->
<target name="deprecated-bin" depends="pack-bin-common, deprecatedjars">
<copy file="${build.dir}/${deprecatedjar.parser}" tofile="${distbin.dir}/${deprecatedjar.parser}"/>
<zip zipfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.zip"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**"
excludes="*.class, **/${jar.parser}, **/${jar.apis}"/>
<tar tarfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar"
basedir="${build.dir}"
includes="${parser.shortname}-${parser_version}/**"
excludes="*.class, **/${jar.parser}, **/${jar.apis}"/>
<gzip zipfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar.gz"
src="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar" />
<!-- as before, let's kill of the ungzip'd tarball! -->
<delete file="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar"/>
</target>
<!-- =================================================================== -->
<!-- Do a sanity test using samples -->
<!-- =================================================================== -->
<target name="test" depends="tests">
<echo message="Performing sanity test for ${parser.Name} ${parser.Version} ..." />
<echo message="Using classpath=&apos;${build.dir}/classes&apos;" />
<echo message="Running sax.Counter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="sax.Counter"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running sax.Writer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="sax.Writer"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running dom.Counter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.Counter"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running dom.Writer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.Writer"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<!--
<echo message="Running DOMFilter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.DOMFilter"
args="-p dom.wrappers.DOMParser ${data.dir}/personal.xml"/>
-->
<!-- The following are samples but not command-line applications.
<echo message="Running IteratorView ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.traversal.IteratorView"
failOnError="yes"
args="${data.dir}/personal.xml"/>
<echo message="Running TreeWalkerView ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.traversal.TreeWalkerView"
failOnError="yes"
args="${data.dir}/personal.xml"/>
<echo message="Running TreeViewer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.TreeViewer"
failOnError="yes"
args="${data.dir}/personal.xml"/>
-->
<echo message="Running dom.DTest ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.DTest"
failOnError="yes">
</java>
<echo message="Running dom.ids.Test ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.ids.Test"
failOnError="yes">
</java>
<echo message="Running dom.serialization.Test ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.serialization.Test"
failOnError="yes"
args="${data.dir}/personal.xml out.xml">
</java>
</target>
<!-- =================================================================== -->
<!-- Builds both deprecated xerces and sample jar files -->
<!-- =================================================================== -->
<target name="deprecatedjars" depends="deprecatedjar, sampjar">
</target>
<!-- =================================================================== -->
<!-- Builds xercesImpl, xmlParserAPIs and sample jar files -->
<!-- =================================================================== -->
<target name="jars" depends="jar, sampjar, apijar">
</target>
<!-- =================================================================== -->
<!-- Builds and packages tools, sources and binary distributions -->
<!-- =================================================================== -->
<target name="all" depends="pack-bin, deprecated-bin, pack-src, pack-tools">
</target>
<!-- =================================================================== -->
<!-- Builds and packages tools, sources and binary distributions -->
<!-- =================================================================== -->
<target name="deprecatedall" depends="pack-src, deprecated-bin, pack-tools">
</target>
<!-- =================================================================== -->
<!-- Cleans everything -->
<!-- =================================================================== -->
<target name="clean" depends="init">
<delete dir="${build.dir}"/>
</target>
<!-- =================================================================== -->
<!-- Creates the dtd implementation class package -->
<!-- (that is, with no schema support or WML/HTML DOM.) -->
<!-- =================================================================== -->
<target name="dtdjar" depends="dtdcompile">
<jar jarfile="${build.dir}/dtd-${jar.parser}"
basedir="${build.dest}"
compress="true"
includes="org/apache/**, META-INF/**"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the dtd source directory -->
<!-- =================================================================== -->
<target name="dtdcompile" depends="dtdprepare-src">
<copy todir="${build.dest}">
<fileset dir="${build.src}"
includes="**/*.res, **/*.properties">
</fileset>
</copy>
<xjavac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the dtd source code package -->
<!-- =================================================================== -->
<target name="dtdprepare-src" depends="prepare-common">
<copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.DTDConfiguration"
tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}"
includes="javax/**, org/**"
excludes="**/classfiles_updated **/CVS* **/.#* **/XMLMessages.java
**/DatatypeContentModel.java **/ComplexTypeInfo.java
**/v1/** **/v2/**
javax.xml.parsers.ConvertToURI.java
org/apache/xerces/impl/xs/**
org/apache/xerces/impl/dv/xs/**
org/apache/xerces/impl/xs/identity/**
org/apache/xerces/impl/xs/traversers/**
org/apache/xerces/impl/xs/models/**
org/apache/xerces/impl/xs/util/**
org/apache/xerces/impl/xs/dom/**
org/apache/xerces/impl/xpath/**
org/apache/xerces/impl/xpath/regex/**
org/apache/xerces/impl/dv/Schema*.java
org/apache/xerces/impl/msg/XMLSchema**
org/apache/xerces/impl/validation/XMLGrammarPoolImpl.java
org/apache/xerces/parsers/DOMASBuilderImpl.java
org/apache/xerces/parsers/StandardParserConfiguration.java
org/apache/xerces/parsers/IntegratedParserConfiguration.java
org/apache/xerces/parsers/XML11Configuration.java
org/apache/xerces/parsers/XMLGrammarCachingConfiguration.java
org/apache/xerces/parsers/CachingParserPool.java
org/apache/xerces/dom/ASModelImpl.java
org/apache/xerces/dom/ASDOMImplementationImpl.java
org/apache/xerces/impl/XML11*.java
org/apache/html/**
org/apache/wml/**
">
</fileset>
</copy>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}"
includes="org/apache/xerces/impl/xs/psvi/**,
org/apache/xerces/impl/xs/XSTypeDecl.java
">
</fileset>
</copy>
<!-- substitute tokens as needed -->
<replace file="${build.dir}/src/org/apache/xerces/impl/Version.java"
token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
</target>
<!-- =================================================================== -->
<!-- Builds xercesImpl (dtd), xmlParserAPIs, and sample jars -->
<!-- =================================================================== -->
<target name="dtdjars" depends="dtdjar, sampjar, apijar">
</target>
<!-- =================================================================== -->
<!-- Creates the XML 1.1-enabled implementation class package, excluding DOM Level 3 -->
<!-- =================================================================== -->
<target name="xml11jar" depends="compile">
<copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.XML11Configuration"
tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"
overwrite="yes"/>
<jar jarfile="${build.dir}/xml11-${jar.parser}"
basedir="${build.dest}"
compress="true"
includes="org/apache/**, META-INF/**
org/w3c/dom/ls/**
org/w3c/dom/DOMError.class
org/w3c/dom/DOMErrorHandler.class
org/w3c/dom/DOMImplementationSource.class
org/w3c/dom/DOMImplementationRegistry.class
org/w3c/dom/DOMLocator.class
org/w3c/dom/UserDataHandler.class"/>
</target>
<!-- =================================================================== -->
<!-- Builds XML 1.1-enabled xercesImpl, xmlParserAPIs and sample jar files -->
<!-- =================================================================== -->
<target name="xml11jars" depends="xml11jar, sampjar, apijar">
</target>
<!-- =================================================================== -->
<!-- Build xercesDV jar -->
<!-- =================================================================== -->
<target name="dvjar" depends="dvcompile">
<jar jarfile="${build.dir}/${jar.dv}"
basedir="${build.dest}"
compress="true"
includes="org/apache/xerces/**"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the dv source directory -->
<!-- =================================================================== -->
<target name="dvcompile" depends="dvprepare-src">
<copy todir="${build.dest}">
<fileset dir="${build.src}"
includes="**/*.properties">
</fileset>
</copy>
<xjavac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the dv source code package -->
<!-- =================================================================== -->
<target name="dvprepare-src">
<!-- copy src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}"
includes="org/apache/xerces/impl/dv/**,
org/apache/xerces/impl/msg/XMLSchema**,
org/apache/xerces/impl/xpath/regex/**,
org/apache/xerces/impl/xs/XSTypeDecl.java,
org/apache/xerces/impl/xs/psvi/StringList.java,
org/apache/xerces/impl/xs/psvi/XSAnnotation.java,
org/apache/xerces/impl/xs/psvi/XSConstants.java,
org/apache/xerces/impl/xs/psvi/XSObject.java,
org/apache/xerces/impl/xs/psvi/XSObjectList.java,
org/apache/xerces/impl/xs/psvi/XSSimpleTypeDefinition.java,
org/apache/xerces/impl/xs/psvi/XSTypeDefinition.java,
org/apache/xerces/impl/xs/util/StringListImpl.java,
org/apache/xerces/impl/xs/util/XSObjectListImpl.java,
org/apache/xerces/util/SymbolHash.java,
org/apache/xerces/util/URI.java,
org/apache/xerces/util/XMLChar.java,
org/apache/xerces/xni/NamespaceContext.java,
org/apache/xerces/xni/QName.java
"
excludes="org/apache/xerces/impl/dv/DatatypeValidator.java
org/apache/xerces/impl/dv/DTDDVFactory.java
org/apache/xerces/impl/dv/dtd/**
org/apache/xerces/impl/dv/xs/SchemaDVFactoryImpl.java
">
</fileset>
</copy>
<!-- substitute tokens as needed -->
<replace file="${build.src}/org/apache/xerces/impl/dv/SchemaDVFactory.java"
token="SchemaDVFactoryImpl" value="FullDVFactory"/>
</target>
<!-- =================================================================== -->
<!-- Retrieve the XML Conformance test suite from sourceforge -->
<!-- =================================================================== -->
<target name="get-conftests" depends="init">
<mkdir dir="tests/conformance"/>
<get src="http://prdownloads.sourceforge.net/xmlconf/utilities.jar" dest="tests/conformance/utilties.jar" verbose="true" usetimestamp="true"/>
<cvspass cvsroot=":pserver:anonymous@cvs.xmlconf.sourceforge.net:/cvsroot/xmlconf" password=""/>
<cvs cvsRoot=":pserver:anonymous@cvs.xmlconf.sourceforge.net:/cvsroot/xmlconf" package="xml" dest="tests/conformance"/>
</target>
<!-- =================================================================== -->
<!-- Run the XML Conformance test suite from sourceforge -->
<!-- =================================================================== -->
<target name="run-conftests" depends="init">
<java classname="xml.testing.Driver" output="tests/conformance/report-nv.html">
<arg value="tests/conformance/xml/suite/xmlconf.xml"/>
<arg value="org.apache.xerces.parsers.SAXParser"/>
<arg value="tests/conformance/xml/template.xml"/>
<arg value="nv"/>
<arg value="${parser.version}"/>
<classpath>
<pathelement location="tests/conformance/utilities.jar"/>
<pathelement location="build/xmlParserAPIs.jar"/>
<pathelement location="build/xercesImpl.jar"/>
</classpath>
</java>
<java classname="xml.testing.Driver" output="tests/conformance/report-val.html">
<arg value="tests/conformance/xml/suite/xmlconf.xml"/>
<arg value="org.apache.xerces.parsers.SAXParser"/>
<arg value="tests/conformance/xml/template.xml"/>
<arg value="val"/>
<arg value="${parser.version}"/>
<classpath>
<pathelement location="tests/conformance/utilities.jar"/>
<pathelement location="build/xmlParserAPIs.jar"/>
<pathelement location="build/xercesImpl.jar"/>
</classpath>
</java>
</target>
<!-- =================================================================== -->
<!-- Prepares the source code with DOM Level 3 -->
<!-- =================================================================== -->
<target name="prepare-src-dom3" depends="prepare-common">
<copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration"
tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}"
includes="javax/**, org/**"
excludes="**/classfiles_updated **/CVS* **/.#* **/XMLMessages.java
**/DatatypeContentModel.java **/ComplexTypeInfo.java
**/v1/** **/v2/**
javax.xml.parsers.ConvertToURI.java
org/apache/xerces/dom3/*.java
org/apache/xerces/dom3/ls/**
org/w3c/dom/*.java">
</fileset>
</copy>
<!-- copy dom 3 src files -->
<copy todir="${build.src}">
<fileset
dir="${src.dir}/dom3"
includes="org/**"
excludes="**/classfiles_updated **/CVS* **/.#*">
</fileset>
</copy>
<!-- substitute tokens as needed -->
<replace file="${build.dir}/src/org/apache/xerces/impl/Version.java"
token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
<!-- DOM level 3 hack: replace import statements-->
<replace file="${build.src}/org/apache/xerces/dom/NodeImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/DocumentImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/DOMNormalizer.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/DOMLocatorImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/DOMImplementationSourceImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/DOMErrorImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/dom/CoreDocumentImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/parsers/DOMBuilderImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xerces/util/DOMErrorHandlerWrapper.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xml/serialize/XMLSerializer.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xml/serialize/BaseMarkupSerializer.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/apache/xml/serialize/DOMWriterImpl.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/w3c/dom/ls/DOMWriter.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/w3c/dom/ls/ParseErrorEvent.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
<replace file="${build.src}/org/w3c/dom/ls/DOMBuilder.java"
token="org.apache.xerces.dom3" value="org.w3c.dom"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the source directory with DOM Level 3 -->
<!-- =================================================================== -->
<target name="compile-dom3" depends="prepare-src-dom3">
<copy todir="${build.dest}">
<fileset dir="${build.src}"
includes="**/*.res, **/*.properties">
</fileset>
</copy>
<xjavac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the samples with DOM Level 3 -->
<!-- =================================================================== -->
<target name="samples-dom3" depends="compile-dom3">
<mkdir dir="${build.samples}"/>
<copy todir="${build.samples}" >
<fileset dir="${samples.dir}" />
</copy>
<!-- DOM Level 3 hack: replace import statements-->
<replace file="${build.samples}/dom/ASBuilder.java"
token="org.apache.xerces.dom3.DOMError" value="org.w3c.dom.DOMError"/>
<replace file="${build.samples}/dom/ASBuilder.java"
token="org.apache.xerces.dom3.DOMErrorHandler" value="org.w3c.dom.DOMErrorHandler"/>
<xjavac srcdir="${build.samples}"
destdir="${build.dest}"
classpath="${build.dir}/classes"
debug="${debug}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the tests with DOM Level 3 -->
<!-- =================================================================== -->
<target name="tests-dom3" depends="samples-dom3">
<mkdir dir="${build.tests}"/>
<copy todir="${build.tests}">
<fileset dir="${tests.dir}" />
</copy>
<xjavac srcdir="${build.tests}"
destdir="${build.dest}"
classpath="${build.dir}/classes:./tools/junit.jar"
debug="${debug}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
</target>
<!-- =================================================================== -->
<!-- Do a sanity test using samples with DOM Level 3 -->
<!-- =================================================================== -->
<target name="test-dom3" depends="tests-dom3">
<echo message="Performing sanity test for ${parser.Name} ${parser.Version} ..." />
<echo message="Using classpath=&apos;${build.dir}/classes&apos;" />
<echo message="Running sax.Counter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="sax.Counter"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running sax.Writer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="sax.Writer"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running dom.Counter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.Counter"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<echo message="Running dom.Writer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.Writer"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
</java>
<!--
<echo message="Running DOMFilter ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.DOMFilter"
args="-p dom.wrappers.DOMParser ${data.dir}/personal.xml"/>
-->
<!-- The following are samples but not command-line applications.
<echo message="Running IteratorView ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.traversal.IteratorView"
failOnError="yes"
args="${data.dir}/personal.xml"/>
<echo message="Running TreeWalkerView ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.traversal.TreeWalkerView"
failOnError="yes"
args="${data.dir}/personal.xml"/>
<echo message="Running TreeViewer ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.TreeViewer"
failOnError="yes"
args="${data.dir}/personal.xml"/>
-->
<echo message="Running dom.mem.Test ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.mem.Test"
failOnError="yes">
</java>
<echo message="Running dom.DTest ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.DTest"
failOnError="yes">
</java>
<echo message="Running dom.serialization.Test ..." />
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.serialization.Test"
failOnError="yes">
<arg value="${data.dir}/personal.xml"/>
<arg value="out.xml"/>
</java>
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.registry.Test"
failOnError="yes">
</java>
<java fork="yes"
classpath="${build.dir}/classes"
classname="dom.dom3.Test"
failOnError="yes">
</java>
</target>
<!-- =================================================================== -->
<!-- Creates the implementation class package with DOM Level 3 -->
<!-- =================================================================== -->
<target name="jar-dom3" depends="compile-dom3">
<jar jarfile="${build.dir}/dom3-${jar.parser}"
basedir="${build.dest}"
compress="true"
includes="org/apache/**, META-INF/**" />
</target>
<!-- =================================================================== -->
<!-- Creates the API class package with DOM Level 3 -->
<!-- =================================================================== -->
<target name="apijar-dom3" depends="compile-dom3">
<jar jarfile="${build.dir}/dom3-${jar.apis}"
basedir="${build.dest}"
compress="true"
includes="org/xml/**, org/w3c/**, javax/**" />
</target>
<!-- =================================================================== -->
<!-- Creates the samples package with DOM Level 3 -->
<!-- =================================================================== -->
<target name="sampjar-dom3" depends="samples-dom3">
<jar jarfile="${build.dir}/${jar.samples}"
basedir="${build.dest}"
compress="true"
includes="dom/**,sax/**,socket/**,ui/**,xni/**"/>
</target>
<!-- =================================================================== -->
<!-- Builds xercesImpl, xmlParserAPIs, and sample jars with DOM Level 3 -->
<!-- =================================================================== -->
<target name="jars-dom3" depends="jar-dom3, apijar-dom3, sampjar-dom3">
</target>
</project>