<?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>
        <condition>
            <available file="${src.dir}"/>
        </condition>
        <commands>
            <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}"/>
        </commands>
        <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 sourcepathref="src-path">
            <fileset dir="${src.dir}">
                <patternset refid="src.inc.set"/>
                <patternset refid="src.exc.set"/>
            </fileset>
        </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>
