<!--
   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="retrieve-ivy-deps" default="retrieve-all"
		xmlns:ivy="antlib:org.apache.ivy.ant">

	<target name="init-ivy">
		<taskdef resource="org/apache/ivy/ant/antlib.xml"
				uri="antlib:org.apache.ivy.ant"
				classpath="ivy.jar"/>
	</target>

	<target name="report">
		<ivy:report graph="false" todir="report"/>
		<echo>
=======================================================================
Dependencies retrieved in lib directory
Dependency report generated in report directory
=======================================================================
		</echo>
	</target>

	<target name="retrieve-conf" depends="init-ivy"
			description="--> Retrieves a set of configuration (get only dependencies needed).">
		<ivy:info file="ivy.xml"/>
		<echo>
=======================================================================
Please enter configuration (or comma separated list of configurations).
Available configurations are: ${ivy.configurations}</echo>
		<input message="Configuration(s):" addproperty="ivy.confs"/>
		<ivy:retrieve conf="${ivy.confs}"/>
		<antcall target="report" inheritRefs="true"/>
	</target>

	<target name="retrieve-all" depends="init-ivy"
			description="--> Retrieves all Ivy dependencies into the lib directory">
		<ivy:retrieve/>
		<antcall target="report" inheritRefs="true"/>
	</target>
</project>
