<?xml version="1.0"?>
<!--
    The contents of this file are subject to the Mozilla Public License Version 1.1
    (the "License"); you may not use this file except in compliance with the License.
    You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.

    Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
    WARRANTY OF ANY KIND, either express or implied. See the License for the specific
    language governing rights and limitations under the License.

    The Original Code is the Venice Web Communities System.

    The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
    for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
    Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios.  All Rights Reserved.

    Contributor(s): 
-->
<project name="venice" default="all">

  <!-- ============================================================================
    Load build properties
    ============================================================================ -->

  <property file="build.properties"/>

  <!-- ============================================================================
    Default build properties
    ============================================================================ -->

  <!-- [Compilation control flags] -->
  <property name="compile.debug" value="on"/>
  <property name="compile.deprecation" value="on"/>
  <property name="compile.optimize" value="off"/>
  <property name="build.compiler" value="modern"/>

  <!-- [Logging directory] -->
  <property name="logfile.dir" value="${user.home}"/>

  <!-- [Location of JavaCC 3.0] -->
  <property name="javacc.base" value="../javacc"/>
  <property name="javacc.lib" value="${javacc.base}/bin/lib"/>
  <property name="javacc.jarfile" value="javacc.jar"/>

  <!-- [Location of Servlet API 2.3] -->
  <property name="servlet.base" value="../servletapi"/>
  <property name="servlet.lib" value="${servlet.base}/lib"/>
  <property name="servlet.jarfile" value="servlet.jar"/>

  <!-- [Location of Bean Scripting Framework 2.3] -->
  <property name="bsf.base" value="../bsf"/>
  <property name="bsf.lib" value="${bsf.base}/lib"/>
  <property name="bsf.jarfile" value="bsf.jar"/>

  <!-- [Location of Commons Collections Library 2.1] -->
  <property name="collections.base" value="../commons-collections"/>
  <property name="collections.lib" value="${collections.base}"/>
  <property name="collections.jarfile" value="commons-collections.jar"/>

  <!-- [Location of Commons Lang Library 1.0.1] -->
  <property name="commlang.base" value="../commons-lang"/>
  <property name="commlang.lib" value="${commlang.base}"/>
  <property name="commlang.jarfile" value="commons-lang.jar"/>

  <!-- [Location of Rhino 1.5R3] -->
  <property name="rhino.base" value="../rhino"/>
  <property name="rhino.lib" value="${rhino.base}"/>
  <property name="rhino.jarfile" value="js.jar"/>

  <!-- [Location of Log4J 1.2.7] -->
  <property name="log4j.base" value="../log4j"/>
  <property name="log4j.lib" value="${log4j.base}/dist/lib"/>
  <property name="log4j.jarfile" value="log4j.jar"/>

  <!-- [Location of Velocity 1.3.1] -->
  <property name="velocity.base" value="../velocity"/>
  <property name="velocity.lib" value="${velocity.base}"/>
  <property name="velocity.jarfile" value="velocity.jar"/>

  <!-- [Location of Lucene 1.3RC1] -->
  <property name="lucene.base" value="../lucene"/>
  <property name="lucene.lib" value="${lucene.base}"/>
  <property name="lucene.jarfile" value="lucene.jar"/>

  <!-- [Location of SourceID SSO 1.0b7/1.0 (optional)] -->
  <!-- <property name="sourceid.base" value=""/> -->

  <!-- ============================================================================
    Path references
    ============================================================================ -->
  <path id="base.build.path">
    <fileset dir="${bsf.lib}" includes="${bsf.jarfile}"/>
    <fileset dir="${servlet.lib}" includes="${servlet.jarfile}"/>
    <fileset dir="${collections.lib}" includes="${collections.jarfile}"/>
    <fileset dir="${commlang.lib}" includes="${commlang.jarfile}"/>
    <fileset dir="${log4j.lib}" includes="${log4j.jarfile}"/>
    <fileset dir="${velocity.lib}" includes="${velocity.jarfile}"/>
    <fileset dir="${lucene.lib}" includes="${lucene.jarfile}"/>
  </path>

  <!-- ============================================================================
    "init" - Initializes the build.
    ============================================================================ -->

  <target name="init">
    <condition property="sourceid.present">
      <and>
        <isset property="sourceid.base"/>
        <available file="${sourceid.base}/sourceid-sso.jar"/>
      </and>
    </condition>
    <uptodate property="search.parser.notrequired"
              srcfile="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"
              targetfile="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index/Parser.java"/>
  </target>

  <!-- ============================================================================
    "init-jars" - Initializes the target directory for compiled JAR files.
    ============================================================================ -->
  <target name="init-jars" depends="init">
    <mkdir dir="jars"/>
  </target>

  <!-- ============================================================================
    "build-baseutil" - Builds the "base utility" classes (com.silverwrist.util.*).
    ============================================================================ -->
  <target name="build-baseutil" depends="init">
    <mkdir dir="workingarea/baseutil"/>
    <javac srcdir="src/baseutil" destdir="workingarea/baseutil" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <copy todir="workingarea/baseutil">
      <fileset dir="src/baseutil" includes="**/*.properties"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-baseutil" - Jars up the "base utility" classes (com.silverwrist.util.*).
    ============================================================================ -->
  <target name="jar-baseutil" depends="init-jars,build-baseutil">
    <jar destfile="jars/baseutil.jar" basedir="workingarea/baseutil"/>
  </target>

  <!-- ============================================================================
    "jcc-dynamo-search" - Runs JavaCC (parser generator) on the Dynamo index
                          search parser.
    ============================================================================ -->

  <target name="jcc-dynamo-search" depends="init" unless="search.parser.notrequired">
    <mkdir dir="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
    <!-- This rule doesn't work with JavaCC 3.0
      <javacc target="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"
              javacchome="${javacc.lib}"
              outputdirectory="workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
    -->
    <java fork="true" classname="javacc">
      <arg value="-output_directory:workingarea/src-dynamo-framework/com/silverwrist/dynamo/index"/>
      <arg value="src/dynamo-framework/com/silverwrist/dynamo/index/Parser.jj"/>
      <classpath>
        <pathelement location="${javacc.lib}/${javacc.jarfile}"/>
      </classpath>
    </java>
  </target>

  <!-- ============================================================================
    "build-dynamo" - Builds the Dynamo framework classes (com.silverwrist.dynamo.*).
    ============================================================================ -->
  <target name="build-dynamo" depends="init,jar-baseutil,jcc-dynamo-search">
    <mkdir dir="workingarea/dynamo-framework"/>
    <javac srcdir="src/dynamo-framework:workingarea/src-dynamo-framework" destdir="workingarea/dynamo-framework"
           source="1.4" debug="${compile.debug}" optimize="${compile.optimize}" deprecation="off">
      <classpath>
	<filelist dir="jars" files="baseutil.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <copy todir="workingarea/dynamo-framework">
      <fileset dir="src/dynamo-framework" includes="**/*.properties"/>
      <fileset dir="src/dynamo-framework" includes="**/*.ini"/>
      <fileset dir="src/dynamo-framework" includes="**/*.dict"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-dynamo" - Jars up the Dynamo framework classes (com.silverwrist.dynamo.*).
    ============================================================================ -->
  <target name="jar-dynamo" depends="init-jars,build-dynamo">
    <jar destfile="jars/dynamo-framework.jar" basedir="workingarea/dynamo-framework"/>
  </target>

  <!-- ============================================================================
    "build-dynamo-test" - Builds the Dynamo test classes
                          (com.silverwrist.dynamo.test.*).
    ============================================================================ -->
  <target name="build-dynamo-test" depends="init,jar-baseutil,jar-dynamo">
    <mkdir dir="workingarea/dynamo-test"/>
    <javac srcdir="src/dynamo-test" destdir="workingarea/dynamo-test" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
	<filelist dir="jars" files="dynamo-framework.jar,baseutil.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <copy todir="workingarea/dynamo-test">
      <fileset dir="src/dynamo-test" includes="**/*.properties"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-dynamo-test" - Jars up the Dynamo test classes
                        (com.silverwrist.dynamo.test.*).
    ============================================================================ -->

  <target name="jar-dynamo-test" depends="init-jars,build-dynamo-test">
    <jar destfile="jars/dynamo-test.jar" basedir="workingarea/dynamo-test"/>
  </target>

  <!-- ============================================================================
    "build-test-module" - Builds the test module classes
                          (com.silverwrist.dynamo.testmod.*).
    ============================================================================ -->

  <target name="build-test-module" depends="init,jar-baseutil,jar-dynamo">
    <mkdir dir="workingarea/dynamo-test-module"/>
    <javac srcdir="src/dynamo-test-module" destdir="workingarea/dynamo-test-module" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
	<filelist dir="jars" files="dynamo-framework.jar,baseutil.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <mkdir dir="workingarea/dynamo-test-module/resources"/>
    <copy todir="workingarea/dynamo-test-module/resources">
      <fileset dir="resources/dynamo-test-module" includes="**/*"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-test-module" - Jars up the test module classes
                        (com.silverwrist.dynamo.testmod.*).
    ============================================================================ -->

  <target name="jar-test-module" depends="init-jars,build-test-module">
    <jar destfile="jars/dynamo-test-module.jar" basedir="workingarea/dynamo-test-module">
      <manifest>
        <attribute name="X-Dynamo-Module-Class" value="com.silverwrist.dynamo.testmod.Main"/>
        <attribute name="X-Dynamo-Resource-Prefix" value="/resources"/>
      </manifest>
    </jar>
  </target>

  <!-- ============================================================================
    "build-venice-base" - Builds the Venice base classes (com.silverwrist.venice.*).
    ============================================================================ -->

  <target name="build-venice-base" depends="init,jar-baseutil,jar-dynamo">
    <mkdir dir="workingarea/venice-base"/>
    <javac srcdir="src/venice-base" destdir="workingarea/venice-base" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
	<filelist dir="jars" files="dynamo-framework.jar,baseutil.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <copy todir="workingarea/venice-base">
      <fileset dir="src/venice-base" includes="**/*.properties"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-venice-base" - Jars up the Venice base classes (com.silverwrist.venice.*).
    ============================================================================ -->

  <target name="jar-venice-base" depends="init-jars,build-venice-base">
    <jar destfile="jars/venice-base.jar" basedir="workingarea/venice-base"/>
  </target>

  <!-- ============================================================================
    "build-venice-sso-helper" - Builds the Venice SourceID SSO helper classes.
    ============================================================================ -->

  <target name="build-venice-sso-helper" depends="init,jar-baseutil,jar-dynamo,jar-venice-base" if="sourceid.present">
    <mkdir dir="workingarea/venice-sso-helper"/>
    <javac srcdir="src/venice-sso-helper" destdir="workingarea/venice-sso-helper" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
	<filelist dir="jars" files="venice-base.jar,dynamo-framework.jar,baseutil.jar"/>
        <filelist dir="${sourceid.base}" files="sourceid-sso.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
  </target>

  <!-- ============================================================================
    "jar-venice-sso-helper" - Jars up the Venice SourceID SSO helper classes.
    ============================================================================ -->

  <target name="jar-venice-sso-helper" depends="init-jars,build-venice-sso-helper" if="sourceid.present">
    <jar destfile="jars/venice-sso-helper.jar" basedir="workingarea/venice-sso-helper"/>
  </target>

  <!-- ============================================================================
    "build-venice-conferencing" - Builds the Venice Conferencing module.
    ============================================================================ -->

  <target name="build-venice-conferencing" depends="init,jar-baseutil,jar-dynamo,jar-venice-base">
    <mkdir dir="workingarea/conferencing-module"/>
    <javac srcdir="src/conferencing-module" destdir="workingarea/conferencing-module" source="1.4"
           debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}">
      <classpath>
	<filelist dir="jars" files="venice-base.jar,dynamo-framework.jar,baseutil.jar"/>
        <path refid="base.build.path"/>
      </classpath>
    </javac>
    <copy todir="workingarea/conferencing-module">
      <fileset dir="src/conferencing-module" includes="**/*.properties"/>
    </copy>
    <mkdir dir="workingarea/conferencing-module/resources"/>
    <copy todir="workingarea/conferencing-module/resources">
      <fileset dir="resources/conferencing-module" includes="**/*"/>
    </copy>
  </target>

  <!-- ============================================================================
    "jar-venice-conferencing" - Builds the Venice Conferencing module.
    ============================================================================ -->

  <target name="jar-venice-conferencing" depends="init-jars,build-venice-conferencing">
    <jar destfile="jars/venice-conferencing.jar" basedir="workingarea/conferencing-module">
      <manifest>
        <attribute name="X-Dynamo-Module-Class" value="com.silverwrist.venice.conf.module.ModuleMain"/>
        <attribute name="X-Dynamo-Resource-Prefix" value="/resources"/>
      </manifest>
    </jar>
  </target>

  <!-- ============================================================================
    "all-jars" - Pseudo-target that compiles all JAR files.
    ============================================================================ -->
  <target name="all-jars"
          depends="init,jar-baseutil,jar-dynamo,jar-dynamo-test,jar-venice-base,jar-venice-sso-helper,
                   jar-venice-conferencing"/>

  <!-- ============================================================================
    "assemble-test-app" - Pseudo-target that creates the directory structure for
                          the test application.
    ============================================================================ -->
  <target name="assemble-test-app" depends="init,all-jars,jar-test-module">
    <mkdir dir="assembly/testapp"/>
    <mkdir dir="assembly/testapp/WEB-INF/classes"/>
    <mkdir dir="assembly/testapp/WEB-INF/lib"/>
    <mkdir dir="assembly/testapp/WEB-INF/modules"/>
    <copy todir="assembly/testapp/WEB-INF/lib">
      <fileset dir="jars" includes="dynamo-test.jar,dynamo-framework.jar,baseutil.jar"/>
      <fileset dir="drivers" includes="*.jar"/>
      <fileset dir="${bsf.lib}" includes="${bsf.jarfile}"/>
      <fileset dir="${collections.lib}" includes="${collections.jarfile}"/>
      <fileset dir="${commlang.lib}" includes="${commlang.jarfile}"/>
      <fileset dir="${rhino.lib}" includes="${rhino.jarfile}"/>
      <fileset dir="${log4j.lib}" includes="${log4j.jarfile}"/>
      <fileset dir="${velocity.lib}" includes="${velocity.jarfile}"/>
      <fileset dir="${lucene.lib}" includes="${lucene.jarfile}"/>
    </copy>
    <copy file="jars/dynamo-test-module.jar" todir="assembly/testapp/WEB-INF/modules"/>
    <copy file="conf/dynamo-test.xml" tofile="assembly/testapp/WEB-INF/dynamo.xml"/>
    <copy file="conf/logging-test.xml" tofile="assembly/testapp/WEB-INF/logging.xml">
      <filterset>
        <filter token="LOGDIR" value="${logfile.dir}"/>
      </filterset>
    </copy>
    <copy file="conf/web-test.xml" tofile="assembly/testapp/WEB-INF/web.xml"/>
    <copy todir="assembly/testapp/WEB-INF">
      <fileset dir="test-data" includes="**/*"/>
    </copy>
    <copy file="conf/std_render_macro_library.vm"
          tofile="assembly/testapp/WEB-INF/velocity/VM_global_library.vm"/>
  </target>

  <!-- ============================================================================
    "assemble-venice" - Pseudo-target that creates the directory structure for
                        Venice itself.
    ============================================================================ -->
  <target name="assemble-venice" depends="init,all-jars">
    <mkdir dir="assembly/venice"/>
    <mkdir dir="assembly/venice/WEB-INF/classes"/>
    <mkdir dir="assembly/venice/WEB-INF/lib"/>
    <mkdir dir="assembly/venice/WEB-INF/modules"/>
    <copy todir="assembly/venice/WEB-INF/lib">
      <fileset dir="jars" includes="venice-base.jar,dynamo-framework.jar,baseutil.jar"/>
      <fileset dir="drivers" includes="*.jar"/>
      <fileset dir="${bsf.lib}" includes="${bsf.jarfile}"/>
      <fileset dir="${collections.lib}" includes="${collections.jarfile}"/>
      <fileset dir="${commlang.lib}" includes="${commlang.jarfile}"/>
      <fileset dir="${rhino.lib}" includes="${rhino.jarfile}"/>
      <fileset dir="${log4j.lib}" includes="${log4j.jarfile}"/>
      <fileset dir="${velocity.lib}" includes="${velocity.jarfile}"/>
      <fileset dir="${lucene.lib}" includes="${lucene.jarfile}"/>
    </copy>
    <copy todir="assembly/venice/WEB-INF/modules">
      <fileset dir="jars" includes="venice-conferencing.jar"/>
    </copy>
    <copy file="conf/dynamo-venice.xml" tofile="assembly/venice/WEB-INF/dynamo.xml"/>
    <copy file="conf/logging-venice.xml" tofile="assembly/venice/WEB-INF/logging.xml">
      <filterset>
        <filter token="LOGDIR" value="${logfile.dir}"/>
      </filterset>
    </copy>
    <copy file="conf/web-venice.xml" tofile="assembly/venice/WEB-INF/web.xml"/>
    <copy todir="assembly/venice/WEB-INF">
      <fileset dir="venice-data" includes="**/*"/>
    </copy>
    <copy todir="assembly/venice">
      <fileset dir="venice-web" includes="**/*"/>
    </copy>
  </target>

  <!-- ============================================================================
    "assemble-venice-sso-sp" - Pseudo-target that creates the directory structure
                               for Venice, with configuration as a SourceID-SSO
                               Service Provider.
    ============================================================================ -->

  <target name="assemble-venice-sso-sp" depends="init,all-jars" if="sourceid.present">
    <mkdir dir="assembly/venice-sp"/>
    <mkdir dir="assembly/venice-sp/WEB-INF/classes"/>
    <mkdir dir="assembly/venice-sp/WEB-INF/lib"/>
    <mkdir dir="assembly/venice-sp/WEB-INF/modules"/>
    <mkdir dir="assembly/venice-sp/WEB-INF/xsd"/>
    <copy todir="assembly/venice-sp/WEB-INF/classes" preservelastmodified="yes">
      <fileset dir="${sourceid.base}/conf">
        <include name="commons-logging.properties"/>
        <include name="ApplicationResources.properties"/>
      </fileset>
    </copy>
    <copy todir="assembly/venice-sp/WEB-INF/lib">
      <fileset dir="jars" includes="venice-sso-helper.jar,venice-base.jar,dynamo-framework.jar,baseutil.jar"/>
      <fileset dir="drivers" includes="*.jar"/>
      <fileset dir="${bsf.lib}" includes="${bsf.jarfile}"/>
      <fileset dir="${collections.lib}" includes="${collections.jarfile}"/>
      <fileset dir="${commlang.lib}" includes="${commlang.jarfile}"/>
      <fileset dir="${rhino.lib}" includes="${rhino.jarfile}"/>
      <fileset dir="${log4j.lib}" includes="${log4j.jarfile}"/>
      <fileset dir="${velocity.lib}" includes="${velocity.jarfile}"/>
      <fileset dir="${lucene.lib}" includes="${lucene.jarfile}"/>
      <fileset dir="${sourceid.base}" includes="sourceid-sso.jar"/>
      <fileset dir="${sourceid.base}/webapp/WEB-INF/lib">
        <include name="axis-ant.jar"/>
        <include name="axis.jar"/>
        <include name="castor-0.9.4.2-xml.jar"/>
        <include name="commons-discovery.jar"/>
        <include name="commons-logging.jar"/>
        <include name="jaxrpc.jar"/>
        <include name="saaj.jar"/>
        <include name="wsdl4j.jar"/>
        <include name="xalan.jar"/>
        <include name="xml-apis.jar"/>
        <include name="xmlsec.jar"/>
      </fileset>
    </copy>
    <copy todir="assembly/venice-sp/WEB-INF/modules">
      <fileset dir="jars" includes="venice-conferencing.jar"/>
    </copy>
    <copy todir="assembly/venice-sp/WEB-INF/xsd" preservelastmodified="yes">
      <fileset dir="${sourceid.base}/conf" includes="*.xsd"/>
    </copy>
    <copy todir="assembly/venice-sp/WEB-INF">
      <fileset dir="conf-sso">
        <include name="dynamo.xml"/>
        <include name="web.xml"/>
      </fileset>
      <fileset dir="conf-sso/sp">
        <include name="sourceid-sso.xml"/>
        <include name="sourceid-sso-providers.xml"/>
        <include name="venice-sp.keystore"/>
      </fileset>
    </copy>
    <copy file="conf-sso/logging.xml" todir="assembly/venice-sp/WEB-INF">
      <filterset>
        <filter token="LOGDIR" value="${logfile.dir}"/>
        <filter token="WHICH" value="sp"/>
      </filterset>
    </copy>
    <copy file="${sourceid.base}/conf/server-config.wsdd" todir="assembly/venice-sp/WEB-INF"
          preservelastmodified="yes"/>
    <copy todir="assembly/venice-sp/WEB-INF">
      <fileset dir="venice-data" includes="**/*"/>
    </copy>
    <copy todir="assembly/venice-sp/WEB-INF" overwrite="yes">
      <fileset dir="venice-data-sso/sp" includes="**/*"/>
    </copy>
    <copy todir="assembly/venice-sp">
      <fileset dir="venice-web" includes="**/*"/>
    </copy>
  </target>

  <!-- ============================================================================
    "assemble-venice-sso-idp" - Pseudo-target that creates the directory structure
                                for Venice, with configuration as a SourceID-SSO
                                Identity Provider.
    ============================================================================ -->

  <target name="assemble-venice-sso-idp" depends="init,all-jars" if="sourceid.present">
    <mkdir dir="assembly/venice-idp"/>
    <mkdir dir="assembly/venice-idp/WEB-INF/classes"/>
    <mkdir dir="assembly/venice-idp/WEB-INF/lib"/>
    <mkdir dir="assembly/venice-idp/WEB-INF/modules"/>
    <mkdir dir="assembly/venice-idp/WEB-INF/xsd"/>
    <copy todir="assembly/venice-idp/WEB-INF/classes" preservelastmodified="yes">
      <fileset dir="${sourceid.base}/conf">
        <include name="commons-logging.properties"/>
        <include name="ApplicationResources.properties"/>
      </fileset>
    </copy>
    <copy todir="assembly/venice-idp/WEB-INF/lib">
      <fileset dir="jars" includes="venice-sso-helper.jar,venice-base.jar,dynamo-framework.jar,baseutil.jar"/>
      <fileset dir="drivers" includes="*.jar"/>
      <fileset dir="${bsf.lib}" includes="${bsf.jarfile}"/>
      <fileset dir="${collections.lib}" includes="${collections.jarfile}"/>
      <fileset dir="${commlang.lib}" includes="${commlang.jarfile}"/>
      <fileset dir="${rhino.lib}" includes="${rhino.jarfile}"/>
      <fileset dir="${log4j.lib}" includes="${log4j.jarfile}"/>
      <fileset dir="${velocity.lib}" includes="${velocity.jarfile}"/>
      <fileset dir="${lucene.lib}" includes="${lucene.jarfile}"/>
      <fileset dir="${sourceid.base}" includes="sourceid-sso.jar"/>
      <fileset dir="${sourceid.base}/webapp/WEB-INF/lib">
        <include name="axis-ant.jar"/>
        <include name="axis.jar"/>
        <include name="castor-0.9.4.2-xml.jar"/>
        <include name="commons-discovery.jar"/>
        <include name="commons-logging.jar"/>
        <include name="jaxrpc.jar"/>
        <include name="saaj.jar"/>
        <include name="wsdl4j.jar"/>
        <include name="xalan.jar"/>
        <include name="xml-apis.jar"/>
        <include name="xmlsec.jar"/>
      </fileset>
    </copy>
    <copy todir="assembly/venice-idp/WEB-INF/modules">
      <fileset dir="jars" includes="venice-conferencing.jar"/>
    </copy>
    <copy todir="assembly/venice-idp/WEB-INF/xsd" preservelastmodified="yes">
      <fileset dir="${sourceid.base}/conf" includes="*.xsd"/>
    </copy>
    <copy todir="assembly/venice-idp/WEB-INF">
      <fileset dir="conf-sso">
        <include name="dynamo.xml"/>
        <include name="web.xml"/>
      </fileset>
      <fileset dir="conf-sso/idp">
        <include name="sourceid-sso.xml"/>
        <include name="sourceid-sso-providers.xml"/>
        <include name="venice-idp.keystore"/>
      </fileset>
    </copy>
    <copy file="conf-sso/logging.xml" todir="assembly/venice-idp/WEB-INF">
      <filterset>
        <filter token="LOGDIR" value="${logfile.dir}"/>
        <filter token="WHICH" value="idp"/>
      </filterset>
    </copy>
    <copy file="${sourceid.base}/conf/server-config.wsdd" todir="assembly/venice-idp/WEB-INF"
          preservelastmodified="yes"/>
    <copy todir="assembly/venice-idp/WEB-INF">
      <fileset dir="venice-data" includes="**/*"/>
    </copy>
    <copy todir="assembly/venice-idp/WEB-INF" overwrite="yes">
      <fileset dir="venice-data-sso/idp" includes="**/*"/>
    </copy>
    <copy todir="assembly/venice-idp">
      <fileset dir="venice-web" includes="**/*"/>
    </copy>
  </target>

  <!-- ============================================================================
    "all-assemblies" - Pseudo-target that assembles all Web application directory
                       structures.
    ============================================================================ -->
  <target name="all-assemblies"
          depends="init,assemble-test-app,assemble-venice,assemble-venice-sso-sp,assemble-venice-sso-idp"/>

  <!-- ============================================================================
    "all" - Pseudo-target that builds everything.
    ============================================================================ -->
  <target name="all" depends="init,all-jars,all-assemblies"/>

  <!-- ============================================================================
    "javadoc" - Builds JavaDocs for the entire system.
    ============================================================================ -->
  <target name="javadoc">
    <mkdir dir="javadocs"/>
    <javadoc destdir="javadocs" access="package" source="1.4"
             packagenames="com.silverwrist.util.*,com.silverwrist.dynamo.*,com.silverwrist.venice.*"
             windowtitle="Venice Web Communities System">
      <sourcepath>
        <pathelement location="src/baseutil"/>
        <pathelement location="src/dynamo-framework"/>
        <pathelement location="src/venice-base"/>
      </sourcepath>
      <classpath>
        <path refid="base.build.path"/>
      </classpath>
      <group title="Base Utility Packages" packages="com.silverwrist.util:com.silverwrist.util.*"/>
      <group title="Low-Level Dynamo Framework" packages="com.silverwrist.dynamo:com.silverwrist.dynamo.*"/>
      <group title="Mid-Level Venice Classes" packages="com.silverwrist.venice:com.silverwrist.venice.*"/>
      <link href="http://java.sun.com/j2se/1.4.1/docs/api/"/>
      <link href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/"/>
      <link href="http://java.sun.com/products/javabeans/glasgow/javadocs/"/>
      <link href="http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/"/>
      <link href="http://jakarta.apache.org/commons/collections/api/"/>
      <link href="http://jakarta.apache.org/commons/lang/api/"/>
      <link href="http://jakarta.apache.org/log4j/docs/api/"/>
      <link href="http://jakarta.apache.org/velocity/api/"/>
      <link href="http://jakarta.apache.org/lucene/docs/api/"/>
    </javadoc>
  </target>

  <!-- ============================================================================
    "clean" - Cleans up all stuff that was built
    ============================================================================ -->
  <target name="clean">
    <delete dir="workingarea"/>
    <delete dir="jars"/>
    <delete dir="assembly"/>
    <delete dir="javadocs"/>
  </target>

</project>
