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

     https://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>
