blob: bb1c46e02d617a2d1404dfdb8449631367dc06ce [file] [log] [blame]
<!-- Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->
<project name="Xbean" default="default" basedir=".">
<property name="build.compiler" value="javac1.3"/>
<property name="product.version" value="1.0.3"/>
<target name="usage">
<echo message="The following ant targets are defined:"/>
<echo message="usage - this help text"/>
<echo message="build - builds our public interface jars so others can compile"/>
<echo message="deploy - builds our implementation jar (xbean.jar)"/>
<echo message="clean - cleans out the xbeans directories"/>
<echo message="builddrt - builds, but does not run, the xbean drt"/>
<echo message="drt - runs the xbean drt"/>
</target>
<target name="clean">
<delete dir="build"/>
</target>
<target name="deploy" depends="sources, xbean, drt.jar, random.jar" />
<target name="sources" depends="dirs">
<zip destfile="build/ar/xbeansrc.zip" basedir="." excludes="build/**"/>
</target>
<target name="xbean" depends="xbean.jar">
<copy file="build/lib/xbean.jar" tofile="build/ar/xbean.jar"/>
</target>
<target name="dirs">
<mkdir dir="build"/>
<mkdir dir="build/classes"/>
<mkdir dir="build/lib"/>
<mkdir dir="build/ar"/>
<mkdir dir="build/src"/>
<mkdir dir="build/private"/>
<mkdir dir="build/private/classes"/>
<mkdir dir="build/private/lib"/>
</target>
<target name="drt" >
<echo message="Running random tester"/>
<java classname="Random" fork="true" failonerror="true">
<classpath>
<pathelement location="build/ar/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
<pathelement location="build/private/lib/easypo.jar"/>
<pathelement location="build/private/lib/random.jar"/>
</classpath>
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-seed 0 -i 20 -noquery"/>
</java>
<mkdir dir="build/test/output"/>
<echo message="Running xbean product drt tests"/>
<echo message="JUnit output being sent to build/test/output/drt-product.txt"/>
<junit fork="yes" printsummary="yes" haltonfailure="yes" showoutput="yes">
<jvmarg value="-Dxmlbeans.ea"/>
<sysproperty key="xbean.rootdir" value="${basedir}"/>
<sysproperty key="treeasserts" value="true"/>
<classpath>
<pathelement location="external/lib/junit.jar"/>
<pathelement location="build/ar/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
<pathelement location="build/private/lib/drt.jar"/>
<pathelement location="build/private/lib/easypo.jar"/>
<pathelement location="build/private/lib/schemas.jar"/>
<pathelement location="build/private/lib/xstypes.jar"/>
<pathelement location="build/private/lib/enumtest.jar"/>
<pathelement location="build/private/lib/numerals.jar"/>
<pathelement location="build/lib/xbean_xpath.jar"/>
<pathelement location="build/lib/jaxen.jar"/>
</classpath>
<formatter type="plain"/>
<test name="drtcases.SmokeTests" outfile="build/test/output/drt-product" />
</junit>
<antcall target="extensionsTest" />
</target>
<!-- extensions test -->
<fileset id="extension.jars" dir="build/private/lib">
<include name="extensions.jar"/>
<include name="fixedAttrBean.jar"/>
<include name="averageCase.jar"/>
<include name="multInterfaces.jar"/>
<include name="readOnlyBean.jar"/>
<include name="ValueRestriction.jar"/>
</fileset>
<target name="extensionsTest" depends="extensions.compile">
<echo message="JUnit output being sent to build/test/output/drt-extensions.txt"/>
<junit fork="yes" printsummary="yes" haltonfailure="yes" showoutput="yes">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="external/lib/junit.jar"/>
<fileset refid="extension.jars"/>
<pathelement location="build/test/extensionsuse"/>
</classpath>
<formatter type="plain"/>
<test name="drtcases.ExtensionsTest" outfile="build/test/output/drt-extensions"/>
</junit>
</target>
<!--The extensions use the bean types, compile first-->
<target name="simpleBeans.check">
<uptodate property="simpleBeans.notRequired" targetfile="build/private/lib/fixedAttrBean.jar">
<srcfiles dir="test/src/extensions" includes="**/*"/>
<srcfiles dir="test/src/extensionsuse" includes="**/*"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="build.simpleBeans" unless="simpleBeans.notRequired" depends="simpleBeans.check">
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/fixedAttrBean.jar test/src/extensions/fixedAttrBean/po.xsd"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/averageCase.jar test/src/extensions/averageCase/po.xsd"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/multInterfaces.jar test/src/extensions/multInterfaces/po.xsd"/>
</java>
<!-- **Pre/Post Handlers -->
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/readOnlyBean.jar test/src/extensions/prePostFeature/readOnlyBean/po.xsd"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/ValueRestriction.jar test/src/extensions/prePostFeature/ValueRestriction/company.xsd"/>
</java>
</target>
<target name="extensions.compile" depends="build.simpleBeans, simpleBeans.check" unless="simpleBeans.notRequired">
<mkdir dir="build/test/extensions"/>
<javac srcdir="test/src/extensions" destdir="build/test/extensions" debug="on">
<classpath>
<pathelement location="build/ar/xbean.jar" />
<fileset refid="extension.jars"/>
</classpath>
</javac>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/extensions.jar test/src/extensions/myPackage"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/fixedAttrBean.jar test/src/extensions/fixedAttrBean"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/averageCase.jar test/src/extensions/averageCase"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/multInterfaces.jar test/src/extensions/multInterfaces"/>
</java>
<!--Pre Post Feature -->
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/readOnlyBean.jar test/src/extensions/prePostFeature/readOnlyBean"/>
</java>
<java classname="${schema_compiler}" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="build/test/extensions"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</classpath>
<arg line="-out build/private/lib/ValueRestriction.jar test/src/extensions/prePostFeature/ValueRestriction"/>
</java>
<mkdir dir="build/test/extensionsuse"/>
<javac srcdir="test/src/extensionsuse" destdir="build/test/extensionsuse" debug="on">
<classpath>
<pathelement location="build/ar/xbean.jar" />
<pathelement location="external/lib/junit.jar"/>
<fileset refid="extension.jars"/>
<pathelement location="build/test/extensionsuse"/>
</classpath>
</javac>
</target>
<!-- builddrt target -->
<target name="builddrt" depends="drt.jar, random.jar, eric"/>
<target name="eric" depends="erictest.jar"/>
<target name="default" depends="deploy, builddrt"/>
<target name="redeploy" depends="clean, deploy"/>
<!-- oldxbean.jar target =========================================== -->
<target name="oldxbean.jar">
<copy file="external/lib/oldxbean.jar" tofile="build/private/lib/oldxbean.jar"/>
</target>
<!-- bootstrap target ============================================== -->
<target name="bootstrap" depends="xbean">
<!-- after xbean.jar is built, move it out of the way and clean the project -->
<tempfile property="bootstrap.jarfile" prefix="oldxbean" suffix=".jar"/>
<move file="build/ar/xbean.jar" tofile="${bootstrap.jarfile}"/>
<antcall target="clean" inheritAll="false"/>
<!-- then move it back into place as oldxbean.jar and do another build -->
<move file="${bootstrap.jarfile}" tofile="build/private/lib/oldxbean.jar"/>
<antcall target="xbean" inheritAll="false"/>
<!-- compare the contents of the first jar to the contents of the second jar -->
<antcall target="zipcompare.classes" inheritAll="false"/>
<java classname="zipcompare.ZipCompare"
classpath="build/private/classes/zipcompare:build/classes/common"
fork="true"
failonerror="true">
<arg line="build/ar/xbean.jar build/private/lib/oldxbean.jar"/>
</java>
<!-- when everything succeeds, copy oldxbean.jar to external/lib -->
<echo message="==================================="/>
<echo message="Results match! Bootstrap succeeded."/>
<echo message="==================================="/>
<echo message="Attempting to copy oldxbean.jar"/>
<echo message="If the copy fails, you must check out oldxbean.jar"/>
<echo message="overwriting old external/lib/oldxbean.jar"/>
<copy file="build/private/lib/oldxbean.jar" tofile="external/lib/oldxbean.jar"/>
</target>
<target name="quickbootstrap">
<echo message="=========================================================="/>
<echo message="Bootstrapping currently built xbean.jar without verifying."/>
<echo message="=========================================================="/>
<copy file="build/ar/xbean.jar" tofile="external/lib/oldxbean.jar"/>
</target>
<!-- zipcompare (for checking bootstrap) ============================ -->
<target name="zipcompare.classes" depends="common.classes">
<mkdir dir="build/private/classes/zipcompare"/>
<javac srcdir="src/zipcompare"
destdir="build/private/classes/zipcompare"
classpath="build/classes/common"
debug="on"/>
</target>
<!-- test target ================================================== -->
<path id="test.compile.path">
<pathelement location="external/lib/junit.jar"/>
<pathelement location="build/ar/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/private/lib/easypo.jar"/>
<pathelement location="build/private/lib/ericschema.jar"/>
<pathelement location="build/private/lib/schemas.jar"/>
<pathelement location="build/private/lib/enumtest.jar"/>
<pathelement location="build/private/lib/xstypes.jar"/>
<pathelement location="build/lib/xbean_xpath.jar"/>
<pathelement location="build/private/lib/numerals.jar"/>
<pathelement location="build/lib/jaxen.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
</path>
<path id="test.run.path">
<pathelement location="build/ar/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="external/lib/junit.jar"/>
</path>
<!-- builddrt target ============================================== -->
<target name="drt.classes" depends="dirs, easypo.jar, schemas.jar,
xstypes.jar, enumtest.jar, xbean_xpath.jar, numerals.jar">
<mkdir dir="build/private/classes/drt"/>
<javac
srcdir="test/src/drt"
destdir="build/private/classes/drt"
classpathref="test.compile.path"
source="1.3"
debug="on"/>
</target>
<target name="drt.jar" depends="drt.classes">
<jar jarfile="build/private/lib/drt.jar" basedir="build/private/classes/drt"/>
</target>
<!-- stsschema (for testing) target ================================ -->
<path id="scomp.run.path">
<pathelement location="build/lib/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</path>
<target name="stsschema.check">
<uptodate property="stsschema.notRequired" targetfile="build/private/lib/stsschema.jar">
<srcfiles dir="test/src/stsschema" includes="**/*.xsd"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="stsschema.jar" depends="stsschema.check, dirs, xbean" unless="stsschema.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/stsschema.jar test/src/stsschema"/>
</java>
</target>
<!-- soaptest target ============================================ -->
<target name="soaptest.classes" depends="dirs, stsschema.jar">
<mkdir dir="build/private/classes/soaptest"/>
<javac srcdir="test/src/soaptest" destdir="build/private/classes/soaptest" source="1.3" debug="on">
<classpath>
<pathelement location="external/lib/jdom.jar"/>
<pathelement location="external/lib/junit.jar"/>
<pathelement location="build/ar/xbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/private/lib/stsschema.jar"/>
</classpath>
</javac>
</target>
<target name="soaptest.jar" depends="soaptest.classes">
<jar jarfile="build/private/lib/soaptest.jar" basedir="build/private/classes/soaptest"/>
</target>
<!-- erictest target ============================================= -->
<target name="erictest.classes" depends="dirs, xbean, ericschema.jar">
<mkdir dir="build/private/classes/erictest"/>
<javac
srcdir="test/src/erictest"
destdir="build/private/classes/erictest"
classpathref="test.compile.path"
source="1.3"
debug="on"/>
</target>
<target name="erictest.jar" depends="erictest.classes">
<jar jarfile="build/private/lib/erictest.jar" basedir="build/private/classes/erictest"/>
</target>
<!-- random target ============================================= -->
<target name="random.classes" depends="dirs, xbean, easypo.jar">
<mkdir dir="build/private/classes/random"/>
<javac
srcdir="test/src/random"
destdir="build/private/classes/random"
classpathref="test.compile.path"
source="1.3"
debug="on"/>
</target>
<target name="random.jar" depends="random.classes">
<jar jarfile="build/private/lib/random.jar" basedir="build/private/classes/random"/>
</target>
<!-- teststore target ============================================= -->
<target name="teststore.classes" depends="dirs">
<mkdir dir="build/private/classes/teststore"/>
<javac srcdir="test/src/teststore" destdir="build/private/classes/teststore" source="1.3" debug="on">
<classpath>
<pathelement location="build/private/classes/simpletypes"/>
<pathelement location="build/private/classes/xmlcomp"/>
<pathelement location="build/private/classes/typestore"/>
<pathelement location="build/private/classes/xmlpublic"/>
<pathelement location="build/private/classes/typeimpl"/>
</classpath>
</javac>
</target>
<target name="teststore.jar" depends="teststore.classes">
<jar jarfile="build/private/lib/teststore.jar" basedir="build/private/classes/teststore"/>
</target>
<!-- simpletypes (for testing) target ============================= -->
<target name="simpletypes.check">
<uptodate property="simpletypes.notRequired" targetfile="build/private/lib/simpletypes.jar">
<srcfiles dir="test/cases/schema/simple" includes="**/*.xsd"/>
<srcfiles dir="build/private/lib" includes="xbean.jar"/>
</uptodate>
</target>
<target name="simpletypes.jar" depends="simpletypes.check, dirs" unless="simpletype.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-name schema.test.simple -out build/private/lib/simpletypes.jar test/cases/schema/simple"/>
</java>
</target>
<!-- easypo (for testing) target ================================== -->
<target name="easypo.check">
<uptodate property="easypo.notRequired" targetfile="build/private/lib/easypo.jar">
<srcfiles dir="test/src/easypo" includes="**/*"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="easypo.jar" depends="easypo.check, dirs, xbean" unless="easypo.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/easypo.jar test/src/easypo"/>
</java>
</target>
<!-- numerals (for testing) target ================================== -->
<target name="numerals.check">
<uptodate property="numerals.notRequired" targetfile="build/private/lib/numerals.jar">
<srcfiles dir="test/src/numerals" includes="**/*"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="numerals.jar" depends="numerals.check, dirs, xbean" unless="numerals.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/numerals.jar test/src/numerals"/>
</java>
</target>
<!-- schemas (for testing) target ================================ -->
<target name="schemas.check">
<uptodate property="schemas.notRequired" targetfile="build/private/lib/schemas.jar">
<srcfiles dir="test/src/schemas" includes="**/*.xsd"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="schemas.jar" depends="schemas.check, dirs, xbean" unless="schemas.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/schemas.jar test/src/schemas"/>
</java>
</target>
<!-- ericschema (for testing) target ================================ -->
<target name="ericschema.check">
<uptodate property="ericschema.notRequired" targetfile="build/private/lib/ericschema.jar">
<srcfiles dir="test/src/ericschema" includes="**/*.xsd"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="ericschema.jar" depends="ericschema.check, dirs, xbean" unless="ericschema.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-src build/private/src -out build/private/lib/ericschema.jar test/src/ericschema"/>
</java>
</target>
<!-- enumtest (for testing) target ================================= -->
<target name="enumtest.check">
<uptodate property="enumtest.notRequired" targetfile="build/private/lib/enumtest.jar">
<srcfiles dir="test/src/enumtest" includes="**/*.xsd"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="enumtest.jar" depends="enumtest.check, dirs, xbean" unless="enumtest.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/enumtest.jar test/src/enumtest"/>
</java>
</target>
<!-- xstypes (for testing) target ================================= -->
<target name="xstypes.check">
<uptodate property="xstypes.notRequired" targetfile="build/private/lib/xstypes.jar">
<srcfiles dir="test/cases/schema/simple" includes="**/*.xsd"/>
<srcfiles dir="build/ar" includes="xbean.jar"/>
</uptodate>
</target>
<target name="xstypes.jar" depends="xstypes.check, dirs, xbean" unless="xstypes.notRequired">
<java classname="${schema_compiler}" classpathref="scomp.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="-out build/private/lib/xstypes.jar test/src/xstypes"/>
</java>
</target>
<!-- javadocs ====================================================== -->
<!-- All docs to build/docs, including guide and javadocs. -->
<target name="docs" depends="xbean">
<property name="docs.dir" value="build/docs"/>
<delete dir="${docs.dir}"/>
<mkdir dir="${docs.dir}"/>
<javadoc packagenames="*" sourcepath="src/xmlpublic" classpath="${javadoc.path}" destdir="${docs.dir}/reference" windowtitle="XMLBeans Documentation" source="1.3" stylesheetfile="docs/stylesheet.css">
<link href="http://xml.apache.org/xmlbeans/docs/reference/index.html"/>
<link href="http://java.sun.com/j2se/1.3.1/docs/api/"/>
<link href="http://java.sun.com/j2ee/1.3/docs/api/"/>
<link href="http://xml.apache.org/xerces-j/apiDocs/"/>
<classpath>
<pathelement location="build/ar/xbean.jar"/>
</classpath>
</javadoc>
<copy file="docs/xmlbeans.css" tofile="${docs.dir}/xmlbeans.css" />
<copy todir="${docs.dir}/guide">
<fileset dir="docs/guide"/>
</copy>
<copy todir="${docs.dir}/images">
<fileset dir="docs/images"/>
</copy>
</target>
<!-- stream conformance tests ======================================= -->
<target name="streamtest.classes" depends="dirs">
<mkdir dir="build/private/classes/streamtest"/>
<javac
srcdir="test/src/streamtest"
destdir="build/private/classes/streamtest"
classpathref="test.compile.path"
source="1.3"
debug="on"/>
</target>
<target name="streamtest.jar" depends="streamtest.classes">
<jar jarfile="build/private/lib/streamtest.jar" basedir="build/private/classes/streamtest"/>
</target>
<path id="run.streamconf.path">
<path refid="test.run.path"/>
<pathelement location="build/private/classes/streamtest/"/>
</path>
<target name="streamconf" depends="streamtest.jar">
<java classname="streamtest.XmlStreamConformance"
classpathref="run.streamconf.path"
fork="true">
<jvmarg value="-Dxmlbeans.ea"/>
<!--arg line="test/cases/streamconf/small.xml" /-->
<arg line="test/cases/streamconf/dtd.xml" />
</java>
</target>
<target name="dist" depends="dist-src, dist-bin">
</target>
<target name="dist-bin" depends="xbean, docs">
<delete dir="build/private/xmlbeans-${product.version}"/>
<delete file="build/private/incubating-xmlbeans-${product.version}.zip"/>
<delete file="build/private/incubating-xmlbeans-${product.version}.tgz"/>
<mkdir dir="build/private/xmlbeans-${product.version}"/>
<copy todir="build/private/xmlbeans-${product.version}">
<fileset dir="xkit"/>
<fileset dir="." includes="bin/**" />
<fileset file="CHANGES.txt" />
</copy>
<copy todir="build/private/xmlbeans-${product.version}/schemas/s4s">
<fileset dir="src/xsdschema/schema" includes="XMLSchema.xsd,w3c-schema-license.html"/>
<fileset dir="src/xmlschema/schema" includes="XML.xsd,w3c-xml-license.html"/>
</copy>
<copy todir="build/private/xmlbeans-${product.version}/schemas">
<fileset dir="test/src" includes="easypo/*.xsd, easypo/*.xsdconfig"/>
</copy>
<mkdir dir="build/private/xmlbeans-${product.version}/lib"/>
<copy todir="build/private/xmlbeans-${product.version}/lib" file="build/ar/xbean.jar"/>
<copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/xml-apis.jar"/>
<copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/xercesImpl.jar"/>
<copy todir="build/private/xmlbeans-${product.version}/lib" file="external/lib/jaxen-1.1-beta-2.jar"/>
<copy todir="build/private/xmlbeans-${product.version}/lib" file="build/lib/xbean_xpath.jar"/>
<mkdir dir="build/private/xmlbeans-${product.version}/src/schema"/>
<copy todir="build/private/xmlbeans-${product.version}/src/schema">
<fileset dir="src/toolschema"/>
</copy>
<mkdir dir="build/private/xmlbeans-${product.version}/docs"/>
<copy todir="build/private/xmlbeans-${product.version}/docs">
<fileset dir="build/docs"/>
</copy>
<chmod dir="build/private/xmlbeans-${product.version}/bin" perm="ugo+rx" includes="**" />
<zip destfile="build/private/incubating-xmlbeans-${product.version}.zip"
basedir="build/private"
includes="xmlbeans-${product.version}/**"
excludes="xmlbeans-${product.version}/bin/dumpxsb,
xmlbeans-${product.version}/bin/scomp,
xmlbeans-${product.version}/bin/validate">
<zipfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
<zipfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
<zipfileset dir="build/private/xmlbeans-${product.version}/bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" filemode="755"/>
</zip>
<tar destfile="build/private/incubating-xmlbeans-${product.version}.tgz"
basedir="build/private"
includes="xmlbeans-${product.version}/**"
excludes="xmlbeans-${product.version}/bin/dumpxsb,
xmlbeans-${product.version}/bin/scomp,
xmlbeans-${product.version}/bin/validate"
compression="gzip">
<tarfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
<tarfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
<tarfileset dir="build/private/xmlbeans-${product.version}/bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" mode="755"/>
</tar>
</target>
<target name="dist-src" depends="clean, dirs">
<delete file="build/private/incubating-xmlbeans-${product.version}-src.zip"/>
<delete file="build/private/incubating-xmlbeans-${product.version}-src.tgz"/>
<zip destfile="build/private/incubating-xmlbeans-${product.version}-src.zip">
<zipfileset
dir="."
includes="**"
excludes="build/**, test/src/teststore/**, test/src/easypouse/**, test/src/nameworlduse/**,
test/src/stsschema/**, test/src/unmarshal/**, test/cases/schema/**, external/lib/junit.jar, bin/dumpxsb, bin/scomp, bin/validate"
prefix="xmlbeans-${product.version}" />
<zipfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
<zipfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
<zipfileset dir="bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" filemode="755"/>
</zip>
<tar destfile="build/private/incubating-xmlbeans-${product.version}-src.tgz"
compression="gzip">
<tarfileset
dir="."
includes="**"
excludes="build/**, test/src/teststore/**, test/src/easypouse/**, test/src/nameworlduse/**,
test/src/stsschema/**, test/src/unmarshal/**, test/cases/schema/**, external/lib/junit.jar, bin/dumpxsb, bin/scomp, bin/validate"
prefix="xmlbeans-${product.version}"/>
<tarfileset dir="." includes="src/license/LICENSE.txt" fullpath="xmlbeans-${product.version}/LICENSE.txt"/>
<tarfileset dir="." includes="src/license/NOTICE.txt" fullpath="xmlbeans-${product.version}/NOTICE.txt"/>
<tarfileset dir="bin" includes="dumpxsb, scomp, validate" prefix="xmlbeans-${product.version}/bin" mode="755"/>
</tar>
</target>
<!-- previously in xbean.xml -->
<target name="xbean.jar"
depends="dirs, xml-apis.jar, xercesImpl.jar, xmlpublic.classes, typestore.classes,
common.classes, typeimpl.classes, xmlcomp.classes,
xmlstore.classes,
oldxbean.jar, xsdschema.classes,
xmlinputstream.classes, xbean_xpath.jar">
<jar jarfile="build/lib/xbean.jar" index="true">
<fileset dir="build/classes/xmlpublic"/>
<fileset dir="build/classes/typestore"/>
<fileset dir="build/classes/common"/>
<fileset dir="build/classes/typeimpl"/>
<fileset dir="build/classes/xmlcomp"/>
<fileset dir="build/classes/configschema"/>
<fileset dir="build/classes/toolschema"/>
<fileset dir="build/classes/xsdschema"/>
<fileset dir="build/classes/xmlschema"/>
<fileset dir="build/classes/xmlstore"/>
<fileset dir="build/classes/xmlinputstream"/>
<fileset dir="build/classes/repackage"/>
<fileset dir="src/license"/>
</jar>
</target>
<!-- build XMLInputStream interface ============================================= -->
<target name="xmlinputstream.classes" depends="dirs">
<mkdir dir="build/classes/xmlinputstream"/>
<javac srcdir="src/xmlinputstream"
destdir="build/classes/xmlinputstream"
debug="on"/>
</target>
<!-- xmlpublic target ============================================== -->
<target name="xmlpublic.classes" depends="dirs, xmlinputstream.classes">
<mkdir dir="build/classes/xmlpublic"/>
<javac srcdir="src/xmlpublic" destdir="build/classes/xmlpublic" source="1.3" debug="on">
<classpath>
<pathelement location="build/classes/xmlinputstream"/>
</classpath>
</javac>
</target>
<target name="xmlpublic.jar" depends="dirs, xmlinputstream.classes, xmlpublic.classes, xmlschema.classes, xsdschema.classes">
<jar jarfile="build/lib/xmlpublic.jar" index="true">
<fileset dir="build/classes/xmlpublic"/>
<fileset dir="build/classes/xmlschema"/>
<fileset dir="build/classes/xsdschema"/>
</jar>
</target>
<!-- typestore target ============================================== -->
<target name="typestore.classes" depends="dirs, xmlpublic.classes, common.classes, xmlinputstream.classes">
<mkdir dir="build/classes/typestore"/>
<javac srcdir="src/typestore" destdir="build/classes/typestore" source="1.3" debug="on">
<classpath>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
</classpath>
</javac>
</target>
<!-- common target ============================================= -->
<target name="common.classes" depends="dirs, xmlpublic.jar, xmlinputstream.classes">
<mkdir dir="build/classes/common"/>
<javac destdir="build/classes/common" source="1.3" debug="on">
<classpath>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/lib/xmlpublic.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
</classpath>
<src path="src/common"/>
<src path="src/typeimpl/org/apache/xmlbeans/impl/regex"/>
</javac>
</target>
<!-- typeimpl target ============================================== -->
<target name="typeimpl.classes" depends="dirs, repackage.classes, xmlpublic.classes, typestore.classes, xsdschema.classes, configschema.classes, toolschema.classes">
<mkdir dir="build/classes/typeimpl"/>
<javac destdir="build/classes/typeimpl" source="1.3" debug="on">
<classpath>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/common"/>
<pathelement location="build/classes/repackage"/>
<pathelement location="build/classes/typestore"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/xmlconfig"/>
<pathelement location="build/classes/configschema"/>
<pathelement location="build/classes/xsdschema"/>
<pathelement location="build/lib/xml-apis.jar"/>
</classpath>
<src path="src/typeimpl"/>
<src path="build/src/xmlschema"/>
<src path="build/src/xsdschema"/>
<src path="build/src/configschema"/>
<src path="build/src/toolschema"/>
<src path="src/xmlconfig"/>
</javac>
<!-- Need properties files for regex -->
<copy
todir="build/classes/typeimpl">
<fileset dir="src/typeimpl">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<!-- xmlcomp target =============================================== -->
<target name="xmlcomp.classes" depends="dirs, repackage.classes, typeimpl.classes, xmlpublic.classes, typestore.classes">
<mkdir dir="build/classes/xmlcomp"/>
<javac srcdir="src/xmlcomp" destdir="build/classes/xmlcomp" source="1.3" debug="on">
<classpath>
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
<pathelement location="build/classes/repackage"/>
<pathelement location="build/classes/typeimpl"/>
<pathelement location="build/classes/xmlconfig"/>
<pathelement location="build/classes/configschema"/>
<pathelement location="build/classes/toolschema"/>
<pathelement location="build/classes/xsdschema"/>
<pathelement location="build/lib/xml-apis.jar"/>
</classpath>
</javac>
</target>
<!-- xmlstore target ============================================== -->
<target name="xmlstore.classes"
depends="dirs, common.classes, typestore.classes, xmlpublic.classes">
<mkdir dir="build/classes/xmlstore"/>
<javac srcdir="src/xmlstore" destdir="build/classes/xmlstore" source="1.3" debug="on">
<classpath id="xmlstore.compile.path">
<pathelement location="build/classes/xmlinputstream"/>
<pathelement location="build/classes/typestore"/>
<pathelement location="build/classes/xmlpublic"/>
<pathelement location="build/classes/common"/>
<pathelement location="build/lib/xml-apis.jar"/>
</classpath>
</javac>
</target>
<!-- bootstrap schema target support ================================ -->
<!-- xsdschema target =============================================== -->
<!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
<!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->
<path id="bootstrap.run.path">
<pathelement location="build/private/lib/oldxbean.jar"/>
<pathelement location="build/lib/xml-apis.jar"/>
<pathelement location="build/lib/xercesImpl.jar"/>
</path>
<path id="bootstrap.compile.path">
<pathelement location="build/classes/xmlpublic"/>
</path>
<property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>
<path id="xsdschema.compile.path">
<pathelement location="build/classes/xmlschema"/>
<pathelement location="build/classes/xmlpublic"/>
</path>
<property name="xsdschema.compile.path" refid="xsdschema.compile.path"/>
<target name="xsdschema.check">
<condition property="xsdschema.notRequired">
<uptodate property="xsdschema.notRequired" targetfile="build/classes/xsdschema/schema/system/sXMLSCHEMA/index.xsb">
<srcfiles dir="src/xsdschema" includes="**/*.xsd"/>
</uptodate>
</condition>
</target>
<target name="xsdschema.classes" depends="xsdschema.check, xmlschema.classes, xmlpublic.classes, oldxbean.jar" unless="xsdschema.notRequired">
<delete dir="build/classes/xsdschema"/>
<delete dir="build/src/xsdschema"/>
<java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="${repackage_arg} -name sXMLSCHEMA -cp ${xsdschema.compile.path} -srconly -d build/classes/xsdschema -src build/src/xsdschema src/xsdschema/schema"/>
</java>
</target>
<!-- xmlschema target ============================================= -->
<!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
<!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->
<target name="xmlschema.check">
<condition property="xmlschema.notRequired">
<uptodate property="xmlschema.notRequired" targetfile="build/classes/xmlschema/schema/system/sXMLLANG/index.xsb">
<srcfiles dir="src/xmlschema" includes="**/*.xsd"/>
</uptodate>
</condition>
</target>
<target name="xmlschema.classes" depends="xmlschema.check, xmlpublic.classes, oldxbean.jar" unless="xmlschema.notRequired">
<delete dir="build/classes/xmlschema"/>
<delete dir="build/src/xmlschema"/>
<java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="${repackage_arg} -name sXMLLANG -d build/classes/xmlschema -src build/src/xmlschema -srconly src/xmlschema/schema"/>
</java>
</target>
<!-- xmlconfig target =============================================== -->
<target name="xmlconfig.classes" depends="dirs, xmlpublic.jar, configschema.classes">
<mkdir dir="build/classes/xmlconfig"/>
<javac srcdir="src/xmlconfig" destdir="build/classes/xmlconfig" source="1.3" debug="on">
<classpath>
<pathelement location="build/lib/xmlpublic.jar"/>
<pathelement location="build/classes/configschema"/>
</classpath>
</javac>
</target>
<!-- configschema target ============================================= -->
<!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
<!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->
<property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>
<target name="configschema.check">
<uptodate property="configschema.notRequired" targetfile="build/classes/configschema/schema/system/sXMLCONFIG/index.xsb">
<srcfiles dir="src/configschema" includes="**/*.xsd"/>
</uptodate>
</target>
<target name="configschema.classes" depends="configschema.check, xmlpublic.classes, oldxbean.jar" unless="configschema.notRequired">
<delete dir="build/classes/configschema"/>
<java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="${repackage_arg} -name sXMLCONFIG -srconly -src build/src/configschema -d build/classes/configschema src/configschema/schema"/>
</java>
</target>
<!-- toolschema target ============================================= -->
<!-- Note that this is a tricky target because it bootstraps xbeans on itself. -->
<!-- The basic strategy is to rely on the oldxbeans.jar checked into external/lib -->
<property name="bootstrap.compile.path" refid="bootstrap.compile.path"/>
<target name="toolschema.check">
<uptodate property="toolschema.notRequired" targetfile="build/classes/toolschema/schema/system/sXMLTOOLS/index.xsb">
<srcfiles dir="src/toolschema" includes="**/*.xsd"/>
</uptodate>
</target>
<target name="toolschema.classes" depends="toolschema.check, xmlpublic.classes, oldxbean.jar" unless="toolschema.notRequired">
<delete dir="build/classes/toolschema"/>
<mkdir dir="build/src/toolschema"/>
<java classname="${bootstrap_schema_compiler}" classpathref="bootstrap.run.path" fork="true" failonerror="true">
<jvmarg value="-Dxmlbeans.ea"/>
<arg line="${repackage_arg} -name sXMLTOOLS -srconly -src build/src/toolschema -d build/classes/toolschema src/toolschema"/>
</java>
</target>
<!-- =========================== -->
<!-- ===== Repackaging ====== -->
<!-- =========================== -->
<target name="edit_build_script">
<echo message="editing repackage build file: ${token} -->${replacement}"/>
<java classname="repackage.EditBuildScript" failonerror="true">
<arg value="${basedir}/build/repackage/build.xml"/>
<arg value="${token}"/>
<arg value="${replacement}"/>
<classpath>
<pathelement location="build/classes/repackage"/>
<pathelement location="build/classes/common"/>
</classpath>
</java>
</target>
<property name="repackage_arg" value=""/>
<property name="schema_compiler" value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>
<property name="bootstrap_schema_compiler" value="org.apache.xmlbeans.impl.tool.SchemaCompiler"/>
<!--
Params to repackage are:
repackage_spec:
Of the form from_pkg_1:to_pkg_1;from_pkg_2:to_pkg_2 which specifies which packages
are to be converted which which which other packages. Right now, there are two.
org.apache.xmlbeans and apache.xmlbeans.impl, the public and implementation
packages.
new_schema_compiler
The name of the class which will new the new schema compiler. Will replace
${schema_compiler} during the bootstrap process.
-->
<target name="repackage" depends="repackage.classes">
<echo message="Re-packaging XMlBeans"/>
<property
name="new_repackage_arg"
value="-repackage ${repackage_spec}"/>
<java classname="repackage.Repackage" fork="true" failonerror="true">
<classpath>
<pathelement location="build/classes/repackage"/>
<pathelement location="build/classes/common"/>
</classpath>
<arg line="${new_repackage_arg}"/>
</java>
<antcall target="edit_build_script">
<param name="token" value="repackage_arg"/>
<param name="replacement" value="${new_repackage_arg}"/>
</antcall>
<antcall target="edit_build_script">
<param name="token" value="schema_compiler"/>
<param name="replacement" value="${new_schema_compiler}"/>
</antcall>
<ant dir="build/repackage" target="xbean" inheritAll="false"/>
<antcall target="edit_build_script">
<param name="token" value="bootstrap_schema_compiler"/>
<param name="replacement" value="${new_schema_compiler}"/>
</antcall>
<ant dir="build/repackage" target="bootstrap" inheritAll="false"/>
</target>
<target name="repackage.classes">
<mkdir dir="build/classes/repackage"/>
<javac srcdir="src/repackage" destdir="build/classes/repackage" source="1.3" debug="on" classpath="build/classes/common"/>
</target>
<target name="check.xml-apis.jar">
<condition property="xml-apis.jar.exists">
<available file="build/lib/xml-apis.jar"/>
</condition>
</target>
<target name="xml-apis.jar" depends="check.xml-apis.jar, dirs" unless="xml-apis.jar.exists">
<get dest="external/lib/xml-apis-1.0.b2.jar"
src="http://www.ibiblio.org/maven/xml-apis/jars/xml-apis-1.0.b2.jar"
verbose="true" usetimestamp="true" ignoreerrors="true"/>
<copy file="external/lib/xml-apis-1.0.b2.jar" tofile="build/lib/xml-apis.jar" />
</target>
<target name="check.xercesImpl.jar">
<condition property="xercesImpl.jar.exists">
<available file="build/lib/xercesImpl.jar"/>
</condition>
</target>
<target name="xercesImpl.jar" depends="check.xercesImpl.jar, dirs" unless="xercesImpl.jar.exists">
<get dest="external/lib/xercesImpl-2.6.2.jar"
src="http://www.ibiblio.org/maven/xerces/jars/xercesImpl-2.6.2.jar"
verbose="true" usetimestamp="true" ignoreerrors="true"/>
<copy file="external/lib/xercesImpl-2.6.2.jar" tofile="build/lib/xercesImpl.jar" />
</target>
<target name="check.jaxen.jar">
<condition property="jaxen.jar.exists">
<available file="build/lib/jaxen.jar"/>
</condition>
</target>
<target name="jaxen.jar" depends="check.jaxen.jar, dirs" unless="jaxen.jar.exists">
<!--get dest="external/lib/jaxen.jar"
src="http://www.ibiblio.org/maven/jaxen/jars/jaxen-1.1-beta-2.jar"
verbose="true" usetimestamp="true" ignoreerrors="true"/ -->
<copy file="external/lib/jaxen-1.1-beta-2.jar" tofile="build/lib/jaxen.jar" />
</target>
<!-- xpath target ============================================= -->
<target name="xpath.classes" depends="dirs, xmlpublic.jar, jaxen.jar, xmlstore.classes">
<mkdir dir="build/private/classes/xpath"/>
<javac
srcdir="src/xpath"
destdir="build/private/classes/xpath"
classpathref="xpath.compile.path"
source="1.3"
debug="on">
<classpath id="xpath.compile.path">
<pathelement location="build/lib/xmlpublic.jar"/>
<pathelement location="build/lib/jaxen.jar"/>
<pathelement location="build/classes/xmlstore"/>
</classpath>
</javac>
</target>
<target name="xbean_xpath.jar" depends="xpath.classes">
<jar jarfile="build/lib/xbean_xpath.jar" basedir="build/private/classes/xpath"/>
</target>
<!-- test xpath target ============================================= -->
<target name="test_xpath.classes" depends="dirs, xmlpublic.jar, jaxen.jar, xbean_xpath.jar">
<mkdir dir="build/private/classes/testxpath"/>
<javac
srcdir="test/src/xpath"
destdir="build/private/classes/testxpath"
classpathref="testxpath.compile.path"
source="1.3"
debug="on">
<classpath id="testxpath.compile.path">
<pathelement location="build/lib/xmlpublic.jar"/>
<pathelement location="build/lib/jaxen.jar"/>
<pathelement location="build/lib/xbean_xpath.jar"/>
<pathelement location="build/classes/xmlinputstream"/>
</classpath>
</javac>
</target>
<target name="run_test_xpath" depends="test_xpath.classes, xbean">
<java classname="org.apache.xmlbeans.impl.xpath.jaxen.XBeansDemo" fork="true" failonerror="true">
<classpath>
<pathelement location="build/lib/xbean.jar"/>
<pathelement location="build/lib/jaxen.jar"/>
<pathelement location="build/lib/xbean_xpath.jar"/>
<pathelement location="build/private/classes/testxpath"/>
</classpath>
<arg line='test/cases/xpath/much_ado.xml "PLAY/ACT/SCENE/SPEECH/SPEAKER"'/>
</java>
</target>
</project>