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

    <path id="DateTime.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,DateTime.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="DateTime.classes" depends="init">
        <mkdir dir="build/classes"/>
		
        <javac srcdir="src"
            destdir="build/classes"
            classpathref="DateTime.path"
            debug="on"
            source="1.8"
            />  
    </target>
     	
 	 <!-- ========================== run ==== -->

    <target name="run" depends="init,build">
        <echo message="============================== running DateTime"/>
        <java
            classname="org.apache.xmlbeans.samples.datetime.DateTime"
            classpathref="DateTime.path"
            fork="true">
            <arg line="xml/datetimesample.xml xml/newdatetimesample.xml"/>
        </java>
    </target>
  
     <!-- ========================== test ==== -->

    <target name="test" depends="init,build">
        <echo message="============================== testing DateTime"/>
        <java
            classname="org.apache.xmlbeans.samples.datetime.DateTimeTest"
           classpathref="DateTime.path"
            fork="true">
            <arg line="xml/datetimesample.xml xml/newdatetimesample.xml"/>
        </java>
    </target>

    
</project>
