<?xml version="1.0"?>
<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*     - properties ending in .jar define jarfile names only (no path)
*     - properties ending in .lib are fully qualified jars (path and filename)
*     - properties ending in .dir are directory paths
*     - properties ending in .path are path refid names (classpath fragments)
*   - multi-word targets use hyphens '-'
*     - targets beginning with test- are reserved for high level test targets,
*       and are used in test results parsing
*     - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip)
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatenated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatenated
*     e.g. 'validateconnection'
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
*     e.g. ${env.XXX}.
*   - Ant properties are lower case.
*
* Contributors:
*     egwin - initial API and implementation
#******************************************************************************/-->
<project name="eclipselink.dbws.test" default="build" basedir=".">
    <!-- Test to make certain that build is run from component dir -->
    <available file="../${ant.project.name}" type="dir" property="dbws_test.is.local"/>
    <fail unless="dbws_test.is.local" message="Not running from '${ant.project.name}' directory"/>

    <condition property="is.java.version.16">
        <equals arg1="${ant.java.version}" arg2="1.6"/>
    </condition>
    <!-- Sets the warning message appropriately -->
    <condition property="jdk_message" value="Warning: Minimum of JDK6 is required for this component to build." else="java.version='${java.version}'">
        <contains string="${java.version}" substring="1.5"/>
    </condition>
    <echo message="${jdk_message}"/>

    <!-- Setup relative pathing for build -->
    <dirname  property="dbws_test.build.location_temp" file="${ant.file.eclipselink.dbws.test}"/>
    <pathconvert targetos="unix" property="dbws_test.build.location">
        <path>
            <pathelement location="${dbws_test.build.location_temp}"/>
        </path>
    </pathconvert>
    <echo message="dbws_test.build.location = '${dbws_test.build.location}'"/>
    <condition property="dbws_test.2.base.dir" value="../.." else="..">
        <contains string="${dbws_test.build.location}" substring="dbws/${ant.project.name}"/>
    </condition>
    <echo message="dbws_test.2.base.dir = '${dbws_test.2.base.dir}'"/>
    <property name="dbws_test.2.common.plugins.dir" value="${dbws_test.2.base.dir}/plugins"/>

    <property name="custom.tasks.lib" value="${dbws_test.build.location}/${dbws_test.2.base.dir}/buildsystem/ant_customizations.jar"/>
    <property name="custom.tolower.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.ToLower"/>
    <available file="${custom.tasks.lib}" property="ant_customizations.exist"/>
    <fail unless="ant_customizations.exist" message="Cannot find custom tasks library: '${custom.tasks.lib}' directory"/>
    <taskdef  name="toLower" classname="${custom.tolower.task.class}" classpath="${custom.tasks.lib}"/>

    <!-- OS environment variables have 'env' as a prefix -->
    <property environment="env"/>
    <!-- local property overrides -->
    <property file="${user.home}/build.properties"/>
    <!-- properties checked into SVN -->
    <property file="${dbws_test.build.location}/antbuild.properties"/>
    <!-- local testing properties overrides -->
    <property file="${user.home}/test.properties"/>
    <!-- testing properties checked into SVN -->
    <property file="${dbws_test.build.location}/test.properties"/>

    <!-- versioning -->
    <!-- These variables  are set in autobuild.xml. A manual build gets defaults -->
    <tstamp>
       <format property="build.date" pattern="yyyyMMdd"/>
       <format property="build.time" pattern="HHmm"/>
    </tstamp>
    <property name="build.type" value="SNAPSHOT"/>
    <property name="svn.revision" value="NA"/>
    <property name="version.string" value="${release.version}.qualifier"/>
    <property name="release.designation"  value="EclipseLink DeveloperBuild"/>

    <!-- Set Compile Path-->
    <path id="dbws_test.compile.path">
        <pathelement path="${junit.lib}"/>
        <pathelement path="../../${eclipselink.jar}"/>
        <pathelement path="${dbws_test.2.common.plugins.dir}/${asm}"/>
        <pathelement path="${dbws_test.2.common.plugins.dir}/${persistence.jar}"/>
        <fileset
            dir="${dbws_test.2.common.plugins.dir}"
            includes="${eclipselink.dbws.depend}"
        />
    </path>
    <!-- Set Run Path-->
    <path id="dbws_test.run.path">
        <path refid="dbws_test.compile.path"/>
        <pathelement path="${jdbc.driver.jar}"/>
        <pathelement path="./${eclipselink.dbws.test.common.jar}"/>
    </path>
    <!-- Test dependencies -->
    <available file="../../${eclipselink.jar}" property="eclipselink.jar.exist"/>
    <available file="${dbws_test.2.common.plugins.dir}/${asm}" type="dir" property="asm.exist"/>
    <available file="${dbws_test.2.common.plugins.dir}/${persistence.jar}" property="persistence.jar.exist"/>
    <available file="${jdbc.driver.jar}"  property="jdbc.jar.exist"/>
    <available file="./${eclipselink.dbws.test.common.jar}" property="dbws_test.common.jar.exist"/>
    <condition property="support.test">
        <and>
            <isset property="is.java.version.16"/>
            <isset property="jdbc.jar.exist"/>
            <isset property="db.platform"/>
            <matches
              pattern="org.eclipse.persistence.platform.database.MySQLPlatform"
              string="${db.platform}"
            />
        </and>
    </condition>

    <!-- Primary Targets: "jar" separate for dev use -->
    <target name="build" depends="clean, compile, package" description="build dbws test jar"/>
    <target name="test" depends="build, compile-common, run-tests" description="run tests after building"/>

    <!-- MACRO and SCRIPT definitions -->
  <presetdef name="javac">
    <javac
      debug="${javac.debug}"
      debuglevel="${javac.debuglevel}"
      optimize="${javac.optimize}"
      source="1.6"
      target="1.6"
      deprecation="${javac.deprecation}"
      failonerror="true"
      memoryMaximumSize="512m"
    />
  </presetdef>
  <presetdef
    name="DeleteDirQuietly"
    >
    <delete
      dir="_tmp_"
      quiet="true"
      failonerror="false"
    />
  </presetdef>
  <presetdef
    name="DeleteFileQuietly"
    >
    <delete
      file="_tmp_"
      quiet="true"
      failonerror="false"
    />
  </presetdef>
  <macrodef
    name="SetupDatabase"
    >
    <attribute name="testsuite-name"/>
    <sequential>
      <sql
        onerror="continue"
        keepformat="true"
        driver="${db.driver}"
        url="${db.url}"
        userid="${db.user}"
        password="${db.pwd}"
        classpathref="dbws_test.run.path"
        delimiter="|"
        >
        <fileset
          dir="./${etc.dir}"
          >
         <include name="dbsetup_@{testsuite-name}.sql"/>
        </fileset>
      </sql>
    </sequential>
  </macrodef>
  <macrodef
    name="CompileTestsuite"
    >
    <attribute name="testsuite-name"/>
    <attribute name="package-name"/>
    <sequential>
      <mkdir
        dir="./${classes.dir}"
      />
      <javac
        fork="true"
        srcdir="./${src.dir}"
        destdir="./${classes.dir}"
        includes="dbws/testing/@{package-name}/*.java"
        classpathref="dbws_test.run.path"
      />
    </sequential>
  </macrodef>
  <macrodef
    name="RunTestsuite"
    >
    <attribute name="testsuite-name"/>
    <attribute name="package-name"/>
    <sequential>
      <junit
        printsummary="withOutAndErr"
        fork="yes"
        forkmode="once"
        maxmemory="512m"
        >
        <formatter
          type="xml"
        />
        <classpath>
          <path
            refid="dbws_test.run.path"
          />
          <pathelement
            path="./${classes.dir}"
          />
        </classpath>
        <sysproperty
          key="eclipselink.logging.level"
          value="${logging.level}"
        />
        <sysproperty
          key="db.driver"
          value="${db.driver}"
        />
        <sysproperty
          key="db.url"
          value="${db.url}"
        />
        <sysproperty
          key="db.user"
          value="${db.user}"
        />
        <sysproperty
          key="db.pwd"
          value="${db.pwd}"
        />
        <sysproperty
          key="db.platform"
          value="${db.platform}"
        />
        <test
          name="dbws.testing.@{package-name}.@{testsuite-name}TestSuite"
        />
      </junit>
      <junitreport
        todir="./${report.dir}"
        >
        <fileset
          dir="."
          >
          <include
            name="TEST-*TestSuite.xml"
          />
        </fileset>
        <report
          format="noframes"
          todir="./${report.dir}"
        />
      </junitreport>
    </sequential>
  </macrodef>
  <macrodef
    name="TeardownDatabase"
    >
    <attribute name="testsuite-name"/>
    <sequential>
      <sql
        onerror="continue"
        keepformat="true"
        driver="${db.driver}"
        url="${db.url}"
        userid="${db.user}"
        password="${db.pwd}"
        classpathref="dbws_test.run.path"
        delimiter="|"
        >
        <fileset
          dir="./${etc.dir}"
          >
         <include name="dbteardown_@{testsuite-name}.sql"/>
        </fileset>
      </sql>
    </sequential>
  </macrodef>
  <macrodef
    name="CompileRun"
    >
    <attribute name="testsuite-name"/>
    <sequential>
      <toLower
        input="@{testsuite-name}"
        property="package-name"
      />
      <CompileTestsuite
        testsuite-name="@{testsuite-name}"
        package-name="${package-name}"
      />
      <RunTestsuite
        testsuite-name="@{testsuite-name}"
        package-name="${package-name}"
      />
    </sequential>
  </macrodef>
  <macrodef
    name="SetupCompileRunTeardown"
    >
    <attribute name="testsuite-name"/>
    <sequential>
      <toLower
        input="@{testsuite-name}"
        property="package-name"
      />
      <SetupDatabase
        testsuite-name="${package-name}"
      />
      <CompileRun
        testsuite-name="@{testsuite-name}"
      />
      <TeardownDatabase
        testsuite-name="${package-name}"
      />
    </sequential>
  </macrodef>

    <!-- clean -->
    <target name="clean" description="Clean generated files for common content">
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${classes.dir}"/>
            <fileset dir="." includes="${dbws_util.jar}"/>
        </delete>
    </target>

    <!-- compile -->
    <target name="compile" description="Compile DBWS Util test Common classes">
        <fail unless="eclipselink.jar.exist" message="EclipseLink cannot be found. Exiting..."/>
        <fail unless="asm.exist"             message="ASM Bundle cannot be found. Exiting..."/>
        <fail unless="persistence.jar.exist" message="Persistence JAR cannot be found. Exiting..."/>
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}"
               destdir="${classes.dir}"
               includes="dbws/testing/*.java"
               fork="true"
               classpathref="dbws_test.compile.path"
        />
    </target>

    <!-- package -->
    <target name="package" description="package DBWS Util Test Common jar">
        <jar jarfile="./${eclipselink.dbws.test.common.jar}">
            <fileset dir="${classes.dir}">
                <include name="dbws/testing/*.class"/>
            </fileset>
        </jar>
    </target>

    <!-- *** Test execution targets *** -->
    <target name="compile-common" unless="dbws_test.common.jar.exist">
        <antcall target="build" inheritAll="true" inheritRefs="true"/>
        <available file="./${eclipselink.dbws.test.common.jar}" property="dbws_test.common.jar.exist"/>
    </target>

    <target name="run-tests" if="support.test" description="setup, compile, and run dbws util testsuites">
        <DeleteDirQuietly dir="./${report.dir}"/>
        <mkdir dir="./${report.dir}"/>
        <SetupCompileRunTeardown testsuite-name="KeyMappings"/>
        <SetupCompileRunTeardown testsuite-name="Relationships"/>
        <CompileRun testsuite-name="XRDynamicEntity"/>
    </target>
</project>