<?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="OFBiz - Base" default="jar" basedir=".">
    <import file="../../common.xml"/>

    <!-- ================================================================== -->
    <!-- Initialization of all property settings                            -->
    <!-- ================================================================== -->

    <property name="name" value="ofbiz-base"/>
    <property name="ofbiz.home.dir" value="../.."/>

    <path id="local.class.path">
        <fileset dir="${lib.dir}" includes="*.jar"/>
        <fileset dir="${lib.dir}/commons" includes="*.jar"/>
        <fileset dir="${lib.dir}/j2eespecs" includes="*.jar"/>
        <fileset dir="${lib.dir}/scripting" includes="*.jar"/>
        <fileset dir="../start/build/lib" includes="*.jar"/>
    </path>
    
    <!-- ================================================================== -->
    <!-- Makes sure the needed directory structure is in place              -->
    <!-- ================================================================== -->

    <target name="prepare" depends="clean-lib">
        <mkdir dir="${build.dir}/classes"/>
        <mkdir dir="${build.dir}/lib"/>
    </target>
    
    <!-- ================================================================== -->
    <!-- Compilation of the source files                                    -->
    <!-- ================================================================== -->               

    <target name="classes" depends="prepare">
        <!-- make sure we have crypto packages available -->
        <condition property="exclude.crypto" value="org/ofbiz/base/crypto/**">
            <not>
                <available classname="javax.crypto.Cipher" classpathref="local.class.path"/>
            </not>
        </condition>

        <!-- compile base -->
	<javac15 destdir="${build.dir}/classes" srcdir="${src.dir}">            
            <exclude name="${exclude.crypto}"/>
            <exclude name="org/ofbiz/base/util/OfbizJsBsfEngine.java"/>
        </javac15>
    </target>

    <target name="jar" depends="classes">
        <jar jarfile="${build.dir}/lib/${name}.jar">
            <fileset dir="${build.dir}/classes"/>
            <fileset dir="${src.dir}">
                <include name="**/*.properties,**/*.xml,**/*.bsh,**/*.logic,**/*.js,**/*.jacl,**/*.py"/>
                <include name="META-INF/**"/>
            </fileset>
            <!-- also put the DTDs in the jar file... -->
            <fileset dir="${dtd.dir}" includes="*.dtd"/>
            <!-- now add the NOTICE and LICENSE files to allow the jar file to be distributed alone -->
            <zipfileset dir="${ofbiz.home.dir}" prefix="META-INF" includes="NOTICE,LICENSE"/>
        </jar>
    </target>
    
    <!-- ================================================================== -->
    <!-- Build JavaDoc                                                      -->
    <!-- ================================================================== -->

    <target name="docs" depends="prepare-docs">
        <javadoc packagenames="org.ofbiz.base.*" 
                 classpathref="local.class.path"
                 destdir="${build.dir}/javadocs" 
                 Windowtitle="Open for Business - Base API">
            <sourcepath path="${src.dir}"/>            
        </javadoc>
    </target>
</project>
