<?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"/>
        <attainGoal name="clean-repo"/>
    </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">
        <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>
        </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/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/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="jar">

        <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-dist-doc"/> -->
    </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="moddir"
                      value="target/temp-rampart-bin/rampart-${rampart_version}/modules"/>
        <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="${moddir}"/>
        <ant:mkdir dir="${libdir}"/>
        <ant:mkdir dir="${samplesdir}"/>

        <ant:copy toDir="${moddir}">
            <ant:fileset file="modules/security/target/rampart-${rampart_version}.mar"/>
            <ant:fileset file="modules/rahas/target/rahas-${rahas_version}.mar"/>
            <ant:fileset file="modules/rahas/target/rahas-${rahas_version}.aar"/>
        </ant:copy>

        <ant:copy toDir="${libdir}">
            <ant:fileset file="modules/security/target/axis2-security-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/rahas/target/axis2-rahas-${pom.currentVersion}.jar"/>
            <ant:fileset file="modules/secpolicy/target/axis2-secpolicy-${pom.currentVersion}.jar"/>
            <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}/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>

        <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>

    <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>

