<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright 2005 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.
-->
<project default="help"
    xmlns:j="jelly:core"
    xmlns:ant="jelly:ant"
    xmlns:maven="jelly:maven"
    xmlns:u="jelly:util"
    >

    <!-- ==================== -->
    <!-- Default Global Goals -->
    <!-- ==================== -->

    <goal name="help">
        <echo>Custom goals for this project are:</echo>
        <echo>  jdo11.build   - builds all JDO1 projects</echo>
        <echo>  jdo11.default - calls the default goal for all JDO1 projects</echo>
        <echo>  jdo11.clean   - cleans all JDO1 projects</echo>
        <echo>  jdo20.build   - builds all JDO2 projects</echo>
        <echo>  jdo20.default - calls the default goal for  all JDO2 projects</echo>
        <echo>  jdo20.clean   - cleans all JDO2 projects</echo>
        <echo>  tck20.build   - builds tck20 and dependent JDO2 projects</echo>
        <echo>  tck20.default - calls the default goal for tck20 and dependent JDO2 projects</echo>
        <echo>  tck20.clean   - cleans tck20 and dependent JDO2 projects</echo>
        <echo>  tck20.dist    - creates distributions of tck20 and dependent JDO2 projects</echo>
        <echo>  fostore20.clean   - cleans fostore20 and dependencies</echo>
        <echo>  fostore20.build   - builds fostore20 and dependencies</echo>
        <echo>  fostore20.default - calls the default goal for fostore20 and dependencies</echo>
        <echo>Please check README.txt for more details.</echo>
    </goal>

    <!-- ========== -->
    <!-- JDO1 Goals -->
    <!-- ========== -->

    <goal name="jdo11.build" 
          description="Builds all JDO1 projects">
        <j:set var="maven.multiproject.includes">${jdo11.projects}</j:set>
        <j:set var="goal">build</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="jdo11.default" 
          description="Calls the default goal for all JDO1 projects">
        <j:set var="maven.multiproject.includes">${jdo11.projects}</j:set>
        <j:set var="goal">default</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="jdo11.clean" 
          description="Cleans all JDO1 projects">
        <j:set var="maven.multiproject.includes">${jdo11.projects}</j:set>
        <attainGoal name="multiproject:clean"/>
    </goal>

    <!-- ========== -->
    <!-- JDO2 Goals -->
    <!-- ========== -->

    <goal name="jdo20.build"
          description="Builds all JDO2 projects">
        <j:set var="maven.multiproject.includes">${jdo20.projects}</j:set>
        <j:set var="goal">build</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="jdo20.default"
          description="Calls the default goal for all JDO2 projects">
        <j:set var="maven.multiproject.includes">${jdo20.projects}</j:set>
        <j:set var="goal">default</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="jdo20.clean"
          description="Cleans all JDO2 projects">
        <j:set var="maven.multiproject.includes">${jdo20.projects}</j:set>
        <attainGoal name="multiproject:clean"/>
    </goal>

    <goal name="tck20.build"
          description="Builds tck20 and dependent JDO2 projects">
        <j:set var="maven.multiproject.includes">${tck20.projects}</j:set>
        <j:set var="goal">build</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="tck20.default"
          description="Calls the default goal for tck20 and dependent JDO2 projects">
        <j:set var="maven.multiproject.includes">${tck20.projects}</j:set>
        <j:set var="goal">default</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="tck20.clean"
          description="Cleans tck20 and dependent JDO2 projects">
        <j:set var="maven.multiproject.includes">${tck20.projects}</j:set>
        <attainGoal name="multiproject:clean"/>
    </goal>

    <goal name="tck20.dist"
          description="Creates distributions of tck20 and dependent JDO2 projects">
        <j:set var="maven.multiproject.includes">${tck20.projects}</j:set>
        <j:set var="goal">dist</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal> 

    <goal name="fostore20.build"
      description="Builds fostore20 and dependencies">
        <j:set var="maven.multiproject.includes">${fostore20.projects}</j:set>
        <j:set var="goal">build</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="fostore20.default"
      description="Calls the default goal for fostore20 and dependencies">
        <j:set var="maven.multiproject.includes">${fostore20.projects}</j:set>
        <j:set var="goal">default</j:set>
        <attainGoal name="multiproject:goal"/>
    </goal>

    <goal name="fostore20.clean"
    description="Cleans fostore20 and dependencies">
        <j:set var="maven.multiproject.includes">${fostore20.projects}</j:set>
        <attainGoal name="multiproject:clean"/>
    </goal>
  

    <!-- ==== -->
    <!-- Misc -->
    <!-- ==== -->

    <goal name="multiproject:clean">
        <attainGoal name="multiproject:projects-init"/>
        <maven:reactor
            basedir="${maven.multiproject.basedir}"
            banner="Gathering project list"
            includes="${maven.multiproject.includes}"
            excludes="${maven.multiproject.excludes}"
            postProcessing="true"
            ignoreFailures="${maven.multiproject.ignoreFailures}"
            collectionVar="reactorProjects"
            collectOnly="true" />
        <j:forEach var="reactorProject" items="${reactorProjects}">
            <j:set var="_clean_dir">${reactorProject.context.getVariable("maven.build.dest")}</j:set>
            <ant:delete dir="${_clean_dir}" failonerror="false" />
            <j:set var="_clean_dir">${reactorProject.context.getVariable("maven.build.dir")}</j:set>
            <ant:delete dir="${_clean_dir}" failonerror="false" />
            <j:set var="_basedir">${reactorProject.context.getVariable("basedir")}</j:set>
            <ant:delete file="${_basedir}/velocity.log" quiet="true" failonerror="false" />
            <ant:delete file="${_basedir}/velocity.log.1" quiet="true" failonerror="false" />
            <ant:delete file="${_basedir}/jcoverage.ser" quiet="true" failonerror="false" />
        </j:forEach>
    </goal>

    <!-- ==================== -->
    <!-- Distribution support -->
    <!-- ==================== -->

    <preGoal name="dist:build-src">
        <echo>Copying top-level project.xml, project.properties, and README.txt to ${maven.dist.src.archive.dir}</echo>
        <copy toDir="${maven.dist.src.archive.dir}">
             <fileset dir="${basedir}/..">
                 <include name="project.properties"/>
                 <include name="project.xml"/>
                 <include name="README.txt"/>
             </fileset>
        </copy>
        <echo>Creating ${maven.dist.src.archive.dir}/lib/ext</echo>
        <mkdir dir="${maven.dist.src.archive.dir}/lib/ext"/>
    </preGoal>

    <postGoal name="dist">
        <attainGoal name="copy-release-artifacts"/>
    </postGoal>

    <goal name="copy-release-artifacts">
        <attainGoal name="copy-distribution"/>
        <attainGoal name="copy-dependency-artifacts"/>
    </goal>

    <goal name="copy-dependency-artifacts">
        <mkdir dir="${jdo.releases.dist.dir}/java-repository/${pom.groupId}/jars"/>
        <mkdir dir="${jdo.releases.dist.dir}/java-repository/${pom.groupId}/poms"/>

        <!-- Copy the artifacts for the remote repository -->
        <copy file="${maven.build.dir}/${maven.final.name}.jar" 
              todir="${jdo.releases.dist.dir}/java-repository/${pom.groupId}/jars"/>
        <copy file="project.xml" 
              toFile="${jdo.releases.dist.dir}/java-repository/${pom.groupId}/poms/${maven.final.name}.pom" />
    </goal>

    <goal name="copy-distribution">
        <mkdir dir="${jdo.releases.dist.dir}/db/jdo/${pom.currentVersion}"/>
         <!-- Copy distributions -->
        <copy todir="${jdo.releases.dist.dir}/db/jdo/${pom.currentVersion}">
            <fileset dir="${maven.build.dir}/distributions"/>
        </copy>
    </goal>

</project>
