<!--
 * Copyright (c) 2003 by Yoon Kyung Koo.
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL YOON KYUNG KOO OR THE OTHER
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
-->
<project name="my-j2ee-project" basedir="./" default="all">

    <!-- Project settings -->
    <property name="project.title" value="My J2EE Project"/>
    <property name="project.distname" value="my-j2ee-project"/>
    <property name="project.version" value="0.1"/>
    <property name="debug" value="true"/>

    <!-- Path settings -->
    <property name="javadoc.dir" value="doc/api"/>
    <property name="src.dir.root" value="src"/>
    <property name="lib.dir" value="lib"/>
    <property name="build.dir" value="build"/>
    <property name="docroot.dir" value="docroot"/>
    <property name="java.src.dir.root" value="${src.dir.root}/java"/>
    <property name="classes.dir.root" value="${build.dir}/classes"/>
    <property name="dist.dir.root" value="${build.dir}/dist"/>

    <property name="library.list"
     value="commons-beanutils.jar commons-validator.jar commons-collections.jar commons-digester.jar commons-logging.jar struts.jar log4j.jar" />


    <!-- Local system paths (system dependent part) -->
    <property name="weblogic.home" value="/home/bea/weblogic700/server"/>
    <property name="weblogic.jar" value="${weblogic.home}/lib/weblogic.jar"/>
    <property name="weblogic.dtd.dir" value="${src.dir.root}/ext/dtd"/>
    <property name="deploy.dir" value="/home/bea/user_projects/my-j2ee-project/applications"/> 
    <!-- ${java.home} is already set to JRE home -->
    <property name="jdk.home" value="/usr/java1.3"/> 

    <!-- already included in weblogic.jar so not necessary
    <property name="jdbc20ext.jar" value="/javasoft/lib/jdbc2_0-stdext.jar"/>
    <property name="servlet.jar" value="/javasoft/lib/servlet.jar"/>
    //-->

    <!-- classpath for Struts 1.1 -->
    <path id="compile.classpath">
        <fileset dir="${lib.dir}"
	  includes="${library.list}" />
        <pathelement path ="${weblogic.jar}"/>
    </path>

    <!-- main build target dependency tree
                                          rebuild
                                         /        \
                                     deploy       clean.all
                                   /
                               all
                             /
                          ear
                          /
                      web.all      web-test.all          web-hot-test.all
                      /                     \            /
                 business.dist            business-test.dist
                            \              /
                              ejb.dist.all
                                   |
                                dto.dist
                                   |
                               common.dist
     -->

    <!-- Check timestamp on files -->
    <target name="prepare">
      <tstamp/>
      <mkdir  dir="${build.dir}"/>
      <mkdir  dir="${dist.dir.root}"/>
      <mkdir  dir="${classes.dir.root}"/>
    </target>

    <!-- Remove classes directory for clean build -->
    <target name="clean"
      description="Prepare for clean build">
      <delete dir="${build.dir}"/>
      <mkdir dir="${build.dir}"/>
      <mkdir  dir="${dist.dir.root}"/>
      <mkdir  dir="${classes.dir.root}"/>
    </target>

    <!--
       common (common util)
      -->
    <property name="common.src.dir" value="${java.src.dir.root}/common"/>
    <property name="common.classes.dir" value="${classes.dir.root}/common"/>
    <property name="common.dist.dir" value="${dist.dir.root}/common"/>
    <property name="common.dist.jar" value="${common.dist.dir}/my-j2ee-project-common.jar"/>

    <target name="common.prepare" depends="prepare">
      <mkdir dir="${common.dist.dir}" />
      <mkdir dir="${common.classes.dir}" />
    </target>

    <!-- Copy any resource or configuration files -->
    <target name="common.resources">
        <copy todir="${common.classes.dir}" includeEmptyDirs="no">
            <fileset dir="${common.src.dir}">
              <patternset> <!-- include log configuration file --> 
                <include name="**/*.properties"/>
              </patternset>
            </fileset>
        </copy>
    </target>

    <!-- Normal build of common -->
    <target name="common.compile" depends="common.prepare,common.resources">
        <javac srcdir="${common.src.dir}"
	    destdir="${common.classes.dir}" 
	    debug="${debug}">
            <classpath>
	      <path refid="compile.classpath"/>
            </classpath>
        </javac>
    </target>

    <target name="common.dist" depends="common.compile">
      <jar
        jarfile="${common.dist.jar}"
        basedir="${common.classes.dir}"
	compress="false" />
    </target>

    <target name="common.clean">
      <delete dir="${common.dist.dir}" />
      <delete dir="${common.classes.dir}" />
    </target>

    <target name="common.rebuild" depends="common.prepare,common.dist"/>


    <!--
       dto (data transfer objects, business exceptions)
      -->
    <property name="dto.src.dir" value="${java.src.dir.root}/dto"/>
    <property name="dto.classes.dir" value="${classes.dir.root}/dto"/>
    <property name="dto.dist.dir" value="${dist.dir.root}/dto"/>
    <property name="dto.dist.jar" value="${dto.dist.dir}/my-j2ee-project-dto.jar"/>

    <target name="dto.prepare" depends="prepare">
      <mkdir dir="${dto.dist.dir}" />
      <mkdir dir="${dto.classes.dir}" />
    </target>

    <!-- Normal build of dto -->
    <target name="dto.compile" depends="common.dist,dto.prepare">
        <javac srcdir="${dto.src.dir}"
	 destdir="${dto.classes.dir}"
	 debug="${debug}">
            <classpath>
	      <path refid="compile.classpath"/>
              <pathelement location="${common.dist.jar}"/>
            </classpath>
        </javac>
    </target>

    <target name="dto.dist" depends="dto.compile">
      <jar
        jarfile="${dto.dist.jar}"
        basedir="${dto.classes.dir}"
	compress="false" />
    </target>

    <target name="dto.clean">
      <delete dir="${dto.dist.dir}" />
      <delete dir="${dto.classes.dir}" />
    </target>

    <target name="dto.rebuild" depends="common.rebuild,dto.prepare,dto.dist"/>


    <!--
       ejb (all EJBs)
      -->
    <property name="ejb.src.dir" value="${java.src.dir.root}/ejb"/>
    <property name="ejb.classes.dir" value="${classes.dir.root}/ejb"/>
    <property name="ejb.dist.dir" value="${dist.dir.root}/ejb"/>
    <property name="ejb.ejbcgen.dir" value="ejbcgen"/>
    <target name="ejb.prepare.all" depends="dto.dist">
      <mkdir  dir="${ejb.classes.dir}"/>
      <mkdir  dir="${ejb.dist.dir}"/>
    </target>

    <!-- dist of all ejb jar files -->
    <target name="ejb.dist.all">

      <!-- build ExpenseCause EJB -->
      <antcall target="ejb.dist.parametric">
        <param name="ejb.name" value="MyEJB" />
        <param name="ejb.name.lower" value="myejb" />
      </antcall>

    </target>

    <target name="ejb.clean.all">
      <delete  dir="${ejb.classes.dir}"/>
      <mkdir  dir="${ejb.classes.dir}"/>
      <delete  dir="${ejb.dist.dir}"/>
      <mkdir  dir="${ejb.dist.dir}"/>
      <delete  dir="${ejb.ejbcgen.dir}"/>
      <delete> <!-- delete generated ejb client jar -->
        <fileset dir=".">
           <include name="*Client.jar"/>
        </fileset>
      </delete>
    </target>

    <target name="ejb.rebuild.all" depends="dto.rebuild,ejb.clean.all,ejb.dist.all"/>

    <!--
         each EJBs - parametric build (ejb.{param})
      -->

    <!-- Build ExpenseCause ejb projects and create distribution-->
    <target name="ejb.prepare.parametric" depends="ejb.prepare.all"/>

    <!-- Normal build of application -->
    <target name="ejb.compile.parametric" depends="ejb.prepare.parametric">
        <javac srcdir="${ejb.src.dir.parametric}"
	 destdir="${ejb.classes.dir.parametric}"
	 debug="${debug}">
            <classpath>
	      <path refid="compile.classpath"/>
              <pathelement location="${common.dist.jar}"/>
              <pathelement location="${dto.dist.jar}"/>
            </classpath>
        </javac>
    </target>

    <!-- Remove classes directory for clean build -->
    <target name="ejb.clean.parametric"
      description="Prepare for clean build">
      <delete dir="${ejb.classes.dir.parametric}"/>
      <mkdir  dir="${ejb.classes.dir.parametric}"/>
    </target>

    <!-- Create binary distribution -->
    <target name="ejb.dist.parametric"
        description="Create EJB expense cause binary distribution">
      <property name="ejb.classes.dir.parametric" value="${ejb.classes.dir}/${ejb.name}" />
      <property name="ejb.descriptor.dir.parametric" value="${ejb.src.dir}/${ejb.name}/deployment"/>
      <antcall target="ejb.clean.parametric">
        <param name="ejb.classes.dir.parametric" value="${ejb.classes.dir}/${ejb.name}" />
      </antcall>

      <antcall target="ejb.prepare.parametric" />

      <antcall target="ejb.compile.parametric">
        <param name="ejb.src.dir.parametric" value="${ejb.src.dir}/${ejb.name}/src" />
        <param name="ejb.classes.dir.parametric" value="${ejb.classes.dir.parametric}" />
      </antcall>
     
      <ejbjar srcdir="${ejb.classes.dir.parametric}"
        descriptordir="${ejb.descriptor.dir.parametric}"
	basejarname="${ejb.name}" >
	<weblogic destdir="${ejb.dist.dir}"
	  keepgeneric="false"
	  args="-g -keepgenerated"
	  suffix=".jar"
	  compiler="${jdk.home}/bin/javac"
	  ejbcclass="weblogic.ejbc"
	  rebuild="false"
	  newCMP="true">
          <classpath>
            <path refid="compile.classpath"/>
            <pathelement location="${common.dist.jar}"/>
            <pathelement location="${dto.dist.jar}"/>
          </classpath>
	</weblogic>
	<dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
	  location="${weblogic.dtd.dir}/ejb20-jar.dtd"/>
	<dtd publicId="-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN"
	  location="${weblogic.dtd.dir}/weblogic700-ejb-jar.dtd"/>
	<dtd publicId="-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN"
	  location="${weblogic.dtd.dir}/weblogic-rdbms20-persistence-700.dtd"/>
      </ejbjar>
      <!-- update manifest file to indicate external jar references -->
      <jar destfile="${ejb.dist.dir}/${ejb.name}.jar"
	compress="false"
        update="true">
	<manifest>
          <attribute name="Class-Path"
	   value="${library.list} pilot-common.jar pilot-dto.jar"/>
        </manifest>
      </jar>
      <!-- move generated client.jar to dist dir -->
      <copy file="${ejb.name}Client.jar" todir="${ejb.dist.dir}" />
    </target>


    <!--
       business (business delegates)
      -->
    <property name="business.src.dir" value="${java.src.dir.root}/business"/>
    <property name="business.classes.dir" value="${classes.dir.root}/business"/>
    <property name="business.dist.dir" value="${dist.dir.root}/business"/>
    <property name="business.dist.jar" value="${business.dist.dir}/my-j2ee-project-business.jar"/>

    <target name="business.prepare" depends="prepare">
      <mkdir dir="${business.dist.dir}" />
      <mkdir dir="${business.classes.dir}" />
    </target>

    <!-- Normal build of business -->
    <target name="business.compile" depends="ejb.dist.all,business.prepare">
        <javac srcdir="${business.src.dir}"
	 destdir="${business.classes.dir}"
	 debug="${debug}">
	    <!-- here to add paths to ejb jars -->
	    <classpath>
               <path refid="compile.classpath"/>
               <pathelement location="${common.dist.jar}"/>
               <pathelement location="${dto.dist.jar}"/>
               <fileset dir="${ejb.dist.dir}">
                  <include name="**/*.jar"/>
               </fileset>
            </classpath>
        </javac>
    </target>

    <target name="business.dist" depends="business.compile">
      <jar
        jarfile="${business.dist.jar}"
        basedir="${business.classes.dir}"
	compress="false" />
    </target>

    <target name="business.clean">
      <delete dir="${business.dist.dir}" />
      <delete dir="${business.classes.dir}" />
    </target>

    <target name="business.rebuild" depends="ejb.rebuild.all,business.prepare,business.dist"/>


    <!--
       business-test (business delegates for WEB TEST)
      -->
    <property name="business-test.src.dir" value="${java.src.dir.root}/business-test"/>
    <property name="business-test.classes.dir" value="${classes.dir.root}/business-test"/>
    <property name="business-test.dist.dir" value="${dist.dir.root}/business-test"/>
    <property name="business-test.dist.jar" value="${business-test.dist.dir}/my-j2ee-project-business-test.jar"/>

    <target name="business-test.prepare" depends="prepare">
      <mkdir dir="${business-test.dist.dir}" />
      <mkdir dir="${business-test.classes.dir}" />
    </target>

    <!-- Normal build of business-test -->
    <target name="business-test.compile" depends="dto.dist,business-test.prepare">
        <javac srcdir="${business-test.src.dir}"
	 destdir="${business-test.classes.dir}"
	 debug="${debug}">
	    <!-- here to add paths to ejb jars -->
	    <classpath>
               <path refid="compile.classpath"/>
               <pathelement location="${common.dist.jar}"/>
               <pathelement location="${dto.dist.jar}"/>
            </classpath>
        </javac>
    </target>

    <target name="business-test.dist" depends="business-test.compile">
      <jar
        jarfile="${business-test.dist.jar}"
        basedir="${business-test.classes.dir}"
	compress="false" />
    </target>

    <target name="business-test.clean">
      <delete dir="${business-test.dist.dir}" />
      <delete dir="${business-test.classes.dir}" />
    </target>

    <target name="business-test.rebuild" depends="dto.rebuild,business-test.prepare,business-test.dist"/>


    <!--
       main Web Apps (web)
      -->
    <property name="web.src.dir" value="${java.src.dir.root}/web"/>
    <property name="web.classes.dir" value="${classes.dir.root}/web"/>
    <property name="web.dist.dir" value="${dist.dir.root}/web"/>
    <property name="web.web-inf.dir" value="${docroot.dir}/WEB-INF"/>
    <property name="web.lib.dir" value="${web.dist.dir}/lib"/>
    <property name="web.dist.jar" value="${web.dist.dir}/my-j2ee-project-web.jar"/>
    <property name="web.dist.war" value="${web.dist.dir}/my-j2ee-project.war"/>

    <target name="web.prepare" depends="prepare">
      <mkdir dir="${web.dist.dir}" />
      <mkdir dir="${web.classes.dir}" />
      <mkdir dir="${web.lib.dir}" />
    </target>

    <!-- Copy any resource or configuration files -->
    <target name="web.resources">
        <copy todir="${web.classes.dir}" includeEmptyDirs="no">
            <fileset dir="${web.src.dir}">
              <patternset>
                <include name="**/*.conf"/>
                <include name="**/*.xml"/>
              </patternset>
            </fileset>
        </copy>
	<native2ascii encoding="UTF8" src="${web.src.dir}" dest="${web.classes.dir}"
	   includes="**/*.properties" />
    </target>

    <!-- Normal build of application -->
    <target name="web.compile" depends="business.dist,web.prepare,web.resources">
        <javac srcdir="${web.src.dir}"
	 destdir="${web.classes.dir}"
	 debug="${debug}">
	    <!-- here to add paths to ejb jars -->
	    <classpath>
               <path refid="compile.classpath"/>
               <pathelement location="${common.dist.jar}"/>
               <pathelement location="${dto.dist.jar}"/>
               <pathelement location="${business.dist.jar}"/>
               <fileset dir="${ejb.dist.dir}">
                  <include name="**/*.jar"/>
               </fileset>
            </classpath>
        </javac>
    </target>


    <!-- Build Javadoc documentation -->
    <target name="web.javadoc"
     description="Generate JavaDoc API docs">
        <delete dir="${javadoc.dir}"/>
        <mkdir dir="${javadoc.dir}"/>
        <javadoc sourcepath="${web.src.dir}"
            destdir="${javadoc.dir}"
            classpath="${weblogic.jar}" 
            packagenames="*"
            author="true"
            private="true"
            version="true"
            windowtitle="${project.title} API Documentation"
            doctitle="&lt;h1&gt;${project.title} Documentation (Version ${project.version})&lt;/h1&gt;"
            bottom="Copyright &#169; 2002">
	    <classpath>
               <path refid="compile.classpath"/>
               <pathelement location="${common.dist.jar}"/>
               <pathelement location="${dto.dist.jar}"/>
               <pathelement location="${business.dist.jar}"/>
               <fileset dir="${ejb.dist.dir}">
                  <include name="**/*.jar"/>
               </fileset>
            </classpath>
        </javadoc>
    </target>


    <!-- Build entire project -->
    <target name="web.project" depends="ejb.dist.all,web.compile"/>

    <target name="web.dist.prepare">
      <delete file="${web.dist.jar}" />
      <delete file="${web.dist.war}" />
    </target>

    <!-- Create binary distribution -->
    <target name="web.dist" depends="web.project,web.dist.prepare"
        description="Create binary distribution">
      <jar
        jarfile="${web.dist.jar}"
        basedir="${web.classes.dir}"
	compress="false" />
      <copy
        file="${web.dist.jar}"
        todir="${web.lib.dir}"/>

      <war
        basedir="${docroot.dir}"
        warfile="${web.dist.war}"
        webxml="${web.web-inf.dir}/web.xml"
	compress="false">
        <lib dir="${common.dist.dir}"/>
        <lib dir="${dto.dist.dir}"/>
        <lib dir="${business.dist.dir}"/>
        <lib dir="${web.lib.dir}"/>
       </war>

    </target>

    <target name="web.clean">
      <delete dir="${web.dist.dir}" />
      <delete dir="${web.classes.dir}" />
      <delete dir="${web.lib.dir}" />
    </target>

    <!-- Build web project and create distribution-->
    <target name="web.all" depends="web.dist"/>

    <!--
       test Web Apps (web-test)
      -->
    <!-- Normal build of application -->
    <target name="web-test.compile" depends="business-test.dist,web.prepare,web.resources">
        <javac srcdir="${web.src.dir}"
	 destdir="${web.classes.dir}"
	 debug="${debug}">
	    <!-- here to add paths to ejb jars -->
	    <classpath>
               <path refid="compile.classpath"/>
               <pathelement location="${common.dist.jar}"/>
               <pathelement location="${dto.dist.jar}"/>
               <pathelement location="${business-test.dist.jar}"/>
            </classpath>
        </javac>
    </target>

    <!-- Build entire project -->
    <target name="web-test.project" depends="web-test.compile"/>

    <target name="web-test.dist.prepare">
      <delete file="${web.dist.jar}" />
      <delete file="${web.dist.war}" />
    </target>

    <!-- Create binary distribution -->
    <target name="web-test.dist" depends="web-test.project,web-test.dist.prepare"
        description="Create binary distribution">
      <jar
        jarfile="${web.dist.jar}"
        basedir="${web.classes.dir}"
	compress="false" />
      <copy
        file="${web.dist.jar}"
        todir="${web.lib.dir}"/>

      <war
        basedir="${docroot.dir}"
        warfile="${web.dist.war}"
        webxml="${web.web-inf.dir}/web.xml"
	compress="false">
        <lib dir="${common.dist.dir}"/>
        <lib dir="${dto.dist.dir}"/>
        <lib dir="${business-test.dist.dir}"/>
        <lib dir="${web.lib.dir}"/>
       </war>

    </target>

    <!-- Build web project and create distribution-->
    <target name="web-test.all" depends="web-test.dist"/>

    <!-- Build web project and create distribution-->
    <target name="web-test.rebuild" depends="web.clean,business-test.rebuild,web-test.all"/>

    <!--
       hot deploy Web Apps for test (web-hot-test)
      -->
    <property name="web-hot-test.webapps.dir" value="${deploy.dir}/${project.distname}"/>
    <property name="web-hot-test.web-inf.dir" value="${web-hot-test.webapps.dir}/WEB-INF"/>
    <property name="web-hot-test.classes.dir"
       value="${web-hot-test.web-inf.dir}/classes" />
    <property name="web-hot-test.lib.dir"
       value="${web-hot-test.web-inf.dir}/lib" />

    <target name="web-hot-test.prepare" depends="prepare">
      <!-- delete dir="${web-hot-test.webapps.dir}" / -->
      <mkdir dir="${web-hot-test.webapps.dir}" />
      <mkdir dir="${web-hot-test.web-inf.dir}" />
      <mkdir dir="${web-hot-test.classes.dir}" />
      <mkdir dir="${web-hot-test.lib.dir}" />
      <copy
        todir="${web-hot-test.webapps.dir}">
        <fileset dir="${docroot.dir}">
          <patternset>
            <exclude name="WEB-INF/**"/>
          </patternset>
        </fileset>
      </copy>
      <copy
        todir="${web-hot-test.web-inf.dir}">
        <fileset dir="${web.web-inf.dir}">
          <patternset>
            <include name="*.xml"/>
            <include name="*.tld"/>
          </patternset>
        </fileset>
      </copy>
    </target>

    <!-- Copy any resource or configuration files -->
    <target name="web-hot-test.resources">
        <copy todir="${web-hot-test.classes.dir}" includeEmptyDirs="no">
            <fileset dir="${web.src.dir}">
              <patternset>
                <include name="**/*.conf"/>
                <include name="**/*.xml"/>
              </patternset>
            </fileset>
        </copy>
	<native2ascii encoding="UTF8" src="${web.src.dir}" dest="${web-hot-test.classes.dir}"
	   includes="**/*.properties" />
        <copy todir="${web-hot-test.lib.dir}" includeEmptyDirs="no">
          <fileset dir="${lib.dir}"
	    includes="${library.list}" />
	  <fileset dir="${common.dist.dir}" />
	  <fileset dir="${dto.dist.dir}" />
	  <fileset dir="${business-test.dist.dir}" />
        </copy>
    </target>

    <!-- Normal build of application -->
    <target name="web-hot-test.compile"
      depends="business-test.dist,web-hot-test.prepare,web-hot-test.resources">
        <javac srcdir="${web.src.dir}"
	 destdir="${web-hot-test.classes.dir}"
	 debug="${debug}">
	    <!-- here to add paths to ejb jars -->
	    <classpath>
               <path refid="compile.classpath"/>
	       <fileset dir="${web-hot-test.lib.dir}" />
            </classpath>
        </javac>
    </target>

    <!-- Build web project and create distribution-->
    <target name="web-hot-test.all" depends="web-hot-test.compile"/>

    <!--
       Enterprise Archive (ear)
      -->
    <property name="ear.src.dir" value="${java.src.dir.root}/ear"/>
    <property name="web.classes.dir" value="${classes.dir.root}/web"/>
    <property name="ear.dist.dir" value="${dist.dir.root}/ear"/>
    <property name="ear.dist.file" value="${ear.dist.dir}/my-j2ee-project.ear"/>
    <property name="ear.appxml.file" value="${ear.src.dir}/application.xml"/>

    <target name="ear.prepare" depends="prepare">
      <mkdir dir="${ear.dist.dir}" />
    </target>

    <target name="ear" depends="web.all,ear.prepare">
      <ear destfile="${ear.dist.file}"
        appxml="${ear.appxml.file}"
        compress="false"
      >
        <fileset dir="${common.dist.dir}"/>
        <fileset dir="${dto.dist.dir}"/>
        <fileset dir="${business.dist.dir}"/>
        <fileset dir="${ejb.dist.dir}">
           <include name="**/*.jar"/>
           <exclude name="**/*Client.jar"/>
        </fileset>
        <fileset dir="${web.dist.dir}"/>
        <fileset dir="${lib.dir}"
	  includes="${library.list}" />
      </ear>
    </target>

    <target name="ear.clean">
      <delete dir="${ear.dist.dir}" />
    </target>

    <target name="all" depends="ear"/>

    <!--
       Deployment
      -->

    <target name="deploy" depends="all">
      <copy
        file="${ear.dist.file}"
        todir="${deploy.dir}"/>
    </target>

    <!-- clean everything -->
    <target name="clean.all"
      depends="clean,ejb.clean.all,web.clean">
      <delete dir="${build.dir}"/>
      <delete file="${ear.dist.file}"/>
    </target>

    <!-- clean everything and deploy -->
    <target name="rebuild" depends="clean.all,deploy" />

</project>
