<?xml version="1.0">
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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 name="all" default="publish" xmlns:ivy="antlib:org.apache.ivy.ant">
  <property name="common.dir" value="${basedir}/common" />
  <import file="${common.dir}/common.xml"/>

  <fileset id="projects" dir="projects" includes="**/build.xml"/>

  <path id="unordered-list">
    <fileset refid="projects"/>
  </path>

  <target name="buildlist" depends="load-ivy"> 
    <ivy:buildlist reference="ordered-list">
      <fileset refid="projects"/>
    </ivy:buildlist>
  </target>
  
  <target name="publish" depends="buildlist" 
	description="compile, jar and publish all projects in the right order">
    <subant target="publish" buildpathref="ordered-list">
      <propertyset>
	<propertyref name="ivy.loaded" />
      </propertyset>
    </subant>
  </target>

  <target name="clean" description="clean all projects">
    <subant target="clean" buildpathref="unordered-list" />
  </target>
  
  <target name="fullclean" depends="clean, load-ivy" 
  description="clean tutorial: delete repository, ivy cache, and all projects">
    <delete dir="repository"/>
  	<ivy:cleancache />
  </target>

  <target name="order" depends="buildlist"
      description="test buildlist order">
    <subant target="hello" buildpathref="ordered-list" />
  </target>

</project>
