<project name='jam' default='all' basedir='.'>

<!-- Build file to build and run JAM tests -->

  <property name='src-jamtest' value='.' />
  <property name='jamroot' value='../' />
   
  <property name='build_dir' value='${jamroot}/build'/>
  <property name='test_build_dir' value='${build_dir}/test'/>
  <property name='dummy_dir' value='${test_build_dir}/dummyclasses'/>
  <property name='junit_jar' value='${jamroot}/external/lib/junit.jar' />

  <path id='classpath' >

 <!-- use build/classes instead of xbean.jar for develpment convenience -->
    <pathelement path='${jamroot}/build/classes' />
    <pathelement location='${test_build_dir}' />
    <pathelement location='${junit_jar}'/>
    <pathelement path='${java.class.path}' />
  </path>

  <property name='classpath-value' refid='classpath'/>

  <target name='all' depends='build,run' />

  <target name='build' >
    <mkdir dir='${test_build_dir}'/>
    <javac
       srcdir='tests'
       destdir='${test_build_dir}'
       classpathref='classpath'
       includes='**/*.java'
     />
    <mkdir dir='${dummy_dir}'/>
    <javac
       srcdir='dummyclasses'
       destdir='${dummy_dir}'
       classpathref='classpath'
       includes='**/*.java'
     />
  </target>

  <target name='run'>

<!--
    <java fork='yes' classname='junit.textui.TestRunner' classpathref='extra-classpath'>
      <arg line='jamtest.SimpleTest' />
    </java>
-->

    <junit fork='yes'
           dir='.'
           haltonerror='yes'
           haltonfailure='yes'
           showoutput='yes'
           printsummary='yes'>
      <classpath>
        <pathelement path='${classpath-value}'/> <!--ref no workie-->
      </classpath>
      <formatter type='plain' usefile='false'/>

      <test name='org.apache.xmlbeans.test.jam.ParserJamTest'/>
      <test name='org.apache.xmlbeans.test.jam.SourcesJamTest'/>
      <test name='org.apache.xmlbeans.test.jam.ClassesJamTest'/>

    </junit>
  </target>


  <!-- JDK 1.5-specific tests.  These have to be run manually since we
       don't require 1.5 yet -->

  <target name='tiger' depends='tiger.build,tiger.run'/>

  <target name='tiger.clean' >
    <delete dir='${dummy_dir}'/>
  </target>

  <target name='tiger.build' >
    <mkdir dir='${dummy_dir}'/>
    <javac
       source='1.5'
       srcdir='dummy15classes'
       destdir='${dummy_dir}'
       classpathref='classpath'
       includes='**/*.java'
       fork='true'

      executable='e:/java/jdk150/bin/javac.exe'
      verbose='true'
      target='1.5'
     />
  </target>

  <target name='tiger.run'/>

</project>

