<?xml version="1.0"?><!--
  Copyright (c) 2008, 2010 Oracle. All rights reserved.  This program and the accompanying materials are made available under the  terms of the Eclipse Public License v1.0, which accompanies this distribution  and is available at http://www.eclipse.org/legal/epl-v10.html.  Contributors:    Oracle - initial API and implementation -->

<project name="testsuite" default="run" basedir=".">
	<!-- The property ${eclipse-home} should be passed into this script -->
	<!-- Set a meaningful default value for when it is not. -->
	<echo message="basedir ${basedir}" />
	<echo message="eclipse place ${eclipse-home}" />
	<!-- sets the properties plugin-name -->
	<property name="plugin-name" value="org.eclipse.jpt.jpa.eclipselink.core.tests"/>
    <echo level="debug" message="testRoot: ${testRoot}" />
    <fail message="testRoot must be set" unless="testRoot" />

	<!-- This target holds all initialization code that needs to be done for -->
	<!-- all tests that are to be run. Initialization for individual tests -->
	<!-- should be done within the body of the suite target. -->
	<target name="init">
		<tstamp/>
		<delete>
			<fileset dir="${eclipse-home}" includes="org*.xml"/>
		</delete>
	</target>

	<!-- This target defines the tests that need to be run. -->
	<target name="suite1">
    	<property file="${testRoot}/testServer.properties"/>
	    <property name="jpt-folder" value="${eclipse-home}/jpt_folder"/>
	    <delete dir="${jpt-folder}" quiet="true"/>
		
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
		    <property name="data-dir" value="${jpt-folder}"/>
			<property name="plugin-name" value="${plugin-name}"/>
			<property name="classname" value="org.eclipse.jpt.jpa.eclipselink.core.tests.internal.resource.JptJpaEclipselinkCoreResourceModelTests" />
			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
			<property name="extraVMargs" value="-Dorg.eclipse.jpt.jpa.jar=${testDir}/${jpt-persistence200-jar} -Dorg.eclipse.jpt.eclipselink.jar=${testDir}/${jpt-eclipselink200-jar}"/>
		</ant>
	</target>
	<target name="suite2">    	<property file="${testRoot}/testServer.properties"/>	    <property name="jpt-folder" value="${eclipse-home}/jpt_folder"/>	    <delete dir="${jpt-folder}" quiet="true"/>				<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">		    <property name="data-dir" value="${jpt-folder}"/>			<property name="plugin-name" value="${plugin-name}"/>			<property name="classname" value="org.eclipse.jpt.jpa.eclipselink.core.tests.internal.context.JptJpaEclipseLinkCoreContextModelTests" />			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>			<property name="extraVMargs" value="-Dorg.eclipse.jpt.jpa.jar=${testDir}/${jpt-persistence200-jar} -Dorg.eclipse.jpt.eclipselink.jar=${testDir}/${jpt-eclipselink200-jar}"/>		</ant>	</target>
	<!-- This target holds code to cleanup the testing environment after -->
	<!-- after all of the tests have been run. You can use this target to -->
	<!-- delete temporary files that have been created. -->
	<target name="cleanup">
	</target>

	<!-- This target runs the test suite. Any actions that need to happen -->
	<!-- after all the tests have been run should go here. -->
	<target name="run" depends="init, suite1, suite2, cleanup">
	</target>
</project>