
<!-- ===================================================================

   Build file for PRM - for use with the Jakarta Ant java build tool
   Requires Ant 1.5 or greater

Build Instructions:
   To build, run
     build.bat - optionally with a target arg as indicated below -
                 in the directory where this file is located.

   The batch/shell file sets up your classpath and calls java org.apache.tools.ant.Main

Authors:
  Tim Morrow <tim@project.net>

   $Id: build.xml,v 1.80.2.14 2004/01/17 00:43:54 tim Exp $

==================================================================== -->

<project name="prm" default="build">

  <!-- Print Usage of this build file -->
  <target name="usage">
    <echo>
build [target]

Where target is one of the following:
-------------------
Compilation Targets
-------------------
  build               (default) compiles, builds and copies all files
  compile             compiles java sources, jsp sources and pnet patch to
                        output directories
  compile-java        compiles java classes in the following packages:
                        com, pnet, net.project
  compile-jsp         compiles jsp sources only
  compile-java-com    compiles java com.* classes only (including rmi classes)
  compile-java-pnet   compiles java pnet.* classes only
  compile-java-net    compiles java net.* classes only
  compile-pnetpatch   compiles pnet patch and builds jar file
  compile-version     compiles Version.java

  javadoc             generates javadoc; for internal use only
  resource            builds resources (images etc.) and copies to web root
  xsl                 copies XSL files to output directories
  etc                 copies application files (e.g. crypto/key.txt) to output
                        directories
  bin                 copies bin files (e.g. start_listeners.bat) to output
                        directories

  clean               purges the output tree

------------------
Deployment Targets
------------------
  deploy              Deploys application; executes build target then executes
                        all of the following deploy targets:
                        (Note: All targets perform incremental builds)
  deploy-prm
  deploy-xsl
  deploy-etc
  deploy-jars
  deploy-bin
  deploy-resource
  deploy-database
  deploy-docs

  deploy-src          Deploys application; executes "deploy" target then
                        executes these:
  deploy-src-jsp
  deploy-src-javadoc

  deploy-clean        Purges the output and deployment tree; suitable for use
                        before either "deploy" or "deploy-src"

-----------------
Packaging Targets
-----------------
  installer           Generates an installer; executes the "deploy" target and
                        the "zip" target (incremental)
  installer-clean     Purges the output and deployment tree then generates an
                        installer (from clean)
  installer-src       Generates an installer; executes the "deploy-src" target
                        and the "zip-src" target
  installer-src-clean Purges the output and deployment tree then generates an
                        installer with source (from clean)
  zip                 Creates a zip file in releases directory based on the
                        current deployment (incremental)
  zip-src             Creates a zip file in deployment directory, including
                        the source (incremental)
  create-escrow-source Creates a zip file containing escrow software

-----------------
Unit Test Targets
-----------------
   compile-unit-test    Compiles unit test stubs and all unit test classes
   unit-test            Compiles and executes all unit tests
   run-single-unit-test Runs a single unit test.  The unit test class to run
                          is passed on the command line as follows:

                          build run-single-unit-test
                              -Dunittest.to.run=fullyqualifiedclassname

                          where fullyqualifiedclassname is a unit test class

-----------------
Other Targets
-----------------
   run                Run an application server instance

    </echo>
  </target>


  <!--
       This target constructs the properties required for building the product.
    -->
  <target name="-init" depends="-init-base-directories, -init-directories, -init-classpath, -debug-on">

      <!-- Set compilation properties -->
      <property name="build.compiler" value="jikes"/>
      <property name="build.rmic" value="sun"/>
      <property name="deprecation" value="off"/>

      <!-- Version Properties contains properties:
               product.version
	           product.version.codename
	           autogenerate.warning
      -->
      <property file="${config.src.dir}/version.properties" />

      <echo message="Compilation debug setting is ${debug}" />
  </target>

  <!-- Allows compilation debug info to be turned off via a dependency -->
  <target name="-debug-off">
      <property name="debug" value="off"/>
  </target>

  <!--
        Allows compilation debug info to be turned on via a dependency.
        This should be set ahead of the "init" target
    -->
  <target name="-debug-on">
      <property name="debug" value="on"/>
  </target>

  <!-- Checks for presence of build.properties; sets build-properties-present -->
  <target name="-check-build-properties">
     <condition property="build-properties-present">
          <available file="build.properties" />
     </condition>
  </target>

  <!-- Copies build.properties.example to build.properties if build.properties
       is not present -->
  <target name="-ensure-build-properties" depends="-check-build-properties" unless="build-properties-present" >
    <echo>No build.properties file found; creating default properties file</echo>
    <copy file="build.properties.example" tofile="build.properties" />
    <fail>Created build.properties.  Please review its contents before restarting build.</fail>
  </target>

  <!--
       Setup base directories from properties file.
       These include:
           bluestone.dir - bluestone installation
           website.dir - website root
           output.dir  - prm directory in output
           deploy.dir  - prm directory in deploy

           source.dir  - prm directory in source
           devroot.dir - parent of all module directories in source
    -->
  <target name="-init-base-directories" depends="-ensure-build-properties">

      <!-- Set properties from build.properties file -->
      <property file="build.properties"/>

      <!-- Set a flag if required directories do not exist -->
      <condition property="error.cannot-find-default-directories">
        <not>
          <and>
            <available file="${bluestone.dir}"/>
          </and>
        </not>
      </condition>

      <!-- Fail if above condiition is true -->
      <fail if="error.cannot-find-default-directories">
