<?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
     |
     | war
     |    Build the war
     |
     | maven war-withsamples
     |    build the war with the default samples
     |
     | release
     |      Creates the complete release
   -->

<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="axis/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">
        <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"/>

        <!-- 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 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-min-bin,dist-min-src,dist-std-bin,dist-std-src,dist-war,dist-docs">
        <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="min_dep_cache" value="target/temp/cache/min"/>
        <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-min-bin" prereqs="init-dist,cache-min-deps">
        <ant:echo>+----------------------------------------------</ant:echo>
        <ant:echo>| Creating: Axis2 Minimal Binary Distribution</ant:echo>
        <ant:echo>+----------------------------------------------</ant:echo>

        <ant:mkdir dir="target/dist"/>
        <ant:mkdir dir="target/temp/min/bin/lib"/>

        <!-- Copy the 3rd party libs -->
        <ant:copy toDir="target/temp/min/bin/lib">
            <ant:fileset dir="${min_dep_cache}"/>
        </ant:copy>

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


        <!--copy NOTICE.txt file-->
        <ant:copy toFile="target/temp/min/bin/NOTICE.txt">
            <ant:fileset file="NOTICE.txt"/>
        </ant:copy>

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

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

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

 <!-- Copy the adb  codegen jar -->
        <ant:copy toDir="target/temp/min/bin/lib">
            <ant:fileset file="modules/adb-codegen/target/axis2-adb-codegen-${pom.currentVersion}.jar"/>
        </ant:copy>
        
        <!-- Copy the release documents -->
        <macros:copy-release-docs toDir="target/temp/min/bin"
                                  readmeFile="release-docs/readme-files/README-min-bin.txt"/>

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

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

        <ant:mkdir dir="target/dist"/>
        <ant:mkdir dir="target/temp/min/src"/>

        <ant:copy toDir="target/temp/min/src">
            <ant:fileset dir=".">
                <ant:include name="**/etc/**"/>
                <ant:include name="**/modules/java2wsdl/**"/>
                <ant:include name="**/modules/kernel/**"/>
                <ant:include name="**/modules/adb/**"/>
                <ant:exclude name="**/SameServiceAddingTest.java"/>
                <!-- TODO: This is failing in the distros. Must Fix it. -->
                <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/min/src/etc" overwrite="true" filtering="on">
            <ant:fileset dir="release-docs/release-etc/min"/>
        </ant:copy>

        <!-- Copy the master maven files for the minimal src distro -->
        <ant:copy toFile="target/temp/min/src/maven.xml">
            <ant:fileset file="release-docs/maven-scripts/maven-min.xml"/>
        </ant:copy>
        <ant:copy toDir="target/temp/min/src">
            <ant:fileset file="project.xml"/>
        </ant:copy>

        <!-- Copy the release documents -->
        <macros:copy-release-docs toDir="target/temp/min/src"
                                  readmeFile="release-docs/readme-files/README-min-src.txt"/>

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

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

        <ant:property name="std.bin.temp.dir" value="target/temp/std/bin"/>

        <ant:mkdir dir="${std.bin.temp.dir}/lib"/>
        <ant:mkdir dir="${std.bin.temp.dir}/bin"/>
        <ant:mkdir dir="${std.bin.temp.dir}/modules"/>
        <ant:mkdir dir="${std.bin.temp.dir}/samples"/>

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


        <!--copy NOTICE.txt file-->
        <ant:copy toFile="${std.bin.temp.dir}/NOTICE.txt" filtering="on">
            <ant:fileset file="NOTICE.txt"/>
        </ant:copy>

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


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

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

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

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

        <!-- Copy the tools jar -->
        <ant:copy toDir="${std.bin.temp.dir}/lib">
            <ant:fileset file="modules/tool/target/axis2-tools-${pom.currentVersion}.jar"/>
        </ant:copy>

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

        <!-- Copy the samples -->
        <ant:copy todir="${std.bin.temp.dir}/samples">
            <ant:fileset dir="modules/samples/target/samples"/>
        </ant:copy>
        <ant:copy todir="${std.bin.temp.dir}/samples/userguide">
            <ant:fileset file="${std.bin.temp.dir}/samples/groovyService.aar"/>
        </ant:copy>
        <ant:delete file="${std.bin.temp.dir}/samples/groovyService.aar"/>

        <!-- 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-std-${pom.currentVersion}-bin.zip"
                 basedir="${std.bin.temp.dir}"/>
        <ant:delete dir="${std.bin.temp.dir}"/>
    </goal>

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

        <ant:property name="std.src.temp.dir" value="target/temp/std/src"/>

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

        <ant:copy toDir="${std.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/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/samples/**"/>
                <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="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="${std.src.temp.dir}/etc" overwrite="true" filtering="on">
            <ant:fileset dir="release-docs/release-etc/std"/>
        </ant:copy>

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

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

        <ant:zip file="${dist.dir}/axis2-std-${pom.currentVersion}-src.zip">
            <ant:fileset dir="${std.src.temp.dir}"/>
        </ant:zip>
        <ant:delete dir="${std.src.temp.dir}"/>
    </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:mkdir dir="target/temp/docs/xdocs"/>
        <ant:mkdir dir="target/temp/docs/javadocs"/>

        <ant:copy toDir="target/temp/docs/xdocs">
            <ant:fileset dir="xdocs"/>
        </ant:copy>

        <!-- Delete 0.93 docs -->
        <ant:delete dir="target/temp/docs/xdocs/0_93"/>


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

        <macros:copy-release-docs toDir="target/temp/docs"
                                  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-min-deps" prereqs="init-dist">
        <ant:mkdir dir="${min_dep_cache}"/>
        <j:if test="${minDeps.uptodate != 'yes'}">
            <macros:copy-deps copyToDir="${min_dep_cache}"
                              mods="kernel,adb,java2wsdl"/>
            <property name="minDeps.uptodate" value="yes"/>
        </j:if>

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

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

    <goal name="cache-std-deps" prereqs="init-dist,cache-min-deps">
        <ant:mkdir dir="${std_dep_cache}"/>
        <j:if test="${stdDeps.uptodate != 'yes'}">
            <macros:copy-deps copyToDir="${std_dep_cache}"
                              mods="codegen"/>
            <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"/>
            <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/min">
                <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="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/addressing/src"/>
                <ant:pathelement location="modules/codegen/src"/>
                <ant:pathelement location="modules/xmlbeans/src"/>
                <ant:pathelement location="modules/java2wsdl/src"/>
                <ant:pathelement location="modules/kernel/src"/>
                <ant:pathelement location="modules/jaxws/src"/>
                <ant:pathelement location="modules/jibx/src"/>
                <ant:pathelement location="modules/jaxbri/src"/>
                <ant:pathelement location="modules/saaj/src"/>
                <ant:pathelement location="modules/security/src"/>
                <ant:pathelement location="modules/spring/src"/>
                <ant:pathelement location="modules/soapmonitor/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>

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

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

