<?xml version="1.0" encoding="UTF-8"?>

<!-- ===========================================================================
     Buildfile for Project 4, version 8.0
     Computer Science E-259

     This buildfile "shipped" in the root of the following hierarchy.

     project4-8.0/
       conf/
       src/
         com/
           amazon/
             soap/
               AWSECommerceService/
         cscie259/
           project4/
             scamazon/
             warehouse/
       temp/
       webapps/
         ROOT/
           docs/
             com/
               amazon/
                 soap/
                   AWSECommerceService/
             cscie259/
               project4/
                 scamazon/
                 warehouse/
           WEB-INF/
         scamazon/
           dtd/
           images/
           WEB-INF/
             lib/
           xml/
             cache/
           xsd/
           xsl/
         warehouse/
           dtd/
           images/
           WEB-INF/
           xml/
           xsd/
           xsl/
    
     To compile Scamazon.com and its warehouse, execute `ant compile` or 
     `ant` from within project4-8.0/.

     To generate Javadoc for your code (in project4-8.0/webapps/ROOT/docs/),
     execute `ant javadoc` from within project4-8.0/.

     To publish Javadoc for your code at
     http://www.people.fas.harvard.edu/~username/cscie259/javadoc/project4-8.0/,
     where username is your FAS username, execute `ant publish-javadoc` 
     from within project4-8.0/.

     To delete your bytecodes as well as Tomcat's logs and runtime
     directories (plus Axis's runtime directories, if any),
     execute `ant clean` from within project4-8.0/.
============================================================================ -->

<project name="project4" default="compile" basedir=".">

    <description>Project 4</description>
 
    <!-- set global properties for this build -->
    <property name="attachments" 
              location="webapps/warehouse/WEB-INF/attachments"/>
    <property name="conf" location="conf"/>
    <property name="docs" location="webapps/ROOT/docs"/>
    <property name="jwsClasses" 
              location="webapps/warehouse/WEB-INF/jwsClasses"/>
    <property name="logs" location="logs"/>
    <property name="servlets" location="webapps/scamazon/WEB-INF/classes"/>
    <property name="services" location="webapps/warehouse/WEB-INF/classes"/>
    <property name="src" location="src"/>
    <property name="temp" location="temp"/>
    <property name="work" location="work"/>

    <!-- init -->
    <target name="init">

        <!-- set the standard DSTAMP, TSTAMP, and TODAY properties -->
        <!-- according to the default formats                      -->
        <tstamp/>

        <!-- Create the build directories -->
        <mkdir dir="${servlets}"/>
        <mkdir dir="${services}"/>

    </target>

    <!-- compile -->
    <target name="compile" 
            depends="init" 
            description="compile Project 4">
        <javac srcdir="${src}"
               destdir="${servlets}" 
               debug="true" 
               fork="true"
               includes="com/amazon/soap/AWSECommerceService/**/*.java"/>
        <javac srcdir="${src}"
               destdir="${servlets}" 
               debug="true" 
               fork="true"
               includes="cscie259/project4/scamazon/**/*.java"/>
        <javac srcdir="${src}"
               destdir="${services}" 
               debug="true" 
               fork="true"
               includes="cscie259/project4/warehouse/**/*.java"/>
    </target>

    <!-- javadoc -->
    <target name="javadoc" 
            description="generate Javadoc">
        <delete includeemptydirs="true">
            <fileset dir="${docs}" includes="**/*"/>
        </delete>
        <javadoc packagenames="com.amazon.soap.AWSECommerceService.*,cscie259.project4.*"
                 sourcepath="${src}"
                 destdir="${docs}"
                 author="true"
                 version="true"
                 private="true"
                 nodeprecated="true"
                 windowtitle="Project 4"
                 header="Project 4"/>
    </target>

    <!-- publish javadoc -->
    <target name="publish-javadoc"
            depends="javadoc"
            description="publish Javadoc">
      <copy todir="${user.home}/public_html/cscie259/javadoc/project4-8.0">
        <fileset dir="${docs}"/>
      </copy>
      <chmod parallel="false" perm="a+rX" dir="${user.home}/public_html"
             includes="**/*" type="both"/>
    </target>

    <!-- clean -->
    <target name="clean"
            description="remove class, log, runtime, temp, and work files">
        <delete dir="${attachments}"/>
        <delete dir="${conf}/Catalina"/>
        <delete dir="${jwsClasses}"/>
        <delete dir="${logs}"/>
        <delete dir="${services}"/>
        <delete dir="${servlets}"/>
        <delete includeemptydirs="true">
          <fileset dir="${temp}" includes="**/*"/>
        </delete>
        <delete dir="${work}"/>
    </target>

</project>