One or more required properties was not set in build.properties.  Current
values are:
    bluestone.dir: ${bluestone.dir}
    website.dir:   ${website.dir}
      </fail>

      <!-- Set the source directory which is really the base directory -->
      <property name="source.dir" value="${basedir}" />

      <!-- Set a development root property to the parent directory of the
           base directory -->
      <property name="devroot.dir" location="${basedir}/.." />

  </target>

  <!--
       Set all properties that specify directories.
    -->
  <target name="-init-directories" depends="-init-base-directories">

      <!-- Source directories -->
      <property name="tools.dir" location="${devroot.dir}/tools" />
      <property name="optional.dir" location="${devroot.dir}/optional" />
      <property name="database.src.dir" location="${optional.dir}/database" />
      <property name="config.src.dir" location="${source.dir}/Config" />
      <property name="jdiff.src.dir" location="${config.src.dir}/JDiff" />
      <property name="bin.src.dir" location="${source.dir}/bin" />
      <property name="java.src.dir" location="${source.dir}/Java" />
      <property name="jsp.packagename" value="pnet" />
      <property name="jsp.src.dir" location="${source.dir}/Jsp" />
      <property name="jsp.src.package.dir" location="${jsp.src.dir}/${jsp.packagename}" />
      <property name="resource.src.dir" location="${source.dir}/Resources" />
      <property name="docs.src.dir" location="${source.dir}/Docs/product" />
      <property name="test.dir" location="${tools.dir}/test"/>

      <!-- Output directories -->
      <property name="resource.dest" location="${website.dir}" />
      <property name="etc.dest" location="${output.dir}/etc"/>
      <property name="bin.dest" location="${output.dir}/bin"/>
      <property name="compile.dest" location="${output.dir}/java"/>
      <property name="jars.dest" location="${output.dir}/jars"/>
      <property name="javadoc.dest" location="${output.dir}/docs/api"/>
      <property name="pnetpatch.dest" location="${output.dir}/pnetpatch"/>
      <property name="rmic.dest" location="${output.dir}/rmic"/>

      <!-- Deploy directories -->
      <property name="etc.deploy.dest" location="${deploy.dir}/etc" />
      <property name="lib.deploy.dest" location="${deploy.dir}/lib" />
      <property name="bin.deploy.dest" location="${deploy.dir}/bin" />
      <property name="classes.deploy.dest" location="${deploy.dir}/classes" />
      <property name="xsl.deploy.dest" location="${deploy.dir}/app" />
      <property name="resource.deploy.dest" location="${deploy.dir}/resource" />
      <property name="database.deploy.dest" location="${deploy.dir}/database"/>
      <property name="docs.deploy.dest" location="${deploy.dir}/docs" />
      <property name="src.deploy.dest" location="${deploy.dir}/src" />
      <property name="jdiff.deploy.dest" location="${src.deploy.dest}/apidiff"/>
      <property name="javadoc.deploy.dest" location="${src.deploy.dest}/apiDocs" />

  </target>

  <!--
       Sets all properties that specify classpaths
    -->
  <target name="-init-classpath" depends="-init-directories">

      <!-- Grab the environment to get JAVA_HOME -->
      <property environment="env" />

      <condition property="error.missing-java-home">
        <not>
            <available file="${env.JAVA_HOME}" type="dir" />
        </not>
      </condition>

      <!-- Fail if above condiition is true -->
      <fail if="error.missing-java-home">
