| <!-- |
| 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.6"/> |
| <property name="javac.source" value="1.6"/> |
| <property name="javac.target" value="1.6"/> |
| |
| <property name="version.base" value="3.0.0"/> |
| <property name="version.rc" value=""/> |
| |
| <!-- manifest entries --> |
| <property name="manifest.name" value="org/apache/xmlbeans/"/> |
| <property name="manifest.title" value="org.apache.xmlbeans"/> |
| <property name="manifest.vendor" value="Apache Software Foundation"/> |
| <property name="manifest.url" value="http://xmlbeans.apache.org/"/> |
| |
| <target name="usage"> |
| <echo message="The following ant targets are defined:"/> |
| <echo/> |
| <echo message="usage - this help text"/> |
| <echo message="deploy - builds our implementation jar (xbean.jar)"/> |
| <echo message="clean - cleans out the xbeans directories"/> |
| <echo message="clean.jars - cleans out any downloaded jars"/> |
| <echo message="docs - builds the JavaDoc documentation in ./build/docs"/> |
| <echo message="xmlpublic.jar-builds xmlpublic.jar, containing just the public code"/> |
| <echo message="sources - zips up the XmlBeans source code"/> |
| <echo/> |
| <echo message="testbuild - builds, but does not run, the xbean drt"/> |
| <echo message="checkintest - runs the xbean tests"/> |
| </target> |
| |
| <target name="java_version"> |
| <echo message="${java.version}"/> |
| </target> |
| |
| <target name="clean"> |
| <delete dir="build"/> |
| </target> |
| |
| <target name="clean.jars" description="Delete any downloaded jars and accompanying licenses"> |
| <delete> |
| <fileset dir="external/lib"> |
| <include name="saxonb9-0-0-4j.zip"/> |
| <include name="saxonb8-8j.zip"/> |
| <include name="saxonb8-7-3j.zip"/> |
| <include name="saxonb8-6-1.zip"/> |
| <include name="saxonb8-2.zip"/> |
| <include name="saxonb8-1.zip"/> |
| <include name="saxon9.jar"/> |
| <include name="saxon9-dom.jar"/> |
| <include name="saxon8.jar"/> |
| <include name="saxon8-dom.jar"/> |
| <include name="xcresolver.zip"/> |
| </fileset> |
| </delete> |
| </target> |
| |
| <target name="deploy" depends="xbean"/> |
| |
| <target name="sources" depends="dirs"> |
| <zip destfile="build/ar/xbeansrc.zip" |
| basedir="." |
| excludes="build/**, test/perf/**, mytest/**"/> |
| </target> |
| |
| <property environment="env"/> |
| <target name="saxon.find1" if="env.XMLBEANS_EXTERNALS"> |
| <property name="saxon_jar" value="${env.XMLBEANS_EXTERNALS}/saxon9.jar"/> |
| <property name="saxon_dom_jar" value="${env.XMLBEANS_EXTERNALS}/saxon9-dom.jar"/> |
| </target> |
| <target name="saxon.find2"> |
| <property name="saxon_jar" value="build/lib/saxon9.jar"/> |
| <property name="saxon_dom_jar" value="build/lib/saxon9-dom.jar"/> |
| </target> |
| |
| <target name="check.saxon9.jar" depends="saxon.find1,saxon.find2"> |
| <condition property="saxon9.jar.exists"> |
| <or> |
| <available file="build/lib/saxon9.jar"/> |
| <available file="${env.XMLBEANS_EXTERNALS}/saxon9.jar"/> |
| </or> |
| </condition> |
| </target> |
| |
| <target name="saxon9.jar" depends="check.saxon9.jar, dirs" |
| unless="saxon9.jar.exists"> |
| <!-- other saxon urls |
| http://voxel.dl.sourceforge.net/sourceforge/saxon/saxonb8-1.zip |
| http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-7-3j.zip |
| http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-8j.zip |
| --> |
| <get dest="external/lib/saxonb9-0-0-4j.zip" |
| src="https://master.dl.sourceforge.net/project/saxon/OldFiles/9.0/9.0.0.4/saxonb9-0-0-4j.zip" |
| verbose="true" usetimestamp="true" ignoreerrors="true"/> |
| <unzip src="external/lib/saxonb9-0-0-4j.zip" dest="external/lib/"> |
| <patternset> |
| <include name="saxon9.jar"/> |
| <include name="saxon9-dom.jar"/> |
| </patternset> |
| </unzip> |
| |
| <copy file="external/lib/saxon9.jar" tofile="build/lib/saxon9.jar"/> |
| <!-- saxon9-dom.jar is used to register DOMObjectModel --> |
| <copy file="external/lib/saxon9-dom.jar" tofile="build/lib/saxon9-dom.jar"/> |
| </target> |
| |
| <!-- get resolver.jar --> |
| <target name="check.xcresolver.zip"> |
| <condition property="xcresolver.zip.exists"> |
| <available file="external/lib/xcresolver.zip"/> |
| </condition> |
| </target> |
| |
| <target name="xcresolver.zip" depends="check.xcresolver.zip, dirs" unless="xcresolver.zip.exists"> |
| <get dest="external/lib/xcresolver.zip" |
| src="http://archive.apache.org/dist/xml/commons/binaries/xml-commons-resolver-1.1.zip" |
| verbose="true" usetimestamp="true" ignoreerrors="true"/> |
| </target> |
| |
| <target name="check.resolver.jar"> |
| <condition property="resolver.jar.exists"> |
| <available file="build/lib/resolver.jar"/> |
| </condition> |
| </target> |
| |
| <target name="resolver.jar" depends="xcresolver.zip, check.resolver.jar" unless="resolver.jar.exists"> |
| <unzip src="external/lib/xcresolver.zip" dest="external/lib/"> |
| <patternset> |
| <include name="*/resolver.jar"/> |
| </patternset> |
| </unzip> |
| <copy file="external/lib/xml-commons-resolver-1.1/resolver.jar" tofile="build/lib/resolver.jar"/> |
| <delete dir="external/lib/xml-commons-resolver-1.1"/> |
| </target> |
| |
| |
| <target name="xbean" depends="xbean.jar,xmlpublic.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"/> |
| <mkdir dir="build/test/output"/> |
| </target> |
| |
| <target name="version"> |
| <!-- svn must be on the path --> |
| <echo message="Trying to get revision number from Subversion..."/> |
| <exec executable="svn" output="build/private/svninfo.properties" failifexecutionfails="false"> |
| <arg line="info ${basedir}"/> |
| </exec> |
| <replaceregexp file="build/private/svninfo.properties" |
| match="Last Changed Rev: (.*)" |
| replace="svn.last.rev=r\1" |
| byline="true"/> |
| <property file="build/private/svninfo.properties"/> |
| |
| <!-- just in case svn info or regexp failed --> |
| <condition property="svn.last.rev" value="unknown"> |
| <not><isset property="svn.last.rev"/></not> |
| </condition> |
| |
| <property name="version.full" value="${version.base}-${svn.last.rev}"/> |
| <property name="manifest.comment" value="Apache XmlBeans version ${version.full}"/> |
| |
| <echo message="${manifest.comment}"/> |
| </target> |
| |
| |
| <target name="default" depends="deploy"/> |
| <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"> |
| <subant target="bootstrappass" inheritAll="true" buildpath="." failonerror="false"/> |
| <subant target="bootstrappass" inheritAll="true" buildpath="." failonerror="true"/> |
| </target> |
| |
| <target name="bootstrappass" 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" |
| fork="true" |
| failonerror="true"> |
| <arg line="build/ar/xbean.jar build/private/lib/oldxbean.jar"/> |
| </java> |
| |
| <!-- when everything succeeds, check out oldxbean.jar from perforce --> |
| <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"/> |
| <!-- copy oldxbean.jar whether or not perforce succeeded --> |
| <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"> |
| <mkdir dir="build/private/classes/zipcompare"/> |
| <javac srcdir="src/zipcompare" |
| source="${javac.source}" target="${javac.target}" |
| destdir="build/private/classes/zipcompare" |
| debug="on"/> |
| </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 ${version.base} Documentation" source="${javac.source}" stylesheetfile="docs/stylesheet.css"> |
| <link href="http://xmlbeans.apache.org/${version.base}/docs/reference/index.html"/> |
| <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/> |
| <link href="http://java.sun.com/j2ee/1.4/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> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}-javadoc.jar"/> |
| <jar jarfile="build/private/xmlbeans-${version.base}${version.rc}-javadoc.jar" index="false"> |
| <fileset dir="${docs.dir}/reference"/> |
| <fileset file="LICENSE.txt"/> |
| <fileset file="NOTICE.txt"/> |
| <manifest> |
| <section name="${manifest.name}"> |
| <attribute name="Comment" value="${manifest.comment}"/> |
| <attribute name="Implementation-Title" value="${manifest.title}"/> |
| <attribute name="Implementation-Version" value="${version.full}"/> |
| <attribute name="Implementation-Vendor" value="${manifest.vendor}"/> |
| <attribute name="Implementation-URL" value="${manifest.url}"/> |
| </section> |
| </manifest> |
| </jar> |
| </target> |
| |
| |
| <target name="dist" depends="dist-src, dist-bin"> |
| </target> |
| |
| <target name="dist-bin" depends="xbean, docs"> |
| <delete dir="build/private/xmlbeans-${version.base}"/> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}.zip"/> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}.tgz"/> |
| |
| <mkdir dir="build/private/xmlbeans-${version.base}"/> |
| <copy todir="build/private/xmlbeans-${version.base}"> |
| <fileset dir="xkit"/> |
| <fileset dir="." includes="bin/**"/> |
| <fileset file="LICENSE.txt"/> |
| <fileset file="NOTICE.txt"/> |
| </copy> |
| <copy todir="build/private/xmlbeans-${version.base}/schemas/s4s"> |
| <fileset dir="src/xsdschema/schema" includes="XMLSchema.xsd"/> |
| <fileset dir="src/xmlschema/schema" includes="XML.xsd"/> |
| </copy> |
| <copy todir="build/private/xmlbeans-${version.base}/schemas"> |
| <fileset dir="test/cases/xbean/xmlobject" |
| includes="easypo.xsd,easypo.xsdconfig,numerals.xsd,nameworld.xsd"/> |
| </copy> |
| |
| <mkdir dir="build/private/xmlbeans-${version.base}/lib"/> |
| <copy todir="build/private/xmlbeans-${version.base}/lib"> |
| <fileset dir="build/lib"> |
| <include name="xbean.jar"/> |
| <include name="xmlpublic.jar"/> |
| <include name="xbean_xpath.jar"/> |
| <include name="resolver.jar"/> |
| </fileset> |
| </copy> |
| |
| <mkdir dir="build/private/xmlbeans-${version.base}/docs"/> |
| <copy todir="build/private/xmlbeans-${version.base}/docs"> |
| <fileset dir="build/docs"/> |
| </copy> |
| |
| <mkdir dir="build/private/xmlbeans-${version.base}/samples"/> |
| <copy todir="build/private/xmlbeans-${version.base}/samples"> |
| <fileset dir="samples"> |
| <include name="MixedContent/**/*"/> |
| <include name="OrderMatters/**/*"/> |
| <include name="Any/**/*"/> |
| <include name="XQueryXPath/**/*"/> |
| <include name="DateTime/**/*"/> |
| <include name="SchemaEnum/**/*"/> |
| <include name="Validation/**/*"/> |
| <include name="XsdConfig/**/*"/> |
| <exclude name="**/build/**"/> |
| </fileset> |
| </copy> |
| |
| <zip destfile="build/private/xmlbeans-${version.base}${version.rc}.zip" |
| basedir="build/private" |
| includes="xmlbeans-${version.base}/**"/> |
| <tar destfile="build/private/xmlbeans-${version.base}${version.rc}.tgz" |
| basedir="build/private" |
| includes="xmlbeans-${version.base}/**" |
| excludes="xmlbeans-${version.base}/bin/*" |
| compression="gzip"> |
| <tarfileset dir="build/private"> |
| <include name="xmlbeans-${version.base}/bin/*.cmd"/> |
| </tarfileset> |
| <tarfileset dir="build/private" mode="754"> |
| <include name="xmlbeans-${version.base}/bin/*"/> |
| <exclude name="xmlbeans-${version.base}/bin/*.cmd"/> |
| </tarfileset> |
| </tar> |
| </target> |
| |
| <target name="dist-src" depends="clean, dirs, version"> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}-src.zip"/> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}-src.tgz"/> |
| <delete file="build/private/xmlbeans-${version.base}${version.rc}-source.jar"/> |
| |
| <zip destfile="build/private/xmlbeans-${version.base}${version.rc}-src.zip"> |
| <zipfileset dir="." prefix="xmlbeans-${version.base}"> |
| <patternset id="src.dist.content.dirs" |
| includes="docs/** external/** samples/** src/**"/> |
| <patternset id="src.dist.content.dirs.bin" |
| includes="bin/**"/> |
| <patternset id="src.dist.content.files" |
| includes="build.xml README.txt xbeanenv.cmd xbeanenv.sh LICENSE.txt NOTICE.txt"/> |
| <patternset id="src.dist.content.tests" |
| includes=""/><!-- don't have tests part of the distribution yet --> |
| </zipfileset> |
| </zip> |
| <tar destfile="build/private/xmlbeans-${version.base}${version.rc}-src.tgz" |
| compression="gzip"> |
| <tarfileset dir="." prefix="xmlbeans-${version.base}"> |
| <patternset refid="src.dist.content.dirs"/> |
| <patternset refid="src.dist.content.files"/> |
| <patternset refid="src.dist.content.tests"/> |
| <patternset includes="bin/*.cmd"/> |
| </tarfileset> |
| <tarfileset dir="." prefix="xmlbeans-${version.base}" mode="754"> |
| <include name="bin/*"/> |
| <exclude name="bin/*.cmd"/> |
| </tarfileset> |
| </tar> |
| <jar jarfile="build/private/xmlbeans-${version.base}${version.rc}-source.jar" index="false"> |
| <fileset dir="src/common" includes="**/*.java"/> |
| <fileset dir="src/configschema" includes="**/*.java"/> |
| <fileset dir="src/jamsupport" includes="**/*.java"/> |
| <fileset dir="src/marshal" includes="**/*.java"/> |
| <fileset dir="src/repackage" includes="**/*.java"/> |
| <fileset dir="src/saaj_api" includes="**/*.java"/> |
| <fileset dir="src/store" includes="**/*.java"/> |
| <fileset dir="src/tools" includes="**/*.java"/> |
| <fileset dir="src/toolschema" includes="**/*.java"/> |
| <fileset dir="src/typeholder" includes="**/*.java"/> |
| <fileset dir="src/typeimpl" includes="**/*.java"/> |
| <fileset dir="src/typestore" includes="**/*.java"/> |
| <fileset dir="src/xmlcomp" includes="**/*.java"/> |
| <fileset dir="src/xmlconfig" includes="**/*.java"/> |
| <fileset dir="src/xmlinputstream" includes="**/*.java"/> |
| <fileset dir="src/xmlpublic" includes="**/*.java"/> |
| <fileset dir="src/xmlschema" includes="**/*.java"/> |
| <fileset dir="src/xpath" includes="**/*.java"/> |
| <fileset dir="src/xpath_xquery" includes="**/*.java"/> |
| <fileset dir="src/xsdschema" includes="**/*.java"/> |
| <fileset dir="src/zipcompare" includes="**/*.java"/> |
| <fileset dir="maven-plugin/src/java" includes="**/*.java"/> |
| <manifest> |
| <section name="${manifest.name}"> |
| <attribute name="Comment" value="${manifest.comment}"/> |
| <attribute name="Implementation-Title" value="${manifest.title}"/> |
| <attribute name="Implementation-Version" value="${version.full}"/> |
| <attribute name="Implementation-Vendor" value="${manifest.vendor}"/> |
| <attribute name="Implementation-URL" value="${manifest.url}"/> |
| </section> |
| </manifest> |
| </jar> |
| </target> |
| |
| <target name="enum-support.jar" |
| depends="dirs, xmlpublic.classes, typeimpl.classes"> |
| <jar jarfile="build/lib/enum-support.jar" index="false"> |
| <fileset dir="build/classes/typeimpl/"> |
| <include name="org/apache/xmlbeans/impl/values/XmlListImpl.class"/> |
| <include name="org/apache/xmlbeans/impl/values/XmlObjectBase.class"/> |
| <include name="org/apache/xmlbeans/impl/util/XsTypeConverter.class"/> |
| </fileset> |
| <fileset dir="build/classes/xmlpublic/"> |
| <include name="org/apache/xmlbeans/XmlCalendar.class"/> |
| </fileset> |
| </jar> |
| </target> |
| |
| <!-- previously in xbean.xml --> |
| |
| <target name="xbean.jar" |
| depends="dirs, version, xmlpublic.classes, |
| typeholder.template, typestore.classes, common.classes, |
| typeimpl.classes, xmlcomp.classes, |
| store.classes, saaj_api.classes, |
| marshal.classes, xpath.classes, oldxbean.jar, xsdschema.classes, |
| xmlinputstream.classes, resolver.jar, xbean_xpath.jar, |
| tools.classes, jamsupport.classes"> |
| <jar jarfile="build/lib/xbean.jar" index="true" duplicate="preserve"> |
| <fileset dir="build/classes/xmlpublic" |
| excludes="javax/**"/> |
| <fileset dir="build/classes/typeholder"/> |
| <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/store"/> |
| <fileset dir="build/classes/saaj_api"/> |
| <fileset dir="build/classes/xmlinputstream"/> |
| <fileset dir="build/classes/marshal"/> |
| <fileset dir="build/classes/repackage"/> |
| <fileset dir="build/classes/jam"/> |
| <fileset dir="build/classes/tools"/> |
| <fileset file="LICENSE.txt"/> |
| <fileset file="NOTICE.txt"/> |
| <manifest> |
| <section name="${manifest.name}"> |
| <attribute name="Comment" value="${manifest.comment}"/> |
| <attribute name="Implementation-Title" value="${manifest.title}"/> |
| <attribute name="Implementation-Version" value="${version.full}"/> |
| <attribute name="Implementation-Vendor" value="${manifest.vendor}"/> |
| <attribute name="Implementation-URL" value="${manifest.url}"/> |
| </section> |
| </manifest> |
| </jar> |
| </target> |
| |
| <!-- build XMLInputStream interface ============================================= --> |
| |
| <target name="xmlinputstream.classes" depends="dirs"> |
| <mkdir dir="build/classes/xmlinputstream"/> |
| <javac srcdir="src/xmlinputstream" |
| source="${javac.source}" target="${javac.target}" |
| destdir="build/classes/xmlinputstream" |
| debug="on"> |
| <classpath> |
| <pathelement location="build/classes/common"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- xmlpublic target ============================================== --> |
| |
| <target name="xmlpublic.classes" depends="dirs"> |
| <mkdir dir="build/classes/xmlpublic"/> |
| <javac srcdir="src/xmlpublic" sourcepath="src/xmlinputstream" destdir="build/classes/xmlpublic" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath/> |
| </javac> |
| |
| <!-- Need properties files for XmlError --> |
| <copy |
| todir="build/classes/xmlpublic"> |
| <fileset dir="src/xmlpublic"> |
| <include name="**/*.properties"/> |
| </fileset> |
| </copy> |
| </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" |
| excludes="javax/**"/> |
| <fileset dir="build/classes/xmlschema"/> |
| <fileset dir="build/classes/xsdschema"/> |
| <manifest> |
| <section name="${manifest.name}"> |
| <attribute name="Comment" value="${manifest.comment}"/> |
| <attribute name="Implementation-Title" value="${manifest.title}"/> |
| <attribute name="Implementation-Version" value="${version.full}"/> |
| <attribute name="Implementation-Vendor" value="${manifest.vendor}"/> |
| <attribute name="Implementation-URL" value="${manifest.url}"/> |
| </section> |
| </manifest> |
| </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="${javac.source}" target="${javac.target}" 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.classes, xmlinputstream.classes"> |
| <mkdir dir="build/classes/common"/> |
| <javac srcdir="src/common" destdir="build/classes/common" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath> |
| <pathelement location="build/classes/xmlinputstream"/> |
| <pathelement location="build/classes/xmlpublic"/> |
| </classpath> |
| </javac> |
| |
| </target> |
| |
| <!-- typeholder target ================================================ --> |
| |
| <property name="typeholder.name" value="org/apache/xmlbeans/impl/schema/TypeSystemHolder"/> |
| |
| <target name="typeholder.check"> |
| <condition property="typeholder.notRequired"> |
| <uptodate property="typeholder.notRequired" |
| targetfile="build/classes/typeholder/${typeholder.name}.template"> |
| <srcfiles dir="src/typeholder" includes="${typeholder.name}.java"/> |
| </uptodate> |
| </condition> |
| </target> |
| |
| <target name="typeholder.template" depends="typeholder.check, xmlpublic.classes" unless="typeholder.notRequired"> |
| <mkdir dir="build/classes/typeholder"/> |
| <javac destdir="build/classes/typeholder" source="${javac.source}" target="${javac.target}" debug="off"> |
| <classpath> |
| <pathelement location="build/classes/xmlpublic"/> |
| </classpath> |
| <src location="src/typeholder"/> |
| </javac> |
| <move |
| file="build/classes/typeholder/${typeholder.name}.class" |
| tofile="build/classes/typeholder/${typeholder.name}.template"/> |
| </target> |
| |
| <!-- typeimpl target ============================================== --> |
| |
| <target name="typeimpl.classes" depends="dirs, store.classes, |
| repackage.classes, xmlpublic.classes, typeholder.template, typestore.classes, xsdschema.classes, |
| configschema.classes, toolschema.classes, jam.classes"> |
| <mkdir dir="build/classes/typeimpl"/> |
| <javac destdir="build/classes/typeimpl" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath> |
| <pathelement location="build/classes/store"/> |
| <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/classes/xmlschema"/> |
| <pathelement location="build/classes/toolschema"/> |
| <pathelement location="build/classes/jam"/> |
| </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="${javac.source}" target="${javac.target}" 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/classes/typestore"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- marshal target =============================================== --> |
| |
| <target name="marshal.classes" depends="dirs, typeimpl.classes, xmlpublic.classes"> |
| <mkdir dir="build/classes/marshal"/> |
| <javac srcdir="src/marshal" destdir="build/classes/marshal" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath> |
| <pathelement location="build/classes/configschema"/> |
| <pathelement location="build/classes/xmlinputstream"/> |
| <pathelement location="build/classes/xmlpublic"/> |
| <pathelement location="build/classes/common"/> |
| <pathelement location="build/classes/typeimpl"/> |
| <pathelement location="build/classes/store"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| |
| <!-- support for running JAM under JDK1.5 ========================= --> |
| |
| <target name="jamsupport.classes" depends="dirs,jam.classes"> |
| <javac srcdir="src/jamsupport" destdir="build/classes/jam" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath id="jamsupport.compile.path"> |
| <pathelement location="build/classes/jam"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- saaj_api target ============================================== --> |
| |
| <target name="saaj_api.classes" depends="dirs"> |
| <mkdir dir="build/classes/saaj_api"/> |
| <javac srcdir="src/saaj_api" destdir="build/classes/saaj_api" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath id="saaj_api.compile.path"> |
| <pathelement location="build/classes/common"/> |
| <pathelement location="build/classes/xmlpublic"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- store target ============================================== --> |
| |
| <target name="store.classes" |
| depends="dirs, common.classes, xmlpublic.classes, typestore.classes, saaj_api.classes"> |
| <mkdir dir="build/classes/store"/> |
| <javac srcdir="src/store" destdir="build/classes/store" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath id="store.compile.path"> |
| <pathelement location="build/classes/typestore"/> |
| <pathelement location="build/classes/xmlinputstream"/> |
| <pathelement location="build/classes/xmlpublic"/> |
| <pathelement location="build/classes/common"/> |
| <pathelement location="build/classes/saaj_api"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <!-- tools target ============================================== --> |
| |
| <target name="tools.classes" |
| depends="dirs, common.classes, xmlpublic.classes, typestore.classes, saaj_api.classes, |
| typeimpl.classes, xmlcomp.classes"> |
| <mkdir dir="build/classes/tools"/> |
| <javac srcdir="src/tools" destdir="build/classes/tools" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath id="tools.compile.path"> |
| <pathelement location="build/classes/typestore"/> |
| <pathelement location="build/classes/xmlinputstream"/> |
| <pathelement location="build/classes/xmlpublic"/> |
| <pathelement location="build/classes/common"/> |
| <pathelement location="build/classes/saaj_api"/> |
| <pathelement location="build/classes/typeimpl"/> |
| <pathelement location="build/classes/xmlcomp"/> |
| </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/classes/xmlpublic"/> |
| </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"> |
| <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="-ea"/> |
| <arg line="${repackage_arg} -name sXMLSCHEMA -srconly -d build/classes/xsdschema -noann -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 --> |
| |
| <!-- This doesn't really work anymore, because the "schema" part now needs the package name and the |
| ant "replace" mechanism is too difficult to use to be worth it --> |
| <target name="xmlschema.check"> |
| <condition property="xmlschema.notRequired"> |
| <uptodate property="xmlschema.notRequired" targetfile="build/classes/xmlschema"> |
| <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="-ea"/> |
| <arg line="${repackage_arg} -name sXMLLANG -noann -d build/classes/xmlschema -src build/src/xmlschema -srconly src/xmlschema/schema"/> |
| </java> |
| </target> |
| |
| <!-- xmlconfig target =============================================== --> |
| |
| <target name="xmlconfig.classes" depends="dirs, xmlpublic.classes, configschema.classes"> |
| <mkdir dir="build/classes/xmlconfig"/> |
| <javac srcdir="src/xmlconfig" destdir="build/classes/xmlconfig" source="${javac.source}" target="${javac.target}" debug="on"> |
| <classpath> |
| <pathelement location="build/classes/xmlpublic"/> |
| <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"> |
| <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="-ea"/> |
| <arg line="${repackage_arg} -name sXMLCONFIG -srconly -noann -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"> |
| <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="-ea"/> |
| <arg line="${repackage_arg} -name sXMLTOOLS -srconly -noann -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="${rp_target_dir}/build.xml"/> |
| <arg value="${token}"/> |
| <arg value="${replacement}"/> |
| <classpath> |
| <pathelement location="build/classes/repackage"/> |
| </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"/> |
| <property name="jam_package_name" value="org.apache.xmlbeans.impl.jam"/> |
| |
| <!-- |
| 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. |
| |
| rp_source_dir |
| |
| From where the sources come... |
| |
| rp_target_dir |
| |
| To where the repackaged sources are built |
| --> |
| |
| |
| <target name="repackage" depends="repackage.classes"> |
| |
| <echo message="Re-packaging XmlBeans"/> |
| <echo message=" from: ${rp_source_dir}"/> |
| <echo message=" to: ${rp_target_dir}"/> |
| |
| <property |
| name="new_repackage_arg" |
| value="-repackage ${repackage_spec}"/> |
| |
| <java classname="repackage.Repackage" fork="true" failonerror="true"> |
| <classpath> |
| <pathelement location="build/classes/repackage"/> |
| </classpath> |
| <arg line="${new_repackage_arg} -f ${rp_source_dir} -t ${rp_target_dir}"/> |
| </java> |
| |
| <echo message="Build XmlBeans in ${rp_target_dir}"/> |
| |
| <ant dir="${rp_target_dir}" target="xbean" inheritAll="false"> |
| <property name="repackage_arg" value="${new_repackage_arg}"/> |
| <property name="bootstrap_schema_compiler" value="${bootstrap_schema_compiler}"/> |
| </ant> |
| |
| <ant dir="${rp_target_dir}" target="quickbootstrap" inheritAll="false"/> |
| |
| </target> |
| |
| <target name="repackage.classes"> |
| <mkdir dir="build/classes/repackage"/> |
| <javac srcdir="src/repackage" destdir="build/classes/repackage" source="${javac.source}" target="${javac.target}" debug="on"/> |
| </target> |
| |
| <!-- xpath target ============================================= --> |
| |
| <target name="xpath.classes" depends="dirs, xmlpublic.classes, store.classes, saxon9.jar"> |
| <mkdir dir="build/classes/xpath_xquery"/> |
| <mkdir dir="build/classes/xpath_xquery/META-INF"/> |
| <mkdir dir="build/classes/xpath_xquery/META-INF/services"/> |
| <copy |
| file="src/xpath_xquery/SelectPathInterface.g" |
| tofile="build/classes/xpath_xquery/META-INF/services/org.apache.xmlbeans.impl.store.PathDelegate.SelectPathInterface"/> |
| <copy |
| file="src/xpath_xquery/QueryInterface.g" |
| tofile="build/classes/xpath_xquery/META-INF/services/org.apache.xmlbeans.impl.store.QueryDelegate.QueryInterface"/> |
| <javac |
| destdir="build/classes/xpath_xquery" |
| classpathref="xpath.compile.path" |
| source="${javac.source}" target="${javac.target}" |
| debug="on"> |
| <src path="src/xpath_xquery"/> |
| <classpath id="xpath.compile.path"> |
| <pathelement location="build/classes/xmlpublic"/> |
| <pathelement location="build/classes/store"/> |
| <pathelement location="${saxon_jar}"/> |
| <pathelement location="${saxon_dom_jar}"/> |
| </classpath> |
| </javac> |
| </target> |
| |
| <target name="xbean_xpath.jar" depends="dirs, xpath.classes"> |
| <jar jarfile="build/lib/xbean_xpath.jar" basedir="build/classes/xpath_xquery"/> |
| </target> |
| |
| <!-- TEST Targets ===================================================== --> |
| <!-- All targets hook up into testbuild.xml --> |
| <property name="testbuild.file" value="testbuild.xml"/> |
| |
| <target name="testbuild"> |
| <ant antfile="${testbuild.file}" target="build"/> |
| </target> |
| |
| <target name="build.tools"> |
| <ant antfile="${testbuild.file}" target="build.test.tools"/> |
| </target> |
| |
| <target name="build.schemas"> |
| <ant antfile="${testbuild.file}" target="build.schemas"/> |
| </target> |
| |
| <target name="build.tests"> |
| <ant antfile="${testbuild.file}" target="build.tests"/> |
| </target> |
| |
| <target name="testclean"> |
| <ant antfile="${testbuild.file}" target="clean"/> |
| </target> |
| |
| <target name="clean.schemas"> |
| <ant antfile="${testbuild.file}" target="clean.schemas"/> |
| </target> |
| |
| <target name="clean.tests"> |
| <ant antfile="${testbuild.file}" target="clean.tests"/> |
| </target> |
| |
| <target name="clean.cc"> |
| <ant antfile="${testbuild.file}" target="clean.cc"/> |
| </target> |
| |
| <target name="run.junit"> |
| <ant antfile="${testbuild.file}" target="run.junit"/> |
| </target> |
| |
| <target name="checkintest"> |
| <ant antfile="${testbuild.file}" target="checkin"/> |
| </target> |
| |
| <target name="detailed"> |
| <ant antfile="${testbuild.file}" target="detailed"/> |
| </target> |
| |
| <target name="compile.run"> |
| <ant antfile="${testbuild.file}" target="compile.run"/> |
| </target> |
| |
| <path id="test.compile.path"> |
| <pathelement location="build/classes/marshal"/> |
| <pathelement location="build/classes/common"/> |
| <pathelement location="external/lib/junit.jar"/> |
| <pathelement location="build/ar/xbean.jar"/> |
| <pathelement location="build/classes/xmlinputstream"/> |
| </path> |
| |
| <path id="test.run.path"> |
| <pathelement location="build/ar/xbean.jar"/> |
| <pathelement location="external/lib/junit.jar"/> |
| </path> |
| |
| |
| <target name="drt.classes" depends="dirs"> |
| <mkdir dir="build/private/classes/drt"/> |
| <javac |
| destdir="build/private/classes/drt" |
| classpathref="test.compile.path" |
| source="${javac.source}" target="${javac.target}" |
| debug="on"> |
| <src path="test/src/drt"/> |
| </javac> |
| </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"/> |
| </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="-ea"/> |
| <arg line="-out build/private/lib/stsschema.jar test/src/stsschema"/> |
| </java> |
| </target> |
| |
| <!-- JAM deployment --> |
| <target name="jam.classes.check"> |
| <uptodate property="jam.classes.notRequired" |
| targetfile="build/ar/xbean.jar"> |
| <srcfiles dir="external/lib" includes="jam*-src.jar"/> |
| </uptodate> |
| </target> |
| |
| <target name="jam.classes" depends="jam.classes.check, dirs, repackage.classes" unless="jam.classes.notRequired"> |
| <delete dir="build/private/jam"/> |
| <mkdir dir="build/private/jam"/> |
| <unjar src="external/lib/jam-0.1.0-src.jar" dest="build/private/jam"/> |
| |
| <echo message="Re-packaging JAM"/> |
| |
| <java classname="repackage.Repackage" fork="true" failonerror="true"> |
| <classpath> |
| <pathelement location="build/classes/repackage"/> |
| </classpath> |
| <arg line="-repackage org.codehaus.jam:${jam_package_name} -f build/private/jam/src -t build/private/jam/src_repackage"/> |
| </java> |
| <!--copy file="build/private/jam/src/java.g" todir="build/private/jam/src_repackage"/--> |
| |
| <delete dir="build/classes/jam"/> |
| <mkdir dir="build/classes/jam"/> |
| <javac |
| destdir="build/classes/jam" |
| source="${javac.source}" target="${javac.target}" |
| debug="on"> |
| <src path="build/private/jam/src_repackage"/> |
| <classpath/> |
| </javac> |
| </target> |
| </project> |