<!--/*******************************************************************************
* 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 '.'
*   - multi-word targets use hyphens '-' 
*   - 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:
*     Oracle - initial API and implementation
#******************************************************************************/-->

<project name="Build Utility Library Tests" default="build.all" basedir=".">
    <!-- =================================================================== -->
    <target name="init">
        <tstamp>
            <format property="build.date" pattern="yyyyMMdd"/>
            <format property="build.time" pattern="HHmm"/>
        </tstamp>
        <property environment="env"/>

        <property name="stop.on.error" value="false"/>
        <property name="optimize.code"    value="off"/>
        <property name="report.deprecation" value="off"/>
        <property name="javac.debug"       value="on"/>
        <property name="javac.debuglevel"  value="lines,vars,source"/>
        <property name="target.jvm"   value="${javac.version}"/>
        <property name="_nowarn"      value="on"/>
        <echo message="BuildDate.BuildTime='${build.date}.${build.time}'"/>
        <echo message="java.version='${java.version}'"/>
        <echo message="os.name='${os.name}'"/>
        <echo message="os.arch='${os.arch}'"/>
        <echo message="os.version='${os.version}'"/>
        <echo message="stop.on.error='${stop.on.error}'"/>
        <echo message="optimize.code='${optimize.code}'"/>
        <echo message="report.deprecation='${report.deprecation}'"/>
        <echo message="target.jvm='${target.jvm}'"/>
        <echo message="_nowarn='${_nowarn}'"/>
    </target>

    <!-- =================================================================== -->
    <!-- =================================================================== -->

    <target name="build-all" depends="compile-utility, jar-utility"/>

    <!-- =================================================================== -->
    <!--  Properties                                                         -->
    <!-- =================================================================== -->
    <target name="properties-init" depends="init">
        <property file="build.properties"/>
        <property name="build.type" value="SNAPSHOT"/>
        <property name="release.designation" value="EclipseLink DeveloperBuild"/>
        <property name="version.string" value="${release.version}.qualifier"/>
        <mkdir dir="${_classesDestDir}"/>
        <mkdir dir="${_jarDestDir}"/>
        <condition property="junit.classpath.exist" >
            <isset property="junit.classpath"/>
        </condition>
    </target>

    <!-- =================================================================== -->
    <!--  Clean                                                              -->
    <!-- =================================================================== -->
    <target name="clean" depends="init">
        <property file="build.properties"/>

        <delete dir="${_classesDestDir}" includeEmptyDirs="true" quiet="true"/>
        <delete file="${_jarDestDir}/${utility.jarfile}" quiet="true"/>
        <delete file="${_jarDestDir}/${utility.jarfile.src}" quiet="true"/>
    </target>

    <!-- =================================================================== -->
    <!--  Compile                                                            -->
    <!-- =================================================================== -->
    <target name="compile-utility" depends="properties-init">
        <mkdir dir="${compile.utility.destdir}"/>
        <javac
            classpath="${compile.utility.classpath}"
            srcdir="${compile.utility.srcdir}"
            destdir="${compile.utility.destdir}"
            debug="${javac.debug}"
            debuglevel="${javac.debuglevel}"
            failonerror="${stop.on.error}"
            encoding="UTF-8"
            optimize="${optimize.code}"
            deprecation="${report.deprecation}"
            source="${target.jvm}"
            target="${target.jvm}"
            nowarn="${_nowarn}"
            includes="**/*.java"
            excludes="**/*&#35;*/**, **/.ade_path/**"
        />
    </target>

    <!-- =================================================================== -->
    <!--  Jar                                                                -->
    <!-- =================================================================== -->
    <target name="jar-utility" depends="jar-utility-lib, jar-utility-src"/>

    <target name="jar-utility-lib" depends="properties-init">
        <delete file="${_jarDestDir}/${utility.jarfile}"/>
        <jar jarfile="${_jarDestDir}/${utility.jarfile}">
            <manifest>
                <attribute name="Specification-Title" value="${_productName}" />
                <attribute name="Specification-Vendor" value="Eclipse Project" />
                <attribute name="Specification-Version" value="${release.version}" />
                <attribute name="Implementation-Title" value="test.org.eclipse.persistence.workbench.utility" />
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Implementation-Vendor" value="Eclipse Project" />
                <attribute name="Library-Designation" value="${_LibraryName}" />
            </manifest>
            <fileset
                dir="${compile.utility.destdir}"
                includes="**/*.class"
            />
        </jar>
    </target>
    <target name="jar-utility-src" depends="properties-init">
        <delete file="${_jarDestDir}/${utility.jarfile.src}"/>
        <jar jarfile="${_jarDestDir}/${utility.jarfile.src}">
            <manifest>
                <attribute name="Specification-Title" value="${_productName}" />
                <attribute name="Specification-Vendor" value="Eclipse Project" />
                <attribute name="Specification-Version" value="${release.version}" />
                <attribute name="Implementation-Title" value="test.org.eclipse.persistence.workbench.utility" />
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Implementation-Vendor" value="Eclipse Project" />
                <attribute name="Library-Designation" value="${_LibraryName}" />
            </manifest>
            <fileset
                dir="${compile.utility.srcdir}"
                includes="**/*.java"
                excludes="**/*&#35;*/**, **/.ade_path/**"
            />
        </jar>
    </target>

    <!-- =================================================================== -->
    <!--  JUnit tests - run this target from the master build project only.  -->
    <!-- =================================================================== -->

    <target name="checkClasspath" depends="properties-init" unless="junit.classpath.exist">
      <echo message="Run the test-all target from the master build project only." />
        <fail>Run the master build project</fail>
    </target>

    <target name="test-all" depends="checkClasspath">
        <junit>
            <classpath path="${junit.classpath}" />
            <formatter type="brief" usefile="false" />
            <test name="test.org.eclipse.persistence.workbench.utility.AllUtilityTests" />
        </junit>
    </target>

</project>