The environment variable JAVA_HOME is not set or does not represent a valid
directory.  JAVA_HOME is required to locate additional JAR files required
for compilation with Jikes.
Current value: ${env.JAVA_HOME}
      </fail>

      <!-- Constructs the base classpath -->
      <path id="prm.classpath">
          <pathelement location="${jars.dest}\pnetpatch.jar"/>
          <pathelement location="${jars.dest}\activation.jar"/>
          <pathelement location="${jars.dest}\mail.jar"/>
          <pathelement location="${jars.dest}\jdom.jar"/>
          <pathelement location="${jars.dest}\cos.jar"/>
          <pathelement location="${jars.dest}\chart.jar"/>
          <pathelement location="${jars.dest}\iTextXML.jar"/>
          <pathelement location="${jars.dest}\itext.jar"/>
          <pathelement location="${jars.dest}\commons-validator.jar"/>
          <pathelement location="${jars.dest}\commons-collections.jar"/>
          <pathelement location="${jars.dest}\jakarta-oro-2.0.6.jar"/>
          <pathelement location="${jars.dest}\ojdbc14.jar"/>
          <pathelement location="${jars.dest}\xerces.jar"/>
          <pathelement location="${jars.dest}\Verisign.jar"/>
          <pathelement location="${jars.dest}\log4j-1.2.8.jar"/>
          <pathelement location="${bluestone.dir}\jars\ubs.jar"/>
          <pathelement location="${bluestone.dir}\jars\jta-spec1_0_1.jar"/>
          <pathelement location="${bluestone.dir}\jars\bullejb.jar"/>
          <pathelement location="${compile.dest}"/>
          <pathelement location="${env.JAVA_HOME}\jre\lib\jce.jar" />
          <pathelement location="${env.JAVA_HOME}\jre\lib\jsse.jar" />
      </path>

      <!-- Constructs the runtime classpath -->
      <path id="run.classpath">
          <path refid="prm.classpath"/>
      </path>

      <!-- Constructs the compilation classpath -->
      <path id="src.compile.classpath">
          <pathelement location="c:\java"/>
          <path refid="prm.classpath"/>
          <pathelement location="${test.dir}\lib\junit.jar"/>
      </path>

      <path id="jdiff.classpath">
          <path refid="src.compile.classpath"/>
          <pathelement location="${java.src.dir}/jdiff/jdiff.jar"/>
          <pathelement location="${java.src.dir}/jdiff/xerces.jar"/>
      </path>

      <path id="unittest.compile.classpath">
          <pathelement location="c:\java"/>
          <pathelement location="${test.dir}\mockobjects\output"/>
          <path refid="prm.classpath"/>
          <pathelement location="${test.dir}\lib\junit.jar"/>
          <pathelement location="${test.dir}\lib\junit-addons-1.4.jar"/>
      </path>

      <!-- Constructs the JSP compilation classpath -->
      <path id="jsp.src.compile.classpath">
          <pathelement location="${tools.dir}\bluestone"/>
          <path refid="src.compile.classpath"/>
      </path>

  </target>


  <!-- =========================================================================

		TARGET PREPARES

		These targets simply prepare output directories for builds

       ===================================================================== -->

  <!-- ===================================================================
       Prepares the output build directory
       =================================================================== -->
  <target name="-prepare" depends="-init">
    <mkdir dir="${output.dir}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for compile targets
       =================================================================== -->
  <target name="prepare-compile" depends="-prepare">
    <mkdir dir="${compile.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for application files
       =================================================================== -->
  <target name="prepare-etc" depends="-prepare">
    <mkdir dir="${etc.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories bin fules
       =================================================================== -->
  <target name="prepare-bin" depends="-prepare">
    <mkdir dir="${bin.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for jars
       =================================================================== -->
  <target name="prepare-jars" depends="-prepare">
    <mkdir dir="${jars.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for pnet patch
       =================================================================== -->
  <target name="prepare-pnetpatch" depends="-prepare">
    <mkdir dir="${pnetpatch.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for com classes
       =================================================================== -->
  <target name="prepare-com" depends="prepare-compile">
    <mkdir dir="${rmic.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the output directories for javadoc targets
       =================================================================== -->
  <target name="prepare-javadoc" depends="-prepare">
    <mkdir dir="${javadoc.dest}"/>
  </target>

  <!-- ===================================================================
       Prepares the resource directory
       =================================================================== -->
  <target name="prepare-resource" depends="-init">
    <mkdir dir="${resource.dest}/styles"/>
    <mkdir dir="${resource.dest}/src"/>
  </target>

  <!-- ===================================================================
       Prepares for version stuff.
       =================================================================== -->
  <target name="prepare-update-version" depends="prepare-compile">
	<property name="version.java.pre" value="net/project/util/Version.java.pre" />
	<property name="version.java" value="net/project/util/Version.java" />

        <!-- Set property if Version.java.pre exists -->
	<available file="${java.src.dir}/${version.java.pre}" property="version.java.pre.present"/>

	<!-- Determine whether translated java source is up to date: Source needs
	     regenerated if version.properties of Version.java.pre file changes -->
	<uptodate targetfile="${java.src.dir}/${version.java}" property="version.java.uptodate" >
            <srcfiles dir="${config.src.dir}" includes="version.properties"/>
            <srcfiles dir="${java.src.dir}" includes="${version.java.pre}"/>
        </uptodate>
  </target>


  <!-- =========================================================================

		TARGET BUILDS

		These targets build, compile or copy files

       ===================================================================== -->

  <!-- ===================================================================
       Compile any unit test stubs
       =================================================================== -->
  <target name="compile-unit-test-stubs" depends="-init">
      <mkdir dir="${test.dir}/mockobjects/output"/>
      <javac destdir="${test.dir}/mockobjects/output" debug="true" source="1.4">
          <classpath refid="src.compile.classpath"/>
          <src location="${test.dir}/mockobjects/src"/>
      </javac>
  </target>

  <!-- ===================================================================
       Compiles the PRM java source tree
       =================================================================== -->
  <target name="compile-java" depends="compile-java-com,compile-java-pnet,compile-java-net" description="Compile all non-JSP Java files."/>

  <!-- ===================================================================
       Compiles com classes
	   =================================================================== -->
  <target name="compile-java-com" depends="prepare-compile,jars">

	<!-- Compile com sources -->
	<javac srcdir="${java.src.dir}"
	       destdir="${compile.dest}"
		   debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
	  <include name="com/**" />
	</javac>

	<!-- RMI compile certain files -->
	<rmic base="${compile.dest}">
	  <include name="com/**/PublisherImpl.class" />
	  <include name="com/**/MonitorConnectionImpl.class" />
	  <include name="com/**/Logger.class" />
      <classpath refid="src.compile.classpath"/>
    </rmic>

  </target>

  <!-- ===================================================================
       Compiles the pnet class
       =================================================================== -->
  <target name="compile-java-pnet" depends="prepare-compile,jars">
    <javac srcdir="${java.src.dir}"
           destdir="${compile.dest}"
           debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
	  <include name="pnet/**" />
	</javac>
  </target>

  <!-- ===================================================================
       Compiles the net.project classes
       =================================================================== -->
  <target name="compile-java-net" depends="prepare-compile,jars">
    <javac srcdir="${java.src.dir}"
           destdir="${compile.dest}"
           debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
	  <include name="net/project/**" />

      <!-- Don't compile unit tests -->
      <exclude name="**/*Test.java" />

      <!-- Don't compile J2EE 1.3 sources (they are for Weblogic build only) -->
      <exclude name="net/project/security/SessionAccessFilter.java" />
      <exclude name="net/project/security/SecurityFilter.java" />
	</javac>
  </target>

  <!-- ===================================================================
       Compiles the jsp source tree
       Process JSPs to Java level - note runs in separate fork to allow for
       switching of directory and to avoid dying on System.exit() in processor.
       Also, inserts tools/bluestone in front of Classpath to pick up
       tweaked JSP compiler (which actually avoids compiling unchanged files)

       IMPORTANT:
         1)  The directory that is passed here is very specific.  It MUST be
             the JSP package directory to make the modification checking work.
             This is a quirk of the Bentley timestamp-compare hack.
             If none of your JSPs are compiling, this is why.
             E.g. c:/pnet/src/pnet-main/prm/jsp/prm  or
                  c:/pnet/src/pnet-main/prm/jsp/pnet  would work
       =================================================================== -->
  <target name="compile-jsp-only" depends="prepare-compile" description="Compiles JSP files with no dependency checks">

    <java classname="SaApi.servlet.jsp.SaJspProcessor"
          dir="${jsp.src.package.dir}"
          fork="yes"
          failonerror="yes">
      <classpath refid="jsp.src.compile.classpath"/>
      <arg line="-app ${jsp.packagename}.class -level java -recurse -quiet -packageName ${jsp.packagename} -compilePath ${compile.dest} ${jsp.src.package.dir}" />
    </java>

    <!-- Now compile java versions of jsps (only those in JSP package directory and below -->
    <javac srcdir="${compile.dest}"
           destdir="${compile.dest}"
           debug="${debug}"
           deprecation="${deprecation}"
           includes="${jsp.packagename}/**"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
    </javac>

  </target>

  <target name="compile-jsp" depends="compile-java-net,compile-pnetpatch,compile-jsp-only" description="Compiles JSP files" />

  <target name="-check-jsp-specified" unless="jsp.to.compile">
      <fail>
          Please set the jsp.to.compile property before calling this target.
      </fail>
  </target>

  <target name="compile-single-jsp" depends="-check-jsp-specified, prepare-compile" description="Compile a single JSP file without compiling everything else">
      <echo message="Compiling file ${jsp.to.compile}"/>

      <java classname="SaApi.servlet.jsp.SaJspProcessor"
            dir="${jsp.src.package.dir}"
            fork="yes"
            failonerror="yes">
        <classpath refid="jsp.src.compile.classpath"/>
        <arg line="-app ${jsp.packagename}.class -level java -recurse -quiet -packageName ${jsp.packagename} -compilePath ${compile.dest} ${jsp.to.compile}" />
      </java>

      <!-- Now compile java versions of jsps (only those in JSP package directory and below -->
      <javac srcdir="${compile.dest}"
             destdir="${compile.dest}"
             debug="${debug}"
             deprecation="${deprecation}"
             includes="${jsp.packagename}/**"
             nowarn="on"
             source="1.4">
        <classpath refid="src.compile.classpath"/>
      </javac>
  </target>

  <!-- ===================================================================
       Unit Test Targets
       =================================================================== -->

    <target name="-test-format-plain">
        <property name="test.format" value="plain" />
    </target>

    <target name="-test-format-xml">
        <property name="test.format" value="xml" />
    </target>

    <!-- Compile unit test classes -->
    <target name="compile-unit-test" depends="compile-unit-test-stubs, compile-java">
        <javac srcdir="${java.src.dir}"
               destdir="${compile.dest}"
               debug="${debug}"
               deprecation="${deprecation}"
               nowarn="on"
               source="1.4">
          <classpath refid="unittest.compile.classpath"/>
          <include name="net/project/**/*Test.java" />
        </javac>
    </target>

    <!-- Run unit tests only; PLAIN format -->
    <target name="run-unit-test" depends="-init, -test-format-plain, run-single-unit-test, run-all-unit-tests" description="Run unit tests without compiling first"/>

    <target name="run-single-unit-test" if="unittest.to.run">
        <junit printsummary="yes">
            <classpath refid="unittest.compile.classpath"/>
            <formatter type="${test.format}"/>
            <sysproperty key="mockobject.properties.location" value="${test.dir}\mockobjects.properties"/>
            <jvmarg value="-ea"/>
            <!-- Even though the next line shows up as an error, it isn't.  The
                 property is intended to be supplied on the command line in the
                 form "make unit-test -Dunittest.to.run=net.project.schedule.TaskEndpointCalculationTest" -->
            <test name="${unittest.to.run}" haltonfailure="false"/>
        </junit>
    </target>

    <target name="run-all-unit-tests" unless="unittest.to.run">
        <junit printsummary="yes">
            <classpath refid="unittest.compile.classpath"/>
            <formatter type="${test.format}"/>
            <sysproperty key="mockobject.properties.location" value="${test.dir}\mockobjects.properties"/>
            <!-- 05/06/2003 - Tim
                 Enabling assertions when using batchtest appears to cause
                 all assertions to fail.  Commenting it out for now. -->
            <!--<jvmarg value="-ea"/>-->
            <batchtest fork="yes">
              <fileset dir="${java.src.dir}">
                <include name="**/*Test.java"/>
              </fileset>
            </batchtest>
        </junit>
    </target>

    <!-- Run unit test after compile; PLAIN format -->
    <target name="unit-test" depends="compile-unit-test, -test-format-plain, run-unit-test" description="Run all unit tests" />

    <!-- Run unit test after compile; XML format -->
    <target name="unit-test-xml" depends="-test-format-xml, unit-test" />

    <!-- Run unit test only; XML format -->
    <target name="run-unit-test-xml" depends="-test-format-xml, run-unit-test" />


  <!-- ===================================================================
       Copies the xml files to output
       =================================================================== -->
  <target name="xsl" depends="prepare-compile">
    <!-- Copy all XSL files from JSP src to output -->
    <copy todir="${compile.dest}">
        <fileset dir="${jsp.src.dir}" >
			<exclude name="**/.#*" />
            <include name="**/*.xsl" />
        </fileset>
    </copy>
  </target>

  <!-- ===================================================================
       Version update
       =================================================================== -->
  <!-- Fail unless required files are present -->
  <target name="-update-version-check" depends="prepare-update-version" unless="version.java.pre.present">
	<fail message="Version check failed.  File: '${java.src.dir}/${version.java.pre}' not present." />
  </target>

  <!-- Regenerate Version.java unless up-to-date -->
  <target name="update-version-regenerate" unless="version.java.uptodate" depends="-update-version-check">
    <filter filtersfile="${config.src.dir}/version.properties" />
	<copy file="${java.src.dir}/${version.java.pre}" tofile="${java.src.dir}/${version.java}"
	      filtering="true" overwrite="true" />
  </target>

  <!-- Compile Version.java -->
  <target name="compile-version" depends="-update-version-check, update-version-regenerate">
    <javac srcdir="${java.src.dir}"
           destdir="${compile.dest}"
           debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
	  <include name="${version.java}" />
	</javac>
  </target>


  <!-- ===================================================================
       Makes the pnet patch
       =================================================================== -->
  <target name="compile-pnetpatch" depends="prepare-pnetpatch,jars,compile-java-com">

    <!--

		UBS_7 patch

		Aplication server patches

	-->

    <!-- Copy class files which have no source to pnetpatch output dir -->
	<copy todir="${pnetpatch.dest}">
		<fileset dir="${config.src.dir}/Bluestone/patches/UBS_7">
			<exclude name="**/.#*" />
			<include name="**/*.class" />
		</fileset>
	</copy>

	<!-- Compile java sources to pnetpatch output dir -->
	<javac srcdir="${config.src.dir}/Bluestone/patches/UBS_7"
	       destdir="${pnetpatch.dest}"
		   debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
    </javac>

    <!--

		UBS_72GA patch

		Character encoding patches

	-->

	<!-- Compile java sources to pnetpatch output dir -->
	<javac srcdir="${config.src.dir}/Bluestone/patches/UBS_72GA"
	       destdir="${pnetpatch.dest}"
		   debug="${debug}"
           deprecation="${deprecation}"
           nowarn="on"
           source="1.4">
      <classpath refid="src.compile.classpath"/>
    </javac>

	<!-- Jar it up -->
	<jar jarfile="${jars.dest}/pnetpatch.jar"
	     basedir="${pnetpatch.dest}" />

  </target>

  <!-- ===================================================================
       Copies jars to output
       =================================================================== -->
  <target name="jars" depends="prepare-jars">
    <copy todir="${jars.dest}">
        <fileset dir="${java.src.dir}/javax">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
        <fileset dir="${java.src.dir}/jars">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
        <fileset dir="${java.src.dir}/jars/jdbc">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>




        <fileset dir="${java.src.dir}/jars/jdbc">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
        <fileset dir="${java.src.dir}/jars/jdbc">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
        <fileset dir="${java.src.dir}/jars/jdbc">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
        <fileset dir="${java.src.dir}/jars/jdbc">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
		</fileset>
    </copy>
  </target>

  <!-- ===================================================================
       Build javadoc
       =================================================================== -->
  <target name="javadoc" depends="prepare-javadoc" description="Generates JavaDoc for internal use">
    <javadoc sourcepath="${java.src.dir}"
              destdir="${javadoc.dest}"
              packagenames="net.*"
              windowtitle="Project.net PRMServer v${product.version} (${product.version.codename})"
              maxmemory="256M"
              verbose="false"
              additionalparam="-source 1.4"
              private="true">
        <bottom>&lt;div align=&quot;center&quot;> &lt;a href=&quot;http://www.project.net/&quot; target=&quot;_top&quot;>&#169;2000-2003 Project.net, Inc.&lt;/a> All Rights Reserved.&lt;div></bottom>
        <link href="http://java.sun.com/j2se/1.4.1/docs/api/"/>
        <link href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/"/>
        <link href="http://www.jdom.org/docs/apidocs/"/>
        <link href="http://itext.sourceforge.net/docs/"/>
    </javadoc>

  </target>

  <!-- ===================================================================
       Build the resources
       =================================================================== -->
  <target name="resource" depends="prepare-resource">

	<!-- Images -->
    <copy todir="${resource.dest}/images">
      <fileset dir="${resource.src.dir}/Images">
		<exclude name="**/.#*" />
		<exclude name="tabs/src/*" />
		<exclude name="toolbar/src/*" />
	  </fileset>
    </copy>

	<!-- Javascript Source -->
    <copy todir="${resource.dest}/src">
        <javadoc sourcepath="${java.src.dir}"
                  destdir="${javadoc.dest}"
                  packagenames="net.*"
                  windowtitle="Project.net PRMServer v${product.version} (${product.version.codename})"
                  maxmemory="256M"
                  verbose="false"
                  additionalparam="-source 1.4"
                  private="true">
            <bottom>&lt;div align=&quot;center&quot;> &lt;a href=&quot;http://www.project.net/&quot; target=&quot;_top&quot;>&#169;2000-2003 Project.net, Inc.&lt;/a> All Rights Reserved.&lt;div></bottom>
            <link href="http://java.sun.com/j2se/1.4.1/docs/api/"/>
            <link href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/"/>
            <link href="http://www.jdom.org/docs/apidocs/"/>
            <link href="http://itext.sourceforge.net/docs/"/>
        </javadoc>

      <fileset dir="${resource.src.dir}/src" excludes="**/.#*" />
    </copy>

	<!-- CSS -->
    <copy todir="${resource.dest}/styles">

      <fileset dir="${resource.src.dir}/styles" excludes="**/.#*" />
    </copy>

	<!-- HTML files and other resources -->
    <copy todir="${resource.dest}">
      <fileset dir="${resource.src.dir}">
		<exclude name="**/.#*" />
		<include name="**/*.html" />
		<include name="**/*.htm" />
		<include name="**/*.ico" />
		<include name="hosted" />
	  </fileset>
    </copy>

  </target>

  <!-- ===================================================================
       Builds etc files
       =================================================================== -->
  <target name="etc" depends="prepare-etc">

	<copy todir="${etc.dest}">
        <fileset dir="${config.src.dir}/crypto" excludes="**/.#*" />
    </copy>

    <!-- Project.net Scheduler files -->
	<copy todir="${etc.dest}">
        <fileset dir="${config.src.dir}/scheduler">
			<exclude name="**/.#*" />
			<include name="*.properties" />
		</fileset>
    </copy>

	<!-- Bluestone config files -->
	<copy todir="${etc.dest}/ubs/config">
		<fileset dir="${config.src.dir}/Bluestone/ubs">
			<exclude name="**/.#*" />
		</fileset>
	</copy>

  	<!-- Bluestone lbb files -->
	<copy todir="${etc.dest}/ubs/lbb">
		<fileset dir="${config.src.dir}/Bluestone/lbb">
			<exclude name="**/.#*" />
		</fileset>
	</copy>

    <!-- Log4j configuration files -->
	<copy todir="${etc.dest}">
        <fileset dir="${config.src.dir}/log4j">
			<exclude name="**/.#*" />
			<include name="*.xml" />
		</fileset>
    </copy>

  </target>

  <!-- ===================================================================
       Copies bin files to output
       =================================================================== -->
  <target name="bin" depends="prepare-bin">
    <!-- Copy and fix Unix scripts -->
    <fixcrlf srcdir="${bin.src.dir}"
             destdir="${bin.dest}"
             eol="lf"
             eof="remove">
        <exclude name="**/.#*" />
    	<include name="*.sh" />
    	<include name="pnet-init" />
    </fixcrlf>

    <!-- Copy and fix DOS scripts -->
    <fixcrlf srcdir="${bin.src.dir}"
             destdir="${bin.dest}"
             eol="crlf"
             eof="add">
        <exclude name="**/.#*" />
			<include name="*.bat" />
    </fixcrlf>

    <!-- Copy remaining bin items -->
    <copy todir="${bin.dest}">
        <fileset dir="${bin.src.dir}">
			<exclude name="**/.#*" />
			<include name="*.exe" />
  		</fileset>
    </copy>

  </target>

  <!-- ===================================================================
       Compiles the ALL source
       =================================================================== -->
  <target name="compile" depends="compile-java,compile-pnetpatch,compile-jsp,xsl,compile-version,compile-unit-test" />

  <!-- ===================================================================
       Builds output
       =================================================================== -->
  <target name="build" depends="jars,compile,etc,bin,resource" description="Builds all of the files in the output directory"/>

  <!-- Builds after updating from cvs -->
  <target name="cvs-build" depends="cvs-update-source, build" />
  <target name="cvs-build-clean" depends="cvs-update-source, clean, build" />
  <target name="cvs-build-test" depends="cvs-build, unit-test-xml" />
  <target name="cvs-build-clean-test" depends="cvs-build-clean, unit-test-xml" />


  <!-- =========================================================================

	   Deploys the application

       ===================================================================== -->

    <target name="prepare-deploy" depends="-prepare">
	   <echo message="Preparing to deploy product: ${product.version.codename} (${product.version})" />
       <mkdir dir="${deploy.dir}" />
    </target>

    <!-- Deletes deployment directory -->
    <target name="prepare-deploy-clean" depends="-init">
        <delete dir="${deploy.dir}" />
    </target>

	<target name="prepare-deploy-src" depends="prepare-deploy">
        <mkdir dir="${src.deploy.dest}" />
    </target>

    <target name="prepare-deploy-prm" depends="prepare-deploy">
        <mkdir dir="${lib.deploy.dest}" />
        <mkdir dir="${classes.deploy.dest}" />
    </target>

    <target name="prepare-deploy-xsl" depends="prepare-deploy">
        <mkdir dir="${xsl.deploy.dest}" />
    </target>

    <target name="prepare-deploy-etc" depends="prepare-deploy">
        <mkdir dir="${etc.deploy.dest}" />
    </target>

    <target name="prepare-deploy-bin" depends="prepare-deploy">
        <mkdir dir="${bin.deploy.dest}" />
    </target>

    <target name="prepare-deploy-resource" depends="prepare-deploy">
        <mkdir dir="${resource.deploy.dest}" />
    </target>

    <target name="prepare-deploy-database" depends="prepare-deploy">
        <mkdir dir="${database.deploy.dest}" />
    </target>

    <target name="prepare-deploy-docs" depends="prepare-deploy">
        <mkdir dir="${docs.deploy.dest}" />
    </target>

	<target name="prepare-deploy-src-javadoc" depends="prepare-deploy-src">
        <mkdir dir="${javadoc.deploy.dest}" />
    </target>

    <target name="prepare-deploy-api-diff" depends="prepare-deploy">
        <mkdir dir="${jdiff.deploy.dest}"/>
    </target>

	<!--
		Deploy targets
	-->

    <target name="deploy-prm" depends="build, prepare-deploy-prm">

            <jar jarfile="${lib.deploy.dest}/prm.jar"
                basedir="${compile.dest}">

				<exclude name="**/.#*" />
				<exclude name="**/*.java" />
				<exclude name="**/*.xsl" />
				<exclude name="**/xsl/**" />
				<exclude name="**/*.jsp" />
            </jar>
    </target>

	<!-- Deploy XSL files -->
    <target name="deploy-xsl" depends="xsl, prepare-deploy-xsl">
        <copy todir="${xsl.deploy.dest}">
            <fileset dir="${compile.dest}" >
			    <exclude name="**/.#*" />
                <include name="**/*.xsl" />
				<!-- Must specify possible empty directories here -->
                <include name="**/include" />
            </fileset>
        </copy>
    </target>


  <!-- Deploy JAR files -->
  <target name="deploy-jars" depends="jars, prepare-deploy-prm">
    <copy todir="asdgjagsd" asdh="${lib.deploy.dest}" asgd="">
        <fileset>
            <and>
                ajshdkjhaskjdh
    <type description="sdad"/>
            </and>
        </fileset>
        <fileset dir="${jars.dest}">
			<exclude name="**/.#*" />
			<include name="*.jar" />
			<include name="*.zip" />
   	</fileset>
    </copy>
  </target>

    <!-- Deploy license.txt file -->
    <target name="deploy-jars-license" depends="prepare-deploy-prm,prepare-deploy-docs,-init">
        <copy todir="${lib.deploy.dest}">
            <fileset dir="${java.src.dir}/jars">
                <include name="License.txt"/>
            </fileset>
        </copy>

        <copy todir="${docs.deploy.dest}">
            <fileset dir="${java.src.dir}/jars">
                <include name="License.txt"/>
            </fileset>
        </copy>
    </target>


    <!-- Updates source from cvs -->
	<target name="cvs-update-source" depends="-init">
        <exec dir="${devroot.dir}" executable="cvs">
			<arg line="-q update -dP prm tools" />
		</exec>
	</target>

	<!-- Deploy etc files
         Note - These are deployed form the source directory, as the files
         in the output directory have already had tokens replaced, etc.
      -->
    <target name="deploy-etc" depends="prepare-deploy-etc">

		<copy todir="${etc.deploy.dest}">
			<fileset dir="${config.src.dir}/crypto" excludes="**/.#*" />
        </copy>

        <!-- Project.net Scheduler files -->
        <copy todir="${etc.deploy.dest}">
            <fileset dir="${config.src.dir}/scheduler">
			    <exclude name="**/.#*" />
			    <include name="*.properties" />
		    </fileset>
        </copy>

        <!-- UBS config files -->
		<copy todir="${etc.deploy.dest}/ubs/config">
			<fileset dir="${etc.dest}/ubs/config">
			    <exclude name="**/.#*" />
			</fileset>
        </copy>

        <!-- LBB Plugins -->
		<copy todir="${etc.deploy.dest}/ubs/lbb">
			<fileset dir="${etc.dest}/ubs/lbb">
			    <exclude name="**/.#*" />
			</fileset>
        </copy>

		<copy todir="${etc.deploy.dest}">
			<fileset dir="${config.src.dir}/log4j" excludes="**/.#*" />
        </copy>

    </target>

	<!-- Deploy bin files -->
    <target name="deploy-bin" depends="prepare-deploy-bin, bin">
        <copy todir="${bin.deploy.dest}">
			<fileset dir="${bin.dest}" excludes="**/.#*" />
        </copy>
    </target>

  <!-- Deploy web server resources -->
  <target name="deploy-resource" depends="resource, prepare-deploy-resource">

	<!-- Images -->
    <copy todir="${resource.deploy.dest}/images">
      <fileset dir="${resource.src.dir}/images">
		<exclude name="**/.#*" />
		<exclude name="tabs/src/*" />
		<exclude name="toolbar/src/*" />
	  </fileset>
    </copy>

	<!-- Javascript Source -->
    <copy todir="${resource.deploy.dest}/src">
      <fileset dir="${resource.src.dir}/src" excludes="**/.#*" />
    </copy>

	<!-- CSS -->
    <copy todir="${resource.deploy.dest}/styles">
      <fileset dir="${resource.src.dir}/styles" excludes="**/.#*" />
    </copy>

	<!-- HTML files and other resources -->
    <copy todir="${resource.deploy.dest}">
      <fileset dir="${resource.src.dir}">
		<exclude name="**/.#*" />
		<include name="**/*.html" />
		<include name="**/*.htm" />
		<include name="**/*.ico" />
		<include name="hosted" />
	  </fileset>
        <fileset></fileset>
    </copy>

  </target>

	<!-- Deploy database files -->
    <target name="deploy-database" depends="prepare-deploy-database">
        <copy todir="${database.deploy.dest}">
			<fileset dir="${database.src.dir}">
			  <exclude name="**/.#*" />
			  <include name="CreateScripts/**" />
			</fileset>
        </copy>


      <!-- Images -->
      <copy todir="${resource.deploy.dest}/images">
        <fileset dir="${resource.src.dir}/images">
          <exclude name="**/.#*" />
          <exclude name="tabs/src/*" />
          <exclude name="toolbar/src/*" />
        </fileset>
      </copy>

      <!-- Javascript Source -->
      <copy todir="${resource.deploy.dest}/src">
        <fileset dir="${resource.src.dir}/src" excludes="**/.#*" />
      </copy>

      <!-- CSS -->
      <copy todir="${resource.deploy.dest}/styles">
        <fileset dir="${resource.src.dir}/styles" excludes="**/.#*" />
      </copy>

      <!-- HTML files and other resources -->
      <copy todir="${resource.deploy.dest}">
        <fileset dir="${resource.src.dir}">
          <exclude name="**/.#*" />
          <include name="**/*.html" />
          <include name="**/*.htm" />
          <include name="**/*.ico" />
          <include name="hosted" />
        </fileset>
          <fileset></fileset>
      </copy>



      <!-- Images -->
      <copy todir="${resource.deploy.dest}/images">
        <fileset dir="${resource.src.dir}/images">
          <exclude name="**/.#*" />
          <exclude name="tabs/src/*" />
          <exclude name="toolbar/src/*" />
        </fileset>
      </copy>

      <!-- Javascript Source -->
      <copy todir="${resource.deploy.dest}/src">
        <fileset dir="${resource.src.dir}/src" excludes="**/.#*" />
      </copy>

      <!-- CSS -->
      <copy todir="${resource.deploy.dest}/styles">
        <fileset dir="${resource.src.dir}/styles" excludes="**/.#*" />
      </copy>

      <!-- HTML files and other resources -->
      <copy todir="${resource.deploy.dest}">
        <fileset dir="${resource.src.dir}">
          <exclude name="**/.#*" />
          <include name="**/*.html" />
          <include name="**/*.htm" />
          <include name="**/*.ico" />
          <include name="hosted" />
        </fileset>
          <fileset></fileset>
      </copy>


    </target>

	<!-- Deploy docs -->
    <target name="deploy-docs" depends="prepare-deploy-docs">

		<!-- Copy all docs except for Word Documents to deployment area
		     Assumes Word documents are created as PDF files -->
		<copy todir="${docs.deploy.dest}">
			<fileset dir="${docs.src.dir}">
			    <exclude name="**/.#*" />
				<exclude name="**/*.doc" />
			</fileset>
        </copy>

    </target>

  <!-- ===================================================================
       Deployments for Source releases
       =================================================================== -->

	<!-- Deploy JSP files -->
    <target name="deploy-src-jsp" depends="compile-jsp, prepare-deploy-src">
        <copy todir="${src.deploy.dest}/jsp">
            <fileset dir="${jsp.src.dir}" >
			    <exclude name="**/.#*" />
            </fileset>
        </copy>
    </target>

	<!-- Deploy api docs -->
	<!--packagenames="net.project.*"-->
	<target name="deploy-src-javadoc" depends="prepare-deploy-src-javadoc">
		<javadoc packagenames="net.*"
                 sourcepath="${java.src.dir}"
			     destdir="${src.deploy.dest}/apiDocs"
			     author="false"
			     public="true"
                 maxmemory="256M"
                 additionalparam="-source 1.4"
                 defaultexcludes="yes"
			     windowtitle="Project.net PRMServer v${product.version} (${product.version.codename})">
            <bottom>&lt;div align=&quot;center&quot;> &lt;a href=&quot;http://www.project.net/&quot; target=&quot;_top&quot;>&#169;2000-2003 Project.net, Inc.&lt;/a> All Rights Reserved.&lt;div></bottom>
            <link href="http://java.sun.com/j2se/1.4.1/docs/api/"/>
            <link href="http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/"/>
            <link href="http://www.jdom.org/docs/apidocs/"/>
            <link href="http://itext.sourceforge.net/docs/"/>
        </javadoc>
	</target>

    <target name="generate-new-api-diff" depends="-init">

        <!-- The name of apis, used for naming files -->
        <property name="newapiname" value="${product.version.codename}" />

        <!-- Produce XML for this version's Javadoc -->
		<javadoc packagenames="net.project.*"
                 sourcepath="${java.src.dir}"
			     destdir=""
			     author="false"
			     public="true"
                 maxmemory="256M"
                 defaultexcludes="yes"
			     windowtitle="Project.net PRMServer v${product.version} (${product.version.codename})"
                 additionalparam="-source 1.4">
            <classpath refid="jdiff.classpath"/>
            <doclet name="jdiff.JDiff" path="${java.src.dir}/jdiff/jdiff.jar:${java.src.dir}/diff/xerces.jar">
                <param name="-apidir" value="${jdiff.src.dir}"/>
                <param name="-apiname" value="${newapiname}"/>
            </doclet>
        </javadoc>
    </target>

    <!-- Produce a report which will outline the API differences between this
         version and the previous one. -->
	<target name="deploy-api-diff" depends="prepare-deploy-api-diff,generate-new-api-diff" description="Produce an API difference report between this version and the previous one." >

        <!-- The name of apis, used for naming files -->
        <property name="oldapiname" value="7_5_1_release" />
        <property name="newapiname" value="${product.version.codename}" />

        <!-- Produce the diff between this and last version's Javadoc -->
		<javadoc packagenames="net.project.*"
                 sourcepath="${java.src.dir}"
			     destdir=""
			     author="false"
			     public="true"
                 maxmemory="256m"
                 additionalparam="-source 1.4"
                 defaultexcludes="yes"
			     windowtitle="Project.net PRMServer v${product.version} (${product.version.codename})">
            <doclet name="jdiff.JDiff" path="${java.src.dir}/jdiff/jdiff.jar:${java.src.dir}/jdiff/xerces.jar">
                <param name="-d" value="${jdiff.deploy.dest}"/>
                <param name="-oldapi" value="${oldapiname}"/>
                <param name="-oldapidir" value="${jdiff.src.dir}"/>
                <param name="-newapi" value="${newapiname}"/>
                <param name="-newapidir" value="${jdiff.src.dir}"/>
                <param name="-javadocold" value="../../oldapiDocs/"/>
                <param name="-javadocnew" value="../../apiDocs/"/>
            </doclet>
        </javadoc>

        <!-- Delete some files that shouldn't be shipped to the user. -->
        <delete file="${jdiff.deploy.dest}/missingSinces.txt"/>
        <delete file="${jdiff.deploy.dest}/user_comments_for_${oldapiname}_to_${newapiname}.xml"/>
    </target>

    <!-- Makes a deployment; incrementally (does not clean first) -->
    <target name="deploy" depends="-debug-off, prepare-deploy, deploy-prm, deploy-jars, deploy-jars-license, deploy-xsl, deploy-resource, deploy-etc, deploy-bin, deploy-docs, deploy-database" />

    <!-- Makes a source deployment; incrementally (does not clean first) -->
    <target name="deploy-src" depends="-debug-off, deploy, deploy-src-jsp, deploy-src-javadoc, deploy-api-diff" />

    <!-- Makes a source deployment; incrementally (does not clean first) -->
    <target name="deploy-src-no-javadoc" depends="-debug-off, deploy, deploy-src-jsp" />

    <!-- Cleans pending a deployment -->
    <target name="deploy-clean" depends="-debug-off, prepare-deploy-clean, clean" description="Deletes all of the files from the deploy directory" />

  <!-- ===================================================================
       Run the application
       =================================================================== -->
    <target name="copy-runtime-config-file" depends="-init" description="Customizes the sajava.ini file in the bluestone configuration directory based on your local runtime configuration.">
        <filter filtersfile="./runtime.properties"/>
        <copy todir="${bluestone.dir}/config" filtering="true" overwrite="true" >
            <fileset dir="${config.src.dir}/Bluestone/ubs" includes="sajava.ini SaLBB.ini"/>
        </copy>
        <copy file="${config.src.dir}/Bluestone/ubs/apserver.txt.noproxy.example" tofile="${bluestone.dir}/config/apserver.txt" filtering="true" overwrite="true" />
    </target>

    <target name="run" depends="-init">
        <java classname="SaApi.SaAppServController" fork="yes" classpathref="run.classpath">
            <arg value="-port"/>
            <arg value="20000"/>
            <arg value="-debug"/>
            <arg value="true"/>
        </java>

    </target>

  <!-- ===================================================================
       Escrow creation target
       =================================================================== -->
  <target name="create-escrow-source" depends="-init" description="Create full source zip for escrow account">
      <zip zipfile="../prm_${product.version.codename}_full_src.zip">
          <zipfileset dir="../prm" prefix="prm">
              <exclude name="**/CVS"/>
              <exclude name="**/CVS/*"/>
          </zipfileset>
          <zipfileset dir="../optional" prefix="optional">
              <exclude name="**/CVS"/>
              <exclude name="**/CVS/*"/>
          </zipfileset>
          <zipfileset dir="../tools" prefix="tools">
              <exclude name="**/CVS"/>
              <exclude name="**/CVS/*"/>
          </zipfileset>
      </zip>
      <echo>
          Now, manually add the contents of the \\lion\\Development\Development Documentation\
          directory to the zip file.  The zip file creation will be complete then.
      </echo>
  </target>

  <!-- ===================================================================
       Installer
       =================================================================== -->

  <!-- Build Zip file -->
  <target name="zip" depends="prepare-deploy">
	<!-- Zip file placed in root of deployment directory -->
	<zip zipfile="${deploy.dir}/../prm_${product.version.codename}.zip">
      <zipfileset dir="${deploy.dir}" prefix="prm"
	      excludes="src/**" />
	</zip>
  </target>

  <!-- Build Zip file including source -->
  <target name="zip-src" depends="prepare-deploy-src">
	<!-- Zip file placed in deploy directory with product version -->
	<zip zipfile="${deploy.dir}/../prm_${product.version.codename}-src.zip">
      <zipfileset dir="${deploy.dir}" prefix="prm" />
	</zip>
  </target>

  <!-- Builds the Installer (which is currently a Zip) -->
  <target name="installer" depends="deploy, zip" />

  <!-- Builds the Installer from clean (which is currently a Zip) -->
  <target name="installer-clean" depends="deploy-clean, installer" description="Builds the entire product from scratch into an installer"/>

  <!-- Builds the Installer from source (which is currently a Zip) -->
  <target name="installer-src" depends="deploy-src, zip-src" />

  <!-- Builds the Installer from clean (which is currently a Zip) -->
  <target name="installer-src-clean" depends="deploy-clean, installer-src" description="Builds the entire product with sources from scratch into an installer"/>

    <target name="-prepare-patch" depends="-init">
        <property name="patch.output.dir" value="${output.dir}/../patch" />
        <mkdir dir="${patch.output.dir}"/>
    </target>

    <!-- This patch has been delivered to: ST -->
    <target name="create-7.6.3-patch-1" depends="-prepare-patch" description="Create Patch 1 for 7.6.3">
        <property name="currentpatch.output.dir" value="${patch.output.dir}/patch1" />
        <mkdir dir="${currentpatch.output.dir}"/>

        <delete file="${currentpatch.output.dir}/763Patch1-classes.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch1-classes.zip">
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="pnet/schedule/fixoverallocations_sjsp.class"/>
                <include name="net/project/schedule/ScheduleEntry.class"/>
                <include name="net/project/schedule/ScheduleEntry$*.class"/>
                <include name="net/project/schedule/TaskEndpointCalculation.class"/>
                <include name="net/project/schedule/TaskEndpointCalculation$*.class"/>
                <include name="net/project/schedule/Schedule.class"/>
                <include name="net/project/schedule/Schedule$*.class"/>
                <include name="net/project/space/SpaceFactory.class"/>
                <include name="net/project/space/SpaceFactory$*.class"/>
                <include name="net/project/base/finder/Finder.class"/>
                <include name="net/project/base/finder/Finder$*.class"/>
                <include name="net/project/schedule/TaskFinder.class"/>
                <include name="net/project/schedule/TaskFinder$*.class"/>
                <include name="net/project/persistence/PersistenceException.class"/>
                <include name="net/project/persistence/PersistenceException$*.class"/>
                <!--<include name=""/>-->
            </zipfileset>
        </zip>

        <delete file="${currentpatch.output.dir}/763Patch1-database.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch1-database.zip">
            <zipfileset dir="${source.dir}/patch/">
                <include name="patch1.sql"/>
            </zipfileset>
        </zip>

        <copy file="${source.dir}/patch/7.6.3-Patch1-ReleaseNotes.txt"
              todir="${currentpatch.output.dir}"/>
    </target>

    <!-- ENW Bugs -->
    <target name="create-7.6.3-patch-2" depends="-prepare-patch" description="Create Patch 2 for 7.6.3">
        <property name="currentpatch.output.dir" value="${patch.output.dir}/patch2" />
        <mkdir dir="${currentpatch.output.dir}"/>

        <delete file="${currentpatch.output.dir}/763Patch2-classes.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch2-classes.zip">
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="pnet/channel/customizechannels_sjsp.class"/>
                <include name="pnet/document/documentaddlink_sjsp.class"/>
                <include name="pnet/discussion/postnewprocessing_sjsp.class"/>
                <include name="pnet/schedule/main_sjsp.class"/>
                <include name="pnet/schedule/workingtime/edit_sjsp.class"/>
                <include name="pnet/schedule/workingtime/list_sjsp.class"/>
                <include name="net/project/discussion/DiscussionGroup.class"/>
                <include name="net/project/discussion/DiscussionGroup$*.class"/>
                <include name="net/project/discussion/Post.class"/>
                <include name="net/project/discussion/Post$*.class"/>
                <include name="net/project/notification/EventCodes.class"/>
                <include name="net/project/notification/EventCodes$*.class"/>
                <include name="net/project/resource/ResourceAllocationCalendar.class"/>
                <include name="net/project/resource/ResourceAllocationCalendar$*.class"/>
                <include name="net/project/schedule/mvc/ScheduleHandlerMapping.class"/>
                <include name="net/project/schedule/mvc/ScheduleHandlerMapping$*.class"/>
            </zipfileset>

            <!-- BFD-1900
                Java/net/project/news/News.java
                Java/net/project/news/NewsManager.java
                Java/net/project/util/XSLFormat.java
                Java/net/project/util/XSLFormatTest.java
                Jsp/pnet/news/include/NewsChannel.jsp
                Jsp/pnet/news/xsl/news-channel.xsl
            -->
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="net/project/news/News.class"/>
                <include name="net/project/news/News$*.class"/>
                <include name="net/project/news/NewsManager.class"/>
                <include name="net/project/news/NewsManager$*.class"/>
                <include name="net/project/util/XSLFormat.class"/>
                <include name="net/project/util/XSLFormat$*.class"/>
                <include name="pnet/news/include/newschannel_sjsp.class"/>

            </zipfileset>
            <zipfileset dir="${output.dir}/java/" prefix="app">
                <include name="pnet/news/xsl/news-channel.xsl"/>

            </zipfileset>

            <!-- BFD-1906
                Jsp/pnet/schedule/MPXImportResult.jsp
                Jsp/pnet/workflow/envelope/EnvelopeWizardPage2.jsp
            -->
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="pnet/schedule/mpximportresult_sjsp.class"/>
                <include name="pnet/workflow/envelope/envelopewizardpage2_sjsp.class"/>
            </zipfileset>
            <!-- BFD-1907
                Jsp/pnet/business/Setup.jsp
                Jsp/pnet/methodology/Actions.jsp
                Jsp/pnet/methodology/TemplifySpace.jsp
            -->
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="pnet/business/setup_sjsp.class"/>
                <include name="pnet/methodology/actions_sjsp.class"/>
                <include name="pnet/methodology/templifyspace_sjsp.class"/>
            </zipfileset>
        </zip>

        <delete file="${currentpatch.output.dir}/763Patch2-database.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch2-database.zip">
            <zipfileset dir="${source.dir}/patch/">
                <include name="Patch2.sql"/>
            </zipfileset>
        </zip>

        <copy file="${source.dir}/patch/7.6.3-Patch2-ReleaseNotes.txt"
              todir="${currentpatch.output.dir}"/>
    </target>

    <target name="create-7.6.3-patch-3" depends="-prepare-patch" description="Create Patch 3 for 7.6.3">
        <property name="currentpatch.output.dir" value="${patch.output.dir}/patch3" />
        <mkdir dir="${currentpatch.output.dir}"/>

        <delete file="${currentpatch.output.dir}/763Patch3-classes.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch3-classes.zip">
            <zipfileset dir="${output.dir}/java/" prefix="classes">
                <include name="pnet/document/documentaddlink_sjsp.class"/>
                <include name="net/project/schedule/ScheduleEntry.class"/>
                <include name="net/project/schedule/ScheduleEntry$*.class"/>
                <!--<include name=""/>-->
            </zipfileset>
        </zip>

        <delete file="${currentpatch.output.dir}/763Patch1-database.zip"/>
        <zip zipfile="${currentpatch.output.dir}/763Patch1-database.zip">
            <zipfileset dir="${source.dir}/patch/">
                <include name="patch1.sql"/>
            </zipfileset>
        </zip>

        <copy file="${source.dir}/patch/7.6.3-Patch3-ReleaseNotes.txt"
              todir="${currentpatch.output.dir}"/>
    </target>

  <!-- ===================================================================
       Cleans everything: build tree
               - build tree
       =================================================================== -->
  <target name="clean" depends="-init" description="Delete all of the files from the resource and output directories">
    <delete dir="${output.dir}" />
	<delete dir="${resource.dest}" />
  </target>


</project>
