<?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"/>
        <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}"/>
                </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"/>
        <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>
