<!--
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="SubstitutionGroup" default="build">
    <property environment="env"/>

    <path id="SubstitutionGroup.path">
        <path refid="xmlbeans.path"/>
        <fileset dir="build/lib" includes="*.jar"/>
        <pathelement path="build/classes"/>
    </path>

    <target name="init">
        <property name="xmlbeans.home" value="${env.XMLBEANS_HOME}"/>
        <echo message="xmlbeans.home: ${xmlbeans.home}"/>

        <!-- check for xbean.jar from binary distribution -->
        <available
            property="xmlbeans.lib"
            value="${xmlbeans.home}/lib"
            file="${xmlbeans.home}/lib/xbean.jar" />

        <!-- check for xbean.jar compiled from source -->
        <available
            property="xmlbeans.lib"
            value="${xmlbeans.home}/build/lib"
            file="${xmlbeans.home}/build/lib/xbean.jar" />

        <fail message="Set XMLBEANS_HOME in your enviornment."
            unless="xmlbeans.lib"/>

        <echo message="xmlbeans.lib: ${xmlbeans.lib}"/>
        <path id="xmlbeans.path">
            <fileset dir="${xmlbeans.lib}" includes="*.jar"/>
        </path>

        <taskdef name="xmlbean"
            classname="org.apache.xmlbeans.impl.tool.XMLBean"
            classpathref="xmlbeans.path"/>
    </target>

    <!-- ========================== clean ==== -->

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

    <!-- ========================== build ==== -->

    <target name="build" depends="init,schemas.jar,SubstitutionGroup.classes">
    </target>

     <target name="schemas.check">
        <uptodate property="schemas.notRequired"
            targetfile="build/lib/schemas.jar">
            <srcfiles dir="schemas" includes="**/*.xsd"/>
        </uptodate>
    </target>

    <target name="schemas.jar" depends="init,schemas.check"
        unless="schemas.notRequired">
        <mkdir dir="build/lib"/>

        <xmlbean schema="schemas"
            destfile="build/lib/schemas.jar"
            srcgendir="build/src"
            classpathref="xmlbeans.path"
            debug="on"
            />
    </target>

    <target name="SubstitutionGroup.classes" depends="init">
        <mkdir dir="build/classes"/>

        <javac srcdir="src"
            destdir="build/classes"
            classpathref="SubstitutionGroup.path"
            debug="on"
            source="1.8"
            />
    </target>

     <!-- ========================== run ==== -->

    <target name="run" depends="init,build">
        <echo message="============================== running SubstitutionGroup"/>
        <java
            classname="org.apache.xmlbeans.samples.substitutiongroup.SubstitutionGroup"
            classpathref="SubstitutionGroup.path"
            fork="true">
            <arg line="xml/Purchase-Order.xml xml/newPurchase-Order.xml"/>
        </java>
    </target>

    <!-- ========================== test ==== -->

    <target name="test" depends="init,build">
        <echo message="============================== testing SchemaEnum"/>
        <java
            classname="org.apache.xmlbeans.samples.substitutiongroup.SubstitutionGroupTest"
            classpathref="SubstitutionGroup.path"
            fork="true">
            <arg line="xml/Purchase-Order.xml xml/newPurchase-Order.xml"/>
        </java>
    </target>

</project>
