<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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="Ant - Common">
    <dirname property="Ant - Common.dir" file="${ant.file.Ant - Common}"/>
    <import file="${Ant - Common.dir}/macros.xml"/>

    <property environment="env"/>
    <property name="src.dir" value="src"/>
    <property name="dtd.dir" value="dtd"/>
    <property name="lib.dir" value="lib"/>
    <property name="build.dir" value="build"/>

    <path id="test.class.path">
        <path refid="local.class.path"/>
        <pathelement location="config"/>
    </path>
    <filelist id="test.classes"/>

    <!-- ================================================================== -->
    <!-- Removes all created files and directories                          -->
    <!-- ================================================================== -->

    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <!-- ================================================================== -->
    <!-- Makes sure the needed directory structure is in place              -->
    <!-- ================================================================== -->

    <target name="prepare" depends="init">
        <mkdir dir="${build.dir}/classes"/>
        <mkdir dir="${build.dir}/lib"/>
    </target>

    <target name="prepare-docs" depends="init">
        <mkdir dir="${build.dir}/javadocs"/>
    </target>

    <target name="init"/>

    <if>
        <available file="${src.dir}"/>
        <then>
            <selector id="src-extra-set">
                <or>
                    <filename name="**/*.properties"/>
                    <filename name="**/*.groovy"/>
                    <filename name="**/*.xml"/>
                    <filename name="**/*.bsh"/>
                    <filename name="**/*.logic"/>
                    <filename name="**/*.js"/>
                    <filename name="**/*.js"/>
                    <filename name="**/*.jacl"/>
                    <filename name="**/*.py"/>
                    <filename name="META-INF/**"/>
                </or>
            </selector>
            <property name="src.extra.dir" value="${src.dir}"/>
        </then>            
        <else>
            <selector id="src-extra-set">
                <filename name="**" negate="true"/>
            </selector>
            <property name="src.extra.dir" value="."/>
        </else>
    </if>

    <!-- ================================================================== -->
    <!-- Compilation of the source files                                    -->
    <!-- ================================================================== -->

    <target name="classes" depends="prepare">
        <javac16/>
    </target>

    <target name="jar" depends="classes">
        <main-jar/>
    </target>

    <!-- ================================================================== -->
    <!-- Build JavaDoc                                                      -->
    <!-- ================================================================== -->

    <target name="docs" depends="prepare-docs">
        <default-javadoc/>
    </target>

    <macrodef name="run-junit">
        <attribute name="build.jar" default="${build.dir}/lib/${name}.jar"/>
        <attribute name="build-test.jar" default="${build.dir}/lib/${name}-test.jar"/>
        <sequential>
            <mkdir dir="${build.dir}/test-results"/>
            <junit fork="on" haltonfailure="on" forkmode="once" showoutput="on" printsummary="off">
                <classpath>
                    <path refid="junit.class.path"/>
                    <path refid="test.class.path"/>
                    <pathelement location="@{build.jar}"/>
                    <pathelement location="@{build-test.jar}"/>
                </classpath>
                <sysproperty key="net.sourceforge.cobertura.datafile" file="${build.dir}/test-results/cobertura.dat" />
                <sysproperty key="ofbiz.home" value="${ofbiz.home.dir}"/>
                <formatter usefile="false" type="plain"/>
                <batchtest>
                    <filelist refid="test.classes"/>
                </batchtest>
            </junit>
        </sequential>
    </macrodef>

    <target name="tests" depends="jar">
        <run-junit/>
    </target>

    <target name="tests-cobertura" depends="jar">
        <mkdir dir="${build.dir}/cobertura-lib"/>
        <taskdef resource="tasks.properties">
            <classpath>
                <fileset dir="${ofbiz.home.dir}/framework/base/lib">
                    <include name="cobertura-1.9.3.jar" />
                    <include name="log4j-1.2.15.jar" />
                </fileset>
                <fileset dir="${ofbiz.home.dir}/framework/base/lib/scripting">
                    <include name="asm-3.2.jar" />
                    <include name="asm-tree-3.2.jar" />
                    <include name="jakarta-oro-2.0.8.jar" />
                </fileset>
            </classpath>
        </taskdef>
        <delete file="${build.dir}/test-results/cobertura.dat"/>
        <cobertura-instrument datafile="${build.dir}/test-results/cobertura.dat" todir="${build.dir}/cobertura-lib">
            <fileset dir="${build.dir}/lib">
                <include name="*.jar"/>
            </fileset>
        </cobertura-instrument>
        <run-junit build.jar="${build.dir}/cobertura-lib/${name}.jar" build-test.jar="${build.dir}/cobertura-lib/${name}-test.jar"/>
        <delete dir="${build.dir}/test-results/cobertura-report"/>
        <mkdir dir="${build.dir}/test-results/cobertura-report"/>
        <cobertura-report datafile="${build.dir}/test-results/cobertura.dat" destdir="${build.dir}/test-results/cobertura-report">
            <dirset dir=".">
                <patternset refid="src-dirs"/>
                <include name="src"/>
            </dirset>

            <include name="**/*.java"/>
        </cobertura-report>
    </target>

    <target name="all" depends="jar,docs"/>
</project>
