<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 -->

<!--
     | The main goals for multi project build are:
     |
     | default
     |    Build all the modules
     |
     | clean
     |    Deletes the 'target' directory in all projects
     |
     | clean-repo
     |    Deletes the 'target' directory in all projects
     |
     | dist-bin
     |		Creates the main binary distribution
     |
     | dist-src
     |		Creates the source distribution
     |
     | dist-docs
     |		Creates the docs distribution
     |
     | release
     |      Creates the complete release (dist-bin, dist-src, dist-docs, war)
     | war
     |    Build the war
   -->

<project default="jar"
         xmlns:j="jelly:core"
         xmlns:u="jelly:util"
         xmlns:deploy="deploy"
         xmlns:modules="local:modules"
         xmlns:ant="jelly:ant"
         xmlns:plugin="plugin"
         xmlns:macros="macros"
         xmlns:maven="jelly:maven"
         xmlns:define="jelly:define">

    <j:set var="dist.name" value="${pom.artifactId}-${pom.currentVersion}"/>
    <j:set var="dist.dir" value="target/dist"/>

    <tstamp>
        <format property="release_date" pattern="MMMM d, yyyy" locale="en"/>
    </tstamp>

    <!-- Test for >= JDK 1.5 to determine whether to include modules that require it -->

    <ant:echo>${ant.java.version}</ant:echo>

    <j:if test="${ant.java.version == '1.5'}">
        <ant:echo>
            JDK ${ant.java.version} detected, including the following modules:
            ${maven.multiproject.includes.requiresJDK15}
        </ant:echo>
        <j:set var="maven.multiproject.includes"
               value="${maven.multiproject.includes},${maven.multiproject.includes.requiresJDK15}"/>
    </j:if>

    <j:set var="modules" value="*"/>

    <preGoal name="modules:reactor:init">
        <j:set var="groupId" value="maven-itest-plugin"/>
        <j:set var="artifactId" value="maven-itest-plugin"/>
        <j:set var="version" value="1.0"/>
        <attainGoal name="plugin:download-artifact"/>
        <maven:installPlugin
                file="${maven.repo.local}/${groupId}/plugins/${artifactId}-${version}.jar"
                cache="true"/>
    </preGoal>

    <!-- ======= -->
    <!-- Modules -->
    <!-- ======= -->
    <goal name="modules:reactor:init">
        <!--
           | Determine the includes which the reactor will use.
           |
           | Uses 4 properties to control which modules will be include:
           |
           | module.types      Comma seperated list of module types (ie. specs or modules)
           | module.includes   Comma seperated list of module names (ie. kernel, adb, ...)
           | modules           Same as module.includes, module.includes initializes to this value
           | module.excludes   Comma seperated list of module names to exclude
           |
           | The end result is that modules.reactor.includes is set to the project.xml files
           | to include.  This is the value the reactor will use.
           |
           | Example, to only build the kernel and adb modules:
           |
           | maven -Dmodules=kernel, adb
         -->

        <j:if test="${context.getVariable('module.types') == null}">
            <j:set var="module.types" value="modules,applications,plugins"/>
        </j:if>

        <j:if test="${context.getVariable('modules') == null}">
            <!-- The default is to build everything -->
            <j:set var="modules" value="${modules}"/>
        </j:if>

        <j:if test="${context.getVariable('module.includes') == null}">
            <j:set var="module.includes" value="${modules}"/>
        </j:if>

        <j:if test="${context.getVariable('module.excludes') == null}">
            <j:set var="module.excludes" value=""/>
        </j:if>

        <u:tokenize var="types" delim=",">${module.types}</u:tokenize>

        <ant:fileScanner var="scanner">
            <ant:fileset dir="${basedir}">
                <j:forEach var="type" items="${types}">
                    <j:choose>
                        <j:when test="${context.getVariable('module.includes') == '*'}">
                            <ant:include name="${type}/*/project.xml"/>
                        </j:when>
                        <j:otherwise>
                            <u:tokenize var="includes" delim=",">${module.includes}</u:tokenize>
                            <j:forEach var="include" items="${includes}">
                                <u:available file="${basedir}/${type}/${include}/project.xml">
                                    <ant:include name="${type}/${include}/project.xml"/>
                                </u:available>
                            </j:forEach>
                        </j:otherwise>
                    </j:choose>

                    <j:choose>
                        <j:when test="${context.getVariable('module.excludes') == '*'}">
                            <ant:exclude name="${type}/*/project.xml"/>
                        </j:when>
                        <j:otherwise>
                            <u:tokenize var="excludes" delim=",">${module.excludes}</u:tokenize>
                            <j:forEach var="exclude" items="${excludes}">
                                <u:available file="${basedir}/${type}/${exclude}/project.xml">
                                    <ant:exclude name="${type}/${exclude}/project.xml"/>
                                </u:available>
                            </j:forEach>
                        </j:otherwise>
                    </j:choose>
                </j:forEach>
            </ant:fileset>
        </ant:fileScanner>

        <!-- Init/Reinit this variable -->
        <j:set var="modules.reactor.includes" value=""/>

        <!-- Setup the includes which will be used by the reactor -->
        <j:forEach var="file" items="${scanner.iterator()}">
            <!--
               | Would be nice if reactor would take a file set, but for now just remove
               | the baseddir portion of the file's name.  So this will essentially strip off
               | ${basedir}
             -->
            <j:set var="directory"
                   value="${file.parentFile.parentFile.name}/${file.parentFile.name}"/>
            <j:set var="filename" value="${directory}/${file.name}"/>
            <ant:echo>Adding to modules.reactor.includes: ${filename}</ant:echo>
            <j:choose>
                <j:when test="${context.getVariable('modules.reactor.includes') == null}">
                    <j:set var="modules.directories" value="${directory}"/>
                    <j:set var="modules.reactor.includes" value="${filename}"/>
                </j:when>
                <j:otherwise>
                    <j:set var="modules.directories" value="${modules.directories},${directory}"/>
                    <j:set var="modules.reactor.includes"
                           value="${modules.reactor.includes},${filename}"/>
                </j:otherwise>
            </j:choose>
        </j:forEach>
    </goal>

    <!-- Helper tags for modules -->
    <define:taglib uri="local:modules">
        <define:tag name="reactor">
            <attainGoal name="modules:reactor:init"/>

            <j:choose>
                <j:when test="${goals != null}">
                    <maven:reactor
                            basedir="${basedir}"
                            includes="${modules.reactor.includes}"
                            banner="Executing (${goals}):"
                            ignoreFailures="false"
                            goals="${goals}"
                            postProcessing="true"
                            />
                </j:when>
                <j:when test="${goals == null}">
                    <maven:reactor
                            basedir="${basedir}"
                            includes="${modules.reactor.includes}"
                            banner="Executing (${goals}):"
                            ignoreFailures="false"
                            postProcessing="true"
                            />
                </j:when>
            </j:choose>

            <!-- Set reactor projects in parent scope so goals have access to it -->
            <j:set var="reactorProjects" value="${reactorProjects}" scope="parent"/>
        </define:tag>
    </define:taglib>

    <goal name="m:init">
        <ant:fileScanner var="scanner">
            <ant:fileset dir="${basedir}">
                <u:tokenize var="includes" delim=",">${maven.multiproject.includes}</u:tokenize>
                <j:forEach var="include" items="${includes}">
                    <ant:include name="${include}"/>
                </j:forEach>
                <u:tokenize var="excludes" delim=",">${maven.multiproject.excludes}</u:tokenize>
                <j:forEach var="exclude" items="${excludes}">
                    <ant:exclude name="${exclude}"/>
                </j:forEach>
            </ant:fileset>
        </ant:fileScanner>

        <j:set var="maven.multiproject.includes" value=""/>
        <j:set var="maven.multiproject.excludes" value=""/>
        <j:set var="modules.directories" value=""/>

        <u:tokenize var="moduleList" delim=",">${modules}</u:tokenize>
        <j:set var="currentDir" value="${basedir}/"/>
        <j:forEach var="file" items="${scanner.iterator()}">
            <j:set var="directory" value="${file.parentFile.absolutePath}"/>
            <j:set var="include" value="${file.absolutePath.substring(currentDir.length())}"/>
            <j:if test="${moduleList.isEmpty() || moduleList.contains(file.parentFile.name)}">
                <j:choose>
                    <j:when test="${context.getVariable('maven.multiproject.includes') == ''}">
                        <j:set var="modules.directories" value="${directory}"/>
                        <j:set var="maven.multiproject.includes" value="${include}"/>
                    </j:when>
                    <j:otherwise>
                        <j:set var="modules.directories"
                               value="${modules.directories},${directory}"/>
                        <j:set var="maven.multiproject.includes"
                               value="${maven.multiproject.includes},${include}"/>
                    </j:otherwise>
                </j:choose>
            </j:if>
        </j:forEach>
    </goal>

    <goal name="jar:jar">
        <attainGoal name="create-jar"/>
        <ant:copy file="target/lib/axis2-${pom.currentVersion}.jar"
                  toDir="target/"/>
    </goal>

    <goal name="jar">
        <attainGoal name="multiproject:install"/>
        <attainGoal name="jar:install"/>
    </goal>

    <goal name="init">
        <ant:mkdir dir="target"/>
        <ant:mkdir dir="${dist.dir}"/>
        <ant:mkdir dir="target/lib"/>

        <uptodate property="jars.uptodate" targetfile="target/axis2-${pom.currentVersion}.war">
            <srcfiles dir="modules">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.wsdl"/>
                <exclude name="**/target/**"/>
            </srcfiles>
        </uptodate>
        <echo message="the files are up to date = ${jars.uptodate}"></echo>
    </goal>

    <goal name="modules:clean">
        <attainGoal name="modules:reactor:init"/>
        <u:tokenize var="directories" delim=",">${modules.directories}</u:tokenize>
        <j:forEach var="directory" items="${directories}">
            <ant:echo>+----------------------------------------</ant:echo>
            <ant:echo>| Cleaning: ${directory}</ant:echo>
            <ant:echo>+----------------------------------------</ant:echo>
            <ant:delete dir="${directory}/target"/>
            <ant:delete quiet="false" failonerror="false">
                <ant:fileset dir="${directory}">
                    <ant:include name="maven.log"/>
                    <ant:include name="velocity.log*"/>
                    <ant:include name="junit*.properties"/>
                    <ant:include name="axis.log"/>
                    <ant:include name="junit*.properties"/>
                    <ant:include name="temp.properties"/>
                </ant:fileset>
            </ant:delete>
            <ant:echo></ant:echo>
        </j:forEach>
        <ant:echo>+----------------------------------------</ant:echo>
        <ant:echo>| Cleaning: target and etc/target</ant:echo>
        <ant:echo>+----------------------------------------</ant:echo>
        <ant:delete dir="target"/>
        <ant:delete dir="etc/target"/>
    </goal>

    <goal name="clean">
        <ant:delete dir="${user.home}/.axis2"/>
        <ant:delete dir="${user.home}/.axis2home"/>
        <attainGoal name="modules:clean"/>
    </goal>

    <!-- ================================================================ -->
    <!--- Clean the Repository -->
    <!-- ================================================================ -->
    <goal name="clean-repo">
        <ant:delete>
            <ant:fileset dir="${maven.repo.local}">
                <ant:include name="org.apache.axis2/jars/axis2*.jar"/>
            </ant:fileset>
        </ant:delete>
    </goal>

    <goal name="all-tests">
        <modules:reactor goals="jar:install,test,itest"/>
    </goal>

    <goal name="cleanse-sources">
        <modules:reactor goals="cleanse-sources"/>
    </goal>

    <goal name="clover">
        <modules:reactor goals="clover:on,jar:install,test"/>
        <attainGoal name="clover:merge"/>
        <attainGoal name="clover:report"/>
    </goal>

    <goal name="create-jar" prereqs="init">
        <!-- Hack for now, don't fail building jar if saaj is absent -->
        <ant:mkdir dir="modules/saaj/target/classes"/>

        <jar destfile="target/lib/axis2-${pom.currentVersion}.jar">
            <fileset dir="modules/java2wsdl/target/classes"/>
            <fileset dir="modules/kernel/target/classes"/>
            <!-- adding the tool classes. This is needed to get the ant task -->
            <fileset dir="modules/tool/target/classes"/>
            <fileset dir="modules/saaj/target/classes"/>
            <fileset dir="modules/addressing/target/classes"/>
            <fileset dir="modules/codegen/target/classes"/>
            <fileset dir="modules/adb/target/classes"/>
            <fileset dir="modules/adb-codegen/target/classes"/>
            <fileset dir="modules/xmlbeans/target/classes"/>
            <fileset dir="modules/addressing/target/">
                <include name="modules/addressing-${addressing_version}.mar"/>
            </fileset>
        </jar>
    </goal>

    <goal name="create-lib" prereqs="jar">
        <attainGoal name="download-libs"/>
    </goal>

    <goal name="download-libs">
        <macros:copy-deps copyToDir="target/lib" mods="*"/>
    </goal>

    <!-- ================================================================ -->
    <!--- Create the War -->
    <!-- ================================================================ -->
    <goal name="war" prereqs="jar,init-dist,cache-war-deps">

        <ant:mkdir dir="target/temp/war/toWEB-INF/modules"/>
        <ant:mkdir dir="target/temp/war/toWEB-INF/services"/>
        <ant:mkdir dir="target/temp/war/toWEB-INF/conf"/>


        <!-- let's now remove un-necessary jars. Please refer -->
        <!-- http://marc.theaimsgroup.com/?l=axis-dev&m=116047407714969&w=2, if you wanna know-->
        <!-- why I removed this. -->
        <ant:delete>
            <fileset dir="${war_dep_cache}">
                <include name="bcel-${bcel.version}.jar"/>
                <include name="jibx-bind-${jibx.version}.jar"/>
            </fileset>
        </ant:delete>

        <!-- Copy the java2wsdl jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/java2wsdl/target/axis2-java2wsdl-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the kernel jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/kernel/target/axis2-kernel-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the adb jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/adb/target/axis2-adb-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the adb  codegen jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset
                    file="modules/adb-codegen/target/axis2-adb-codegen-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the java2wsdl jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/java2wsdl/target/axis2-java2wsdl-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the codegen jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/codegen/target/axis2-codegen-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the xmlbeans jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/xmlbeans/target/axis2-xmlbeans-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the spring jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/spring/target/axis2-spring-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the saaj jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/saaj/target/axis2-saaj-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy the jibx jar -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset file="modules/jibx/target/axis2-jibx-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy items that depend on JDK1.5  -->
        <j:if test="${ant.java.version == '1.5'}">

            <ant:copy toDir="target/temp/war/lib">
                <ant:fileset file="modules/jaxbri/target/axis2-jaxbri-${pom.currentVersion}.jar"/>
            </ant:copy>
             
            <ant:copy toDir="target/temp/war/lib">
                <ant:fileset file="modules/cluster/target/axis2-cluster-${pom.currentVersion}.jar"/>
            </ant:copy>
        </j:if>

        <!-- Copy the soapmonitor jar - the servlet classes -->
        <ant:copy toDir="target/temp/war/lib">
            <ant:fileset
                    file="modules/soapmonitor/target/axis2-soapmonitor-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- copy the soapmonitor mar -->
        <ant:copy toDir="target/temp/war/toWEB-INF/modules">
            <ant:fileset file="modules/soapmonitor/target/soapmonitor-${soapmonitor_version}.mar"/>
        </ant:copy>

        <!-- copy the addressing mar -->
        <ant:copy toDir="target/temp/war/toWEB-INF/modules">
            <ant:fileset file="modules/addressing/target/addressing-${addressing_version}.mar"/>
        </ant:copy>

        <echo file="target/temp/war/toWEB-INF/modules/modules.list" append="false">
            addressing-${addressing_version}.mar
            soapmonitor-${soapmonitor_version}.mar
        </echo>

        <!-- copy the sample services -->
        <ant:copy toDir="target/temp/war/toWEB-INF/services">
            <ant:fileset file="modules/samples/target/toWar/services/version.aar"/>
        </ant:copy>

        <echo file="target/temp/war/toWEB-INF/services/services.list" append="false">version.aar
        </echo>

        <!-- copy the axis2.xml into conf directoy -->
        <ant:copy toDir="target/temp/war/toWEB-INF/conf">
            <ant:fileset file="modules/kernel/conf/axis2.xml"/>
        </ant:copy>
        <ant:copy toDir="target/temp/war/axis2-web">
            <ant:fileset dir="modules/webapp">
                <ant:exclude name="project.xml"/>
                <ant:exclude name="**/*.iml"/>
                <ant:exclude name="**/.*"/>
                <ant:exclude name="**/conf/**"/>
            </ant:fileset>
        </ant:copy>

        <ant:war destfile="target/dist/axis2.war"
                 webxml="modules/webapp/conf/web.xml">
            <ant:lib dir="target/temp/war/lib">
                <ant:include name="**"/>
                <ant:exclude name="**servlet**"/>
                <ant:exclude name="ant*.jar"/>
            </ant:lib>
            <ant:lib dir="${war_dep_cache}">
                <ant:include name="**"/>
                <ant:exclude name="**servlet**"/>
                <ant:exclude name="ant*.jar"/>
            </ant:lib>
            <ant:classes dir="modules/kernel/conf">
                <ant:include name="*.properties"/>
            </ant:classes>
            <!--  <ant:webinf dir="modules/kernel/src/org/apache/axis2/deployment">
               <ant:include name="*.xml"/>
           </ant:webinf> -->
            <ant:webinf dir="target/temp/war/toWEB-INF"/>
            <ant:fileset dir="target/temp/war">
                <ant:include name="**/axis2-web/**"/>
            </ant:fileset>
        </ant:war>
    </goal>

    <!-- to transform htmls to xdocs -->
    <preGoal name="xdoc:jelly-transform">
        <attainGoal name="html2xdoc"/>
    </preGoal>

    <!-- ================================================================ -->
    <!--- Create the Release -->
    <!-- ================================================================ -->
    <goal name="release"
          prereqs="jar,dist-bin,dist-src,dist-docs,war">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 Distributions</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:copy toFile="target/dist/addressing-${addressing_version}.mar"
                  file="modules/addressing/target/addressing-${addressing_version}.mar"/>

        <ant:copy toFile="target/dist/rampart-${rampart_version}.mar"
                  file="modules/security/target/rampart-${rampart_version}.mar"/>

        <ant:copy toFile="target/dist/soapmonitor-${soapmonitor_version}.mar"
                  file="modules/soapmonitor/target/soapmonitor-${soapmonitor_version}.mar"/>

        <ant:delete dir="target/temp"/>
        <ant:delete dir="target/apidocs"/>
    </goal>

    <goal name="init-dist">
        <ant:filter token="axis2_version" value="${pom.currentVersion}"/>
        <ant:filter token="release_date" value="${release_date}"/>

        <property name="std_dep_cache" value="target/temp/cache/std"/>
        <property name="war_dep_cache" value="target/temp/cache/war"/>

        <ant:mkdir dir="target/dist"/>
    </goal>

    <goal name="dist-bin" prereqs="jar,init-dist,cache-std-deps">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 Main Binary Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:property name="std.bin.temp.dir" value="target/temp/main/axis2-${pom.currentVersion}"/>

        <ant:mkdir dir="${std.bin.temp.dir}/repository"/>
        <ant:mkdir dir="${std.bin.temp.dir}/repository/modules"/>
        <ant:mkdir dir="${std.bin.temp.dir}/repository/services"/>
        <ant:mkdir dir="${std.bin.temp.dir}/bin"/>
        <ant:mkdir dir="${std.bin.temp.dir}/conf"/>
        <ant:mkdir dir="${std.bin.temp.dir}/webapp"/>
        <ant:mkdir dir="${std.bin.temp.dir}/webapp/WEB-INF"/>
        <ant:mkdir dir="${std.bin.temp.dir}/webapp/WEB-INF/classes"/>
        <ant:mkdir dir="${std.bin.temp.dir}/webapp/axis2-web"/>
        <ant:mkdir dir="${std.bin.temp.dir}/lib"/>
        <ant:mkdir dir="${std.bin.temp.dir}/samples"/>

        <!--********************** creating the repository ********************** -->
        <!-- copy the soapmonitor mar -->
        <ant:copy toDir="${std.bin.temp.dir}/repository/modules">
            <ant:fileset file="modules/soapmonitor/target/soapmonitor-${soapmonitor_version}.mar"/>
        </ant:copy>

        <!-- copy the addressing mar -->
        <ant:copy toDir="${std.bin.temp.dir}/repository/modules">
            <ant:fileset file="modules/addressing/target/addressing-${addressing_version}.mar"/>
        </ant:copy>

        <echo file="${std.bin.temp.dir}/repository/modules/modules.list" append="false">
            addressing-${addressing_version}.mar
            soapmonitor-${soapmonitor_version}.mar
        </echo>

        <!-- copy the sample services -->
        <!-- TODO copy other sample-XXX.aar too -->
        <ant:copy toDir="${std.bin.temp.dir}/repository/services">
            <ant:fileset file="modules/samples/target/toWar/services/version.aar"/>
        </ant:copy>

        <echo file="${std.bin.temp.dir}/repository/services/services.list" append="false">
            version.aar
        </echo>

        <!--********************** creating the bin ********************** -->
        <!-- Copy bin scripts -->
        <ant:copy todir="${std.bin.temp.dir}/bin">
            <ant:fileset dir="modules/tool/script"/>
        </ant:copy>

        <!--********************** creating the conf ********************** -->
        <!-- copy the axis2.xml into conf directoy -->
        <ant:copy toDir="${std.bin.temp.dir}/conf">
            <ant:fileset file="modules/kernel/conf/axis2.xml"/>
        </ant:copy>

        <!--********************** creating the webappp ********************** -->
        <!-- copy the web.xml into webapp/WEB-INF directory -->
        <ant:copy toDir="${std.bin.temp.dir}/webapp/WEB-INF">
            <ant:fileset file="modules/webapp/conf/web.xml"/>
        </ant:copy>

        <!-- copy the build.xml into webapp directory -->
        <ant:copy toDir="${std.bin.temp.dir}/webapp">
            <ant:fileset file="modules/webapp/scripts/build.xml"/>
        </ant:copy>

        <!-- copy *.properties to webapp/WEB-INF/classes directory -->
        <ant:copy toDir="${std.bin.temp.dir}/webapp/WEB-INF/classes">
            <ant:fileset dir="modules/kernel/conf">
                <ant:include name="*.properties"/>
            </ant:fileset>
        </ant:copy>

        <!-- copy contents of the webapp module to webapp/axis2-web directory -->
        <ant:copy toDir="${std.bin.temp.dir}/webapp/axis2-web">
            <ant:fileset dir="modules/webapp">
                <ant:exclude name="project.xml"/>
                <ant:exclude name="**/*.iml"/>
                <ant:exclude name="**/.*"/>
                <ant:exclude name="**/conf/**"/>
                <ant:exclude name="**/scripts/**"/>
            </ant:fileset>
        </ant:copy>


        <!--********************** creating the lib ********************** -->
        <!-- Copy the 3rd party libs -->
        <ant:copy toDir="${std.bin.temp.dir}/lib">
            <ant:fileset dir="${std_dep_cache}"/>
        </ant:copy>

        <!-- Deleting bcel, jaxme, spring jars -->
        <ant:delete>
            <fileset dir="${std.bin.temp.dir}/lib">
                <include name="bcel-${bcel.version}.jar"/>
                <include name="spring*.*"/>
                <include name="jaxme*.*"/>
            </fileset>
        </ant:delete>

        <!-- Delete tesing jars -->
        <echo message="Deleting Unwanted testing jars"/>
        <ant:delete>
            <fileset dir="${std.bin.temp.dir}/lib">
                <include name="**/ant*.jar"/>
                <include name="**/xmlunit*.jar"/>
                <include name="**/junit*.jar"/>
            </fileset>
        </ant:delete>

        <ant:copy toDir="${std.bin.temp.dir}/lib">
            <ant:fileset file="modules/java2wsdl/target/axis2-java2wsdl-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/kernel/target/axis2-kernel-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/adb/target/axis2-adb-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/codegen/target/axis2-codegen-${pom.currentVersion}.jar"/>
            <ant:fileset
                    file="modules/adb-codegen/target/axis2-adb-codegen-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/xmlbeans/target/axis2-xmlbeans-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/jibx/target/axis2-jibx-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/saaj/target/axis2-saaj-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/tool/target/axis2-tools-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/spring/target/axis2-spring-${pom.currentVersion}.jar"/>
            <ant:fileset
                    file="modules/soapmonitor/target/axis2-soapmonitor-${pom.currentVersion}.jar"/>
        </ant:copy>

        <!-- Copy items that depend on JDK1.5  -->
        <j:if test="${ant.java.version == '1.5'}">
            <ant:copy toDir="${std.bin.temp.dir}/lib">
                <ant:fileset file="modules/jaxbri/target/axis2-jaxbri-${pom.currentVersion}.jar"/>
            </ant:copy>
        </j:if>


        <!--********************** creating the samples ********************** -->
        <!-- If you want to add a new sample, put your content in modules/samples and add an entry below
        to be copied in to the standard release -->
        <ant:mkdir dir="${std.bin.temp.dir}/samples/faulthandling"/>
        <ant:copy todir="${std.bin.temp.dir}/samples/">
            <ant:fileset dir="modules/samples/">
                <include name="yahoorestsearch/**/*.*"/>
                <include name="databinding/**/*.*"/>
                <include name="googlespellcheck/**/*.*"/>
                <include name="faulthandling/**/*.*"/>
                <include name="mtom/**/*.*"/>
                <include name="soapwithattachments/**/*.*"/>
                <include name="version/**/*.*"/>
                <include name="servicelifecycle/**/*.*"/>
                <include name="pojo/**/*.*"/>
                <!-- Docs related samples -->
                <include name="userguide/**/*.*"/>
                <include name="pojoguide/**/*.*"/>
                <include name="pojoguidespring/**/*.*"/>
                <include name="quickstart/**/*.*"/>
                <include name="quickstartaxiom/**/*.*"/>
                <include name="quickstartadb/**/*.*"/>
                <include name="quickstartxmlbeans/**/*.*"/>
                <include name="quickstartjibx/**/*.*"/>
            </ant:fileset>
        </ant:copy>

        <ant:delete file="${std.bin.temp.dir}/samples/groovyService.aar"/>


        <!--copy NOTICE.txt file-->
        <ant:copy toFile="${std.bin.temp.dir}/NOTICE.txt" filtering="on">
            <ant:fileset file="NOTICE.txt"/>
        </ant:copy>
        
        <!--copy NOTICE.txt file-->
        <ant:copy toFile="${std.bin.temp.dir}/INSTALL.txt" filtering="on">
            <ant:fileset file="release-docs/readme-files/installation-std-bin.txt"/>
        </ant:copy>
        <!-- Copy the release documents -->
        <macros:copy-release-docs toDir="${std.bin.temp.dir}"
                    readmeFile="release-docs/readme-files/README-std-bin.txt"/>

        <ant:zip file="${dist.dir}/axis2-${pom.currentVersion}.zip"
                 basedir="target/temp/main"/>
        <ant:delete dir="target/temp/main"/>
    </goal>

    <goal name="dist-src" prereqs="init-dist">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 Standard Source Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:property name="src.temp.dir" value="target/temp/src/axis2-${pom.currentVersion}/src"/>
        <ant:mkdir dir="target/temp/src"/>
        <ant:mkdir dir="target/temp/src/axis2-${pom.currentVersion}"/>
        <ant:mkdir dir="${src.temp.dir}"/>

        <ant:copy toDir="${src.temp.dir}">
            <ant:fileset dir=".">
                <ant:include name="**/etc/**"/>
                <ant:include name="**/modules/java2wsdl/**"/>
                <ant:include name="**/modules/kernel/**"/>
                <ant:include name="**/modules/adb/**"/>
                <ant:include name="**/modules/adb-codegen/**"/>
                <ant:include name="**/modules/codegen/**"/>
                <ant:include name="**/modules/webapp/**"/>
                <ant:include name="**/modules/xmlbeans/**"/>
                <ant:include name="**/modules/jibx/**"/>
                <ant:include name="**/modules/jaxbri/**"/>
                <ant:include name="**/modules/addressing/**"/>
                <ant:include name="**/modules/saaj/**"/>
                <ant:include name="**/modules/samples/**"/>
                <ant:include name="**/modules/soapmonitor/**"/>
                <ant:include name="**/modules/spring/**"/>
                <ant:include name="**/modules/cluster/**"/>
                <ant:include name="**/modules/tool/**"/>
                <ant:exclude name="**/SameServiceAddingTest.java"/>
                <!-- TODO: This is failing in the distros. Must Fix it. -->
                <ant:exclude name="**/target/**"/>
                <ant:exclude name="**/modules/samples/eventing/**"/>
                <ant:exclude name="**/modules/samples/security/**"/>
                <ant:exclude name="xdocs/**"/>
                <ant:exclude name="**/*class*/**"/>
                <ant:exclude name="**/.svn/**"/>
                <ant:exclude name="**/bin/**"/>
                <ant:exclude name="**/*.log"/>
                <ant:exclude name=".*"/>
                <ant:exclude name="**/*.license"/>
                <ant:exclude name="**/*.iml"/>
            </ant:fileset>
        </ant:copy>
        <ant:copy toDir="${src.temp.dir}/etc" overwrite="true" filtering="on"
                  file="etc/project.properties"/>
        <ant:copy toDir="${src.temp.dir}" overwrite="true" filtering="on" file="NOTICE.txt"/>

        <!-- Copy the master maven files for the standard src distro -->
        <ant:copy toFile="${src.temp.dir}/maven.xml">
            <ant:fileset file="release-docs/maven-scripts/maven-std.xml"/>
        </ant:copy>
        <ant:copy toDir="${src.temp.dir}">
            <ant:fileset file="project.xml"/>
        </ant:copy>

        <!-- Copy the release documents -->
        <macros:copy-release-docs toDir="${src.temp.dir}"
                                  readmeFile="release-docs/readme-files/README-std-src.txt"/>

        <ant:zip file="${dist.dir}/axis2-${pom.currentVersion}-src.zip">
            <ant:fileset dir="target/temp/src"/>
        </ant:zip>
        <ant:delete dir="target/temp/src"/>
    </goal>

    <goal name="dist-war" prereqs="war">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 WAR Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>
    </goal>

    <goal name="dist-docs" prereqs="init-dist, javadocs">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 Docs Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:mkdir dir="target/dist"/>
        <ant:property name="docs.temp.dir"
                      value="target/temp/docs/axis2-${pom.currentVersion}/docs"/>

        <ant:mkdir dir="${docs.temp.dir}"/>
        <ant:mkdir dir="${docs.temp.dir}/xdocs"/>
        <ant:mkdir dir="${docs.temp.dir}/javadocs"/>

        <ant:copy toDir="${docs.temp.dir}/xdocs">
            <ant:fileset dir="xdocs"/>
        </ant:copy>

        <ant:copy toDir="${docs.temp.dir}/javadocs">
            <ant:fileset dir="target/apidocs"/>
        </ant:copy>

        <macros:copy-release-docs toDir="${docs.temp.dir}"
                                  readmeFile="release-docs/readme-files/README-docs.txt"/>

        <ant:zip file="${dist.dir}/axis2-${pom.currentVersion}-docs.zip">
            <ant:fileset dir="target/temp/docs"/>
        </ant:zip>
        <!--ant:delete dir="target/temp/docs"/-->

        <ant:echo message="***** IMPORTANT: Please manually copy the Eclipse &amp; IDEA plugins"/>
    </goal>

    <goal name="cache-std-deps" prereqs="init-dist">
        <ant:mkdir dir="${std_dep_cache}"/>
        <j:if test="${stdDeps.uptodate != 'yes'}">
            <macros:copy-deps copyToDir="${std_dep_cache}"
                              mods="webapp,jibx,spring,saaj,kernel,adb"/>
            <property name="stdDeps.uptodate" value="yes"/>
        </j:if>

        <!--copy the license files also-->
        <ant:copy toDir="${std_dep_cache}">
            <ant:fileset dir="legal/std">
                <ant:include name="*.txt"/>
            </ant:fileset>
        </ant:copy>

        <!--remove testing jars-->
        <ant:delete dir="${std_dep_cache}">
            <ant:include name="junit*.jar"/>
            <ant:include name="xmlunit*.jar"/>
            <ant:include name="maven-itest*.jar"/>
        </ant:delete>
    </goal>

    <!--<goal name="cache-war-deps" prereqs="init-dist,cache-std-deps">-->
    <goal name="cache-war-deps" prereqs="init-dist">
        <ant:mkdir dir="${war_dep_cache}"/>
        <j:if test="${warDeps.uptodate != 'yes'}">
            <macros:copy-deps copyToDir="${war_dep_cache}"
                              mods="webapp,spring,jibx,saaj"/>
            <property name="warDeps.uptodate" value="yes"/>
        </j:if>

        <!--copy the license files also-->
        <ant:copy toDir="${war_dep_cache}">
            <ant:fileset dir="legal/war">
                <ant:include name="*.txt"/>
            </ant:fileset>
            <ant:fileset dir="legal/std">
                <ant:include name="*.txt"/>
            </ant:fileset>
        </ant:copy>

        <!--remove testing jars-->
        <ant:delete dir="${war_dep_cache}">
            <ant:include name="junit*.jar"/>
            <ant:include name="xmlunit*.jar"/>
        </ant:delete>
    </goal>


    <!-- ================================================================ -->
    <!--- Create the Java Docs -->
    <!-- ================================================================ -->
    <goal name="javadocs" prereqs="jar,init, create-lib">
        <ant:javadoc packagenames="org.apache.axis2.*"
                     defaultexcludes="yes"
                     destdir="target/apidocs"
                     author="true"
                     breakiterator="true"
                     version="true"
                     use="true"
                     windowtitle="Axis2 API">
            <ant:arg
                    line="-J-Dhttp.proxy.port=${maven.proxy.port} -J-Dhttp.proxy.host=${maven.proxy.host}"/>
            <ant:sourcepath>
                <ant:pathelement location="modules/adb/src"/>
                <ant:pathelement location="modules/adb-codegen/src"/>
                <ant:pathelement location="modules/addressing/src"/>
                <ant:pathelement location="modules/codegen/src"/>
                <ant:pathelement location="modules/java2wsdl/src"/>
                <!-- Cannot run the build in jdk1.4 when jaxbri is included -->
                <!--ant:pathelement location="modules/jaxbri/src"/-->
                <ant:pathelement location="modules/jibx/src"/>
                <ant:pathelement location="modules/kernel/src"/>
                <ant:pathelement location="modules/saaj/src"/>
                <!-- we are not shipping jaxws with 1.1 -->
                <!--ant:pathelement location="modules/jaxws/src"/-->
                <ant:pathelement location="modules/soapmonitor/src"/>
                <ant:pathelement location="modules/spring/src"/>
                <ant:pathelement location="modules/cluster/src"/>
                <ant:pathelement location="modules/xmlbeans/src"/>
            </ant:sourcepath>
            <ant:classpath>
                <ant:fileset dir="target/lib">
                    <ant:include name="**/*.jar"/>
                </ant:fileset>
            </ant:classpath>
            <ant:excludepackage name="org.apache.axis2.tool.codegen.*"/>
            <ant:excludepackage name="org.apache.axis2.tool.service.*"/>
            <ant:link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
            <ant:link href="http://java.sun.com/webservices/docs/1.5/api/"/>
            <ant:link href="http://xerces.apache.org/xerces-j/apiDocs/"/>
            <ant:link href="http://xml.apache.org/xalan-j/apidocs/"/>
            <ant:link href="http://xmlbeans.apache.org/docs/2.1.0/reference/"/>
        </ant:javadoc>
    </goal>
    
    <postGoal name="site">
         <ant:copy toDir="target/docs/style" overwrite="true">
             <ant:fileset dir="xdocs/style">
                 <ant:include name="*.css"/>
             </ant:fileset>
         </ant:copy>
    </postGoal>

    <!-- ================================================================ -->
    <!--- Reports -->
    <!-- ================================================================ -->
    <!-- Conditionally disable linkcheck based on a property. -->

    <postGoal name="xdoc:register-reports">
        <j:if test="${maven.allreports.disable}">
            <echo>Reports are disabled. Deregistering all the reports ....</echo>
            <attainGoal name="maven-linkcheck-plugin:deregister"/>
            <echo>linkcheck is disabled.</echo>
            <attainGoal name="maven-checkstyle-plugin:deregister"/>
            <echo>checkstyle is disabled.</echo>
            <attainGoal name="maven-changes-plugin:deregister"/>
            <echo>changes is disabled.</echo>
            <attainGoal name="maven-changelog-plugin:deregister"/>
            <echo>changelog is disabled.</echo>
            <attainGoal name="maven-license-plugin:deregister"/>
            <echo>license is disabled.</echo>
            <attainGoal name="maven-javadoc-plugin:deregister"/>
            <echo>javadoc is disabled.</echo>
            <attainGoal name="maven-junit-report-plugin:deregister"/>
            <echo>junit-report is disabled.</echo>
            <attainGoal name="maven-tasklist-plugin:deregister"/>
            <echo>tasklist is disabled.</echo>
        </j:if>

    </postGoal>


    <!-- ================================================================ -->
    <!--- Create JUnit test reports -->
    <!-- ================================================================ -->
    <goal name="test-reports">
        <mkdir dir="${basedir}/target/test-reports"/>
        <ant:junitreport todir="${basedir}/target/test-reports">
            <ant:fileset dir="${basedir}/">
                <ant:include name="**/test-reports/TEST-*.xml"/>
                <ant:include name="**/itest-reports/TEST-*.xml"/>
            </ant:fileset>
            <ant:report format="frames" todir="${basedir}/target/test-reports"
                        styledir="${basedir}/etc"/>
        </ant:junitreport>
    </goal>

    <!-- ================================================================ -->
    <!--- Create all the distributable jars -->
    <!-- ================================================================ -->
    <goal name="all-jars" prereqs="jar">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: JARs</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:property name="destdir" value="target/jars"/>
        <ant:mkdir dir="${destdir}"/>

        <ant:copy toDir="${destdir}">
            <ant:fileset file="modules/java2wsdl/target/axis2-java2wsdl-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/kernel/target/axis2-kernel-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/adb/target/axis2-adb-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/codegen/target/axis2-codegen-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/codegen/target/axis2-adb-codegen-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/xmlbeans/target/axis2-xmlbeans-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/jibx/target/axis2-jibx-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/java2wsdl/target/axis2-java2wsdl-${pom.currentVersion}.jar"/>
        </ant:copy>
        <!-- Copy items that depend on JDK1.5  -->
        <j:if test="${ant.java.version == '1.5'}">
            <ant:copy toDir="${destdir}">
                <ant:fileset file="modules/jaxbri/target/axis2-jaxbri-${pom.currentVersion}.jar"/>
            </ant:copy>
        </j:if>

    </goal>


    <!-- ================================================================ -->
    <!--- Create Apache Rampart Release Artifacts                         -->
    <!-- ================================================================ -->
    <goal name="rampart-release" prereqs="create-lib">

        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Rampart Release</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:mkdir dir="target/dist/rampart/"/>

        <attainGoal name="rampart-dist-bin"/>

        <attainGoal name="rampart-dist-src"/>
    	
        <attainGoal name="rampart-javadocs"/>
    	
    </goal>

    <!-- ================================================================ -->
    <!--- Rampart Binary Distro                                           -->
    <!-- ================================================================ -->
    <goal name="rampart-dist-bin">

        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Rampart Binary Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:property name="destdir" value="target/temp-rampart-bin/rampart-${rampart_version}"/>
        <ant:property name="libdir" value="target/temp-rampart-bin/rampart-${rampart_version}/lib"/>
        <ant:property name="samplesdir"
                      value="target/temp-rampart-bin/rampart-${rampart_version}/samples"/>
        <ant:mkdir dir="${libdir}"/>
        <ant:mkdir dir="${samplesdir}"/>

        <ant:copy toDir="target/temp-rampart-bin/rampart-${rampart_version}">
            <ant:fileset file="modules/security/target/rampart-${rampart_module_version}.mar"/>
            <ant:fileset file="modules/rahas/target/rahas-${rahas_module_version}.mar"/>
            <ant:fileset file="modules/rahas/target/rahas-${rahas_version}.zip"/>
        </ant:copy>

        <ant:copy toDir="${libdir}">
            <ant:fileset file="${maven.repo.local}/wss4j/jars/wss4j-${wss4j.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/xml-security/jars/xmlsec-${xmlsec.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/opensaml/jars/opensaml-${opensaml.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/bouncycastle/jars/bcprov-${bcprov.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/org.apache.ws.commons.axiom/jars/axiom-api-${axiom.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/org.apache.ws.commons.axiom/jars/axiom-impl-${axiom.version}.jar"/>
            <ant:fileset file="${maven.repo.local}/org.apache.ws.commons.axiom/jars/axiom-dom-${axiom.version}.jar"/>
            <ant:fileset
                    file="${maven.repo.local}/commons-codec/jars/commons-codec-${commons.codec.version}.jar"/>

            <!--copy license files -->
            <ant:copy toDir="${libdir}">
                <ant:fileset dir="legal/rampart">
                    <ant:include name="*.txt"/>
                </ant:fileset>
            </ant:copy>
            <ant:fileset file="LICENSE.txt"/>

        </ant:copy>
    
    		<!-- copy axis2-security.jar, axis2-secpolicy.jar and axis2-rahas.jar -->
        <copy file="modules/security/target/axis2-security-${axis2_version}.jar"
            tofile="${libdir}/axis2-security-${rampart_version}.jar" overwrite="true"/>
        <copy file="modules/rahas/target/axis2-rahas-${axis2_version}.jar"
            tofile="${libdir}/axis2-rahas-${rahas_version}.jar" overwrite="true"/>
        <copy file="modules/secpolicy/target/axis2-secpolicy-${axis2_version}.jar"
            tofile="${libdir}/axis2-secpolicy-${secpolicy_version}.jar" overwrite="true"/>

        <ant:copy toDir="${samplesdir}">
            <ant:fileset dir="modules/samples/security/"/>
        </ant:copy>

    		
        <ant:copy toDir="${destdir}">
            <ant:fileset dir="modules/security/release-docs"/>
        </ant:copy>

        <ant:zip file="target/dist/rampart/rampart-${rampart_version}.zip">
            <ant:fileset dir="target/temp-rampart-bin/"/>
        </ant:zip>
        <ant:delete dir="target/temp-rampart-bin"/>
    </goal>

    <!-- ================================================================ -->
    <!--- Rampart Source Distro                                           -->
    <!-- ================================================================ -->
    <goal name="rampart-dist-src">

        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Rampart Source Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <mkdir dir="target/temp-rampart-src"/>

        <ant:mkdir dir="target/temp-rampart-src/rampart-src-${rampart_version}/rampart/src"/>
        <ant:mkdir dir="target/temp-rampart-src/rampart-src-${rampart_version}/rahas/src"/>
        <ant:mkdir dir="target/temp-rampart-src/rampart-src-${rampart_version}/secpolicy/src"/>

        <ant:copy toDir="target/temp-rampart-src/rampart-src-${rampart_version}/rampart/">
            <ant:fileset dir="modules/security">
                <ant:include name="src/**"/>
                <ant:exclude name="**/target/**"/>
                <ant:exclude name="**/*class*/**"/>
                <ant:exclude name="**/.svn/**"/>
                <ant:exclude name="**/bin/**"/>
                <ant:exclude name="**/*.log"/>
                <ant:exclude name=".*"/>
                <ant:exclude name="**/*.license"/>
                <ant:exclude name="**/*.iml"/>
            </ant:fileset>
        </ant:copy>
        <ant:copy toDir="target/temp-rampart-src/rampart-src-${rampart_version}/rahas/">
            <ant:fileset dir="modules/rahas">
                <ant:include name="src/**"/>
                <ant:exclude name="**/target/**"/>
                <ant:exclude name="**/*class*/**"/>
                <ant:exclude name="**/.svn/**"/>
                <ant:exclude name="**/bin/**"/>
                <ant:exclude name="**/*.log"/>
                <ant:exclude name=".*"/>
                <ant:exclude name="**/*.license"/>
                <ant:exclude name="**/*.iml"/>
            </ant:fileset>
        </ant:copy>
        <ant:copy toDir="target/temp-rampart-src/rampart-src-${rampart_version}/secpolicy/">
            <ant:fileset dir="modules/secpolicy">
                <ant:include name="src/**"/>
                <ant:exclude name="**/target/**"/>
                <ant:exclude name="**/*class*/**"/>
                <ant:exclude name="**/.svn/**"/>
                <ant:exclude name="**/bin/**"/>
                <ant:exclude name="**/*.log"/>
                <ant:exclude name=".*"/>
                <ant:exclude name="**/*.license"/>
                <ant:exclude name="**/*.iml"/>
            </ant:fileset>
        </ant:copy>

        <!-- TODO: Create and copy release documents :release-notes.html, README.txt, LICENCE.txt -->

        <ant:zip file="target/dist/rampart/rampart-${rampart_version}-src.zip">
            <ant:fileset dir="target/temp-rampart-src/"/>
        </ant:zip>
        <ant:delete dir="target/temp-rampart-src"/>
    </goal>

	
    <!-- ================================================================ -->
    <!--- Create Rampart Java Docs -->
    <!-- ================================================================ -->
    <goal name="rampart-javadocs">
        <ant:javadoc packagenames="org.apache.rampart.*, org.apache.rahas.*,org.apache.ws.secpolicy.*"
                     defaultexcludes="yes"
                     destdir="target/dist/rampart/docs/rampart-${rampart_version}-apidocs"
                     author="true"
                     breakiterator="true"
                     version="true"
                     use="true"
                     windowtitle="Apache Rampart ${rampart_version} API">
            <ant:arg
                    line="-J-Dhttp.proxy.port=${maven.proxy.port} -J-Dhttp.proxy.host=${maven.proxy.host}"/>
            <ant:sourcepath>
                <ant:pathelement location="modules/security/src"/>
                <ant:pathelement location="modules/rahas/src"/>
                <ant:pathelement location="modules/secpolicy/src"/>
            </ant:sourcepath>
            <ant:classpath>
                <ant:fileset dir="target/lib">
                    <ant:include name="**/*.jar"/>
                </ant:fileset>
            </ant:classpath>
            <ant:link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
            <ant:link href="http://java.sun.com/webservices/docs/1.5/api/"/>
            <ant:link href="http://xerces.apache.org/xerces-j/apiDocs/"/>
            <ant:link href="http://xml.apache.org/xalan-j/apidocs/"/>
            <ant:link href="http://xmlbeans.apache.org/docs/2.1.0/reference/"/>
        </ant:javadoc>
    	
        <ant:zip file="target/dist/rampart/rampart-${rampart_version}-docs.zip">
            <ant:fileset dir="target/dist/rampart/docs"/>
        </ant:zip>
        <ant:delete dir="target/dist/rampart/docs"/>
        	
    </goal>


    <define:taglib uri="macros">
        <define:tag name="copy-deps">
            <!--
            PLEASE don't check in with these lines enabled.
            <ant:echo message="######## MODULES=${mods}"/>
            <ant:echo message="######## Copy2Dir=${copyToDir}"/>
            -->
            <j:set var="modules" value="${mods}"/>

            <!-- ######################### REACTOR INIT ##########################################-->

            <j:if test="${context.getVariable('module.types') == null}">
                <j:set var="module.types" value="modules,applications,plugins"/>
            </j:if>

            <j:set var="module.includes" value="${modules}"/>

            <j:if test="${context.getVariable('module.excludes') == null}">
                <j:set var="module.excludes" value=""/>
            </j:if>

            <u:tokenize var="types" delim=",">${module.types}</u:tokenize>

            <ant:fileScanner var="scanner">
                <ant:fileset dir="${basedir}">
                    <j:forEach var="type" items="${types}">
                        <j:choose>
                            <j:when test="${context.getVariable('module.includes') == '*'}">
                                <ant:include name="${type}/*/project.xml"/>
                            </j:when>
                            <j:otherwise>
                                <u:tokenize var="includes" delim=",">${module.includes}</u:tokenize>
                                <j:forEach var="include" items="${includes}">
                                    <u:available file="${basedir}/${type}/${include}/project.xml">
                                        <ant:include name="${type}/${include}/project.xml"/>
                                    </u:available>
                                </j:forEach>
                            </j:otherwise>
                        </j:choose>

                        <j:choose>
                            <j:when test="${context.getVariable('module.excludes') == '*'}">
                                <ant:exclude name="${type}/*/project.xml"/>
                            </j:when>
                            <j:otherwise>
                                <u:tokenize var="excludes" delim=",">${module.excludes}</u:tokenize>
                                <j:forEach var="exclude" items="${excludes}">
                                    <u:available file="${basedir}/${type}/${exclude}/project.xml">
                                        <ant:exclude name="${type}/${exclude}/project.xml"/>
                                    </u:available>
                                </j:forEach>
                            </j:otherwise>
                        </j:choose>
                    </j:forEach>
                </ant:fileset>
            </ant:fileScanner>

            <j:set var="modules.reactor.includes" value=""/>

            <!-- Setup the includes which will be used by the reactor -->
            <j:forEach var="file" items="${scanner.iterator()}">
                <j:set var="directory"
                       value="${file.parentFile.parentFile.name}/${file.parentFile.name}"/>
                <j:set var="filename" value="${directory}/${file.name}"/>
                <j:choose>
                    <j:when test="${context.getVariable('modules.reactor.includes') == null}">
                        <j:set var="modules.directories" value="${directory}"/>
                        <j:set var="modules.reactor.includes" value="${filename}"/>
                    </j:when>
                    <j:otherwise>
                        <j:set var="modules.directories"
                               value="${modules.directories},${directory}"/>
                        <j:set var="modules.reactor.includes"
                               value="${modules.reactor.includes},${filename}"/>
                    </j:otherwise>
                </j:choose>
            </j:forEach>
            <!-- #################### END OF REACTOR INIT #######################################-->

            <ant:echo message="Fetching Dependencies for modules: ${modules.reactor.includes}"/>
            <maven:reactor
                    basedir="${basedir}"
                    postProcessing="true"
                    includes="${modules.reactor.includes}"
                    banner="Executing (${goals}):"
                    ignoreFailures="false"/>
            <j:forEach var="x" items="${reactorProjects}">
                <ant:echo message="Copying ${x} to ${copyToDir}"/>
                <deploy:copy-deps todir="${copyToDir}"
                                  projectDescriptor="${x.getFile()}"/>
            </j:forEach>
            <property name="modules" value="*"/>
        </define:tag>
        <define:tag name="copy-release-docs">

            <filter token="axisVersion" value="${pom.currentVersion}"/>
            <filter token="TODAY" value="${TODAY}"/>

            <ant:copy toFile="${toDir}/README.txt" filtering="on">
                <ant:fileset file="${readmeFile}"/>
            </ant:copy>
            <ant:copy toFile="${toDir}/release-notes.html" filtering="on">
                <ant:fileset file="release-notes.html"/>
            </ant:copy>
            <ant:copy toFile="${toDir}/LICENSE.txt" filtering="on">
                <ant:fileset file="LICENSE.txt"/>
            </ant:copy>
        </define:tag>
    </define:taglib>

</project>

