<!--
   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="IvyRelease" default="snapshot" 
		xmlns:ivy="antlib:org.apache.ivy.ant"
        xmlns:ivy2="antlib:org.apache.ivy.ant_2"
		xmlns:xooki="antlib:xooki"
		xmlns:openpgp="antlib:org.apache.commons.openpgp.ant">
	<import file="build.xml"/>
	
	<macrodef name="run-tutorial">
		<attribute name="antfile" />
		<attribute name="output" />
		<attribute name="target" default="" />
		<attribute name="failonerror" default="true" />
		<sequential>
			<echo>Running @{antfile} @{target} > @{output}</echo>
			
            <local name="antfile.dir" />
            <dirname property="antfile.dir" file="@{antfile}" />
			
			<local name="antfile.name" />
			<basename property="antfile.name" file="@{antfile}" />

			<echo file="@{output}">[ivy@apache:${antfile.dir}]$ ant -f ${antfile.name} @{target}${line.separator}</echo>
	        <java classname="org.apache.tools.ant.launch.Launcher"
	              fork="true"
	              failonerror="@{failonerror}"
	        	  logerror="true"
	        	  append="true"
	              output="@{output}">
	            <classpath>
	                <fileset file="${artifacts.build.dir}/jars/${final.name}" />
	                
	                <!-- 
	                  We need to set the classpath like this, otherwise the invoked
	                  build scripts are not capable of compiling sources ???
	                  -->
	                <path path="${java.class.path}" />
	            </classpath>
	        	<sysproperty key="ivy.cache.dir" value="${tutorial.cache}" />
	        	<sysproperty key="ivy.local.default.root" value="${tutorial.local-repo}" />
                <sysproperty key="ivy.cache.ttl.default" value="1s" />
	        	<sysproperty key="skip.download" value="true" />
	            <arg line="-f @{antfile}" />
	        	<arg line="@{target}" />
	        </java>
		</sequential>
	</macrodef>
	
	<target name="generate-tutorial-output" depends="jar, generate-doc-init">
        <property name="output.dir" value="${build.dir}/output" />
		<delete dir="${output.dir}" />
        <mkdir dir="${output.dir}" />
		
		<!-- create a copy of the tutorials so we can easily get rid of the generated files -->
		<property name="tutorial.src.dir" value="${build.dir}/examples" />
		<delete dir="${tutorial.src.dir}" />
		<mkdir dir="${tutorial.src.dir}" />
		<copy todir="${tutorial.src.dir}">
			<fileset dir="src/example" />
		</copy>
		
		<!-- create a cache and local-repository for the tutorials -->
		<property name="tutorial.build.dir" value="${build.dir}/tutorial" />
		<property name="tutorial.cache" value="${tutorial.build.dir}/cache" />
		<property name="tutorial.local-repo" value="${tutorial.build.dir}/local" />
		
		<!-- go-ivy : not logged, but run in order to check if it still run -->
		<run-tutorial antfile="${tutorial.src.dir}/go-ivy/build.xml" output="${output.dir}/dummy.txt" />
        <delete file="${output.dir}/dummy.txt" />
        <delete dir="${tutorial.build.dir}" />
        
        <!-- hello-ivy : Quick Start - start.html -->
        <run-tutorial antfile="${tutorial.src.dir}/hello-ivy/build.xml" output="${output.dir}/hello-ivy-1.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/hello-ivy/build.xml" output="${output.dir}/hello-ivy-2.txt" />
        <delete dir="${tutorial.build.dir}" />
		
		<!-- multiple resolvers - multiple.html -->
        <run-tutorial antfile="${tutorial.src.dir}/chained-resolvers/chainedresolvers-project/build.xml" output="${output.dir}/chained-resolvers.txt" />
        <delete dir="${tutorial.build.dir}" />

		<!-- dual - dual.html -->
        <run-tutorial antfile="${tutorial.src.dir}/dual/project/build.xml" output="${output.dir}/dual.txt" />
        <delete dir="${tutorial.build.dir}" />

		<!-- Project dependencies - multi-project.html -->
        <run-tutorial antfile="${tutorial.src.dir}/dependence/dependee/build.xml" target="publish" output="${output.dir}/dependence-standalone.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/dependence/depender/build.xml" output="${output.dir}/dependence-depending.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/dependence/dependee/build.xml" target="publish" output="${output.dir}/dependence-standalone-2.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/dependence/depender/build.xml" output="${output.dir}/dependence-depending-2.txt" />
        <delete dir="${tutorial.build.dir}" />

		<!-- configuration - Using Ivy Configuration - conf.html -->
        <run-tutorial antfile="${tutorial.src.dir}/configurations/multi-projects/filter-framework/build.xml" output="${output.dir}/configurations-lib.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/configurations/multi-projects/myapp/build.xml" output="${output.dir}/configurations-runcc.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/configurations/multi-projects/myapp/build.xml" target="run-hm" output="${output.dir}/configurations-runhm.txt" />
        <delete dir="${tutorial.build.dir}" />
		
		<!--Building a repository - basic.html -->
        <run-tutorial antfile="${tutorial.src.dir}/build-a-ivy-repository/build.xml" target="maven2" output="${output.dir}/install.txt" />
        <pathconvert property="myrepository.content" pathsep="${line.separator}">
            <fileset dir="${tutorial.src.dir}/build-a-ivy-repository/myrepository/no-namespace" />
        </pathconvert>
        <echo file="${output.dir}/myrepository-content.txt">[ivy@apache:/]$ find ${tutorial.src.dir}/build-a-ivy-repository/myrepository/no-namespace -type f -print${line.separator}</echo>
        <echo file="${output.dir}/myrepository-content.txt" append="true">${myrepository.content}</echo>
        <delete dir="${tutorial.build.dir}" />
        <run-tutorial antfile="${tutorial.src.dir}/build-a-ivy-repository/build.xml" target="maven2-deps" output="${output.dir}/install-deps.txt" failonerror="false" />
        <pathconvert property="myrepository.content.deps" pathsep="${line.separator}">
            <fileset dir="${tutorial.src.dir}/build-a-ivy-repository/myrepository/no-namespace/org.hibernate/hibernate" />
        </pathconvert>
        <echo file="${output.dir}/myrepository-content-deps.txt">[ivy@apache:/]$ find ${tutorial.src.dir}/build-a-ivy-repository/myrepository/no-namespace/org.hibernate/hibernate -type f -print${line.separator}</echo>
        <echo file="${output.dir}/myrepository-content-deps.txt" append="true">${myrepository.content.deps}</echo>
        <delete dir="${tutorial.build.dir}" />

	    <!--Building a repository - advanced.html -->
        <run-tutorial antfile="${tutorial.src.dir}/build-a-ivy-repository/build.xml" target="maven2-namespace" output="${output.dir}/install-namespace.txt" />
        <pathconvert property="myrepository.content.namespace" pathsep="${line.separator}">
            <fileset dir="${tutorial.src.dir}/build-a-ivy-repository/myrepository/advanced" />
        </pathconvert>
		<echo file="${output.dir}/myrepository-content-namespace.txt">$ find ${tutorial.src.dir}/build-a-ivy-repository/myrepository/advanced -type f -print${line.separator}</echo>
        <echo file="${output.dir}/myrepository-content-namespace.txt" append="true">${myrepository.content.namespace}</echo>
        <delete dir="${tutorial.build.dir}" />
		
		<!-- multi-project - multiproject.html -->
        <run-tutorial antfile="${tutorial.src.dir}/multi-project/build.xml" target="-p" output="${output.dir}/multi-project-general-antp.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/multi-project/projects/find/build.xml" target="-p" output="${output.dir}/multi-project-find-antp.txt" />
        <run-tutorial antfile="${tutorial.src.dir}/multi-project/build.xml" target="publish-all" output="${output.dir}/multi-project-general-publishall.txt" />
        <delete dir="${tutorial.build.dir}" />

		<!-- Correct the location of the examples to a dummy '/ivy' location -->
		<pathconvert property="tutorial.root" dirsep="/">
			<identitymapper/>
			<path location="${tutorial.src.dir}"/>
	    </pathconvert>
        <pathconvert property="tutorial.local" dirsep="/">
            <identitymapper/>
            <path location="${tutorial.local-repo}"/>
        </pathconvert>
        <pathconvert property="ivy.jar.location" dirsep="/">
            <identitymapper/>
            <fileset file="${artifacts.build.dir}/jars/${final.name}" />
        </pathconvert>

        <replace dir="${output.dir}" token="\" value="/" />
		<replace dir="${output.dir}" token="${tutorial.root}" value="/ivy" />
        <replace dir="${output.dir}" token="${tutorial.local}" value="/home/ivy/.ivy2/local" />
        <replace dir="${output.dir}" token="${ivy.jar.location}" value="//home/ivy/ivy.jar" />
		<replace dir="${output.dir}" token="-f build.xml " value="" />
		<replace dir="${output.dir}" token="${ivy.revision}" value="working@apache" />
		
		<copy todir="${doc.tmp.dir}/tutorial/log">
			<fileset dir="${output.dir}" />
		</copy>
	</target>
	
	<target name="generate-doc-init" depends="release-version">
        <!-- copy documentation to temp dir to replace version tokens -->
        <property name="doc.tmp.dir" value="${build.dir}/tempdoc" />
        <mkdir dir="${doc.tmp.dir}" />
        <copy todir="${doc.tmp.dir}" preservelastmodified="true" overwrite="true">
            <fileset dir="${doc.src.dir}" />
            <filterset>
              <filter token="version" value="${build.version}"/>
            </filterset>
        </copy>     
	</target>
	
	<target name="generate-doc" depends="generate-doc-init, generate-tutorial-output">
        <copy todir="${doc.build.dir}">
            <fileset dir="${doc.src.dir}" includes="images/**,style/**,samples/**,js/**,ivy.xsd" />
            <fileset dir="${doc.tmp.dir}" includes="tutorial/log/multi-project-general-publishall.txt" />
        </copy>

        <!-- requires java 6 jdk in path and Apache Ant 1.7 -->
        <taskdef uri="antlib:xooki" file="${doc.src.dir}/xooki/antlib.xml" />
        <xooki:generate destDir="${doc.build.dir}" checkUpToDate="true" xookidir="${doc.src.dir}/xooki">
            <fileset dir="${doc.tmp.dir}">
                <include name="**/*.html"/>
                <exclude name="template.html"/>
                <exclude name="*Template.html"/>
                <exclude name="conflict-solving-algo.html"/>
                <exclude name="use.html"/>
                <exclude name="samples/**"/>
                <exclude name="js/**"/>
                <exclude name="reports/**"/>
                <exclude name="xooki/**"/>
            </fileset>
        </xooki:generate>

        <!-- generate print-friendly doc -->
        <!-- modify the basedir because othwise xooki.js will not be found! --> 
        <ant antfile="../build-release.xml" target="generate-print-doc" dir="doc" />
	</target>
		
	<target name="generate-print-doc">
        <!-- requires java 6 jdk in path and Apache Ant 1.7 -->
        <taskdef uri="antlib:xooki" file="${doc.src.dir}/xooki/antlib.xml" />
        <xooki:print src="${doc.tmp.dir}/index.html" 
                     dest="${doc.build.dir}/book.html"
                     xookidir="${doc.src.dir}/xooki" />
	</target>

	<target name="all-doc" depends="javadoc, generate-doc" />
	
	<target name="init-snapshot" depends="default-version">
		<property name="snapshot.full.name" value="apache-ivy-${build.version}" />
	</target>

	<target name="snapshot-metadata" depends="init-snapshot, resolve">
		<mkdir dir="${artifacts.build.dir}"/>
		<ivy:deliver 
			deliverpattern="${artifacts.build.dir}/ivy.xml" 
			pubrevision="${build.version}" 
			pubdate="${pubdate}"
		    status="${status}"/>
	</target>
	
	<target name="snapshot-src" depends="init-snapshot">
	    <delete dir="${build.dir}/snapshot-src" failonerror="false" />
	    <exec executable="git" failonerror="true">
	        <arg line="clone ${basedir} ${build.dir}/snapshot-src" />
	    </exec>
	    <exec dir="${build.dir}/snapshot-src" executable="git" failonerror="true">
	        <arg line="clean -d -x -f" />
	    </exec>
		<mkdir dir="${distrib.dir}/dist/${build.version}"/>
		<zip destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-src.zip">
			<zipfileset dir="${build.dir}/snapshot-src" prefix="${snapshot.full.name}" />
		</zip>
		<tar destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-src.tar.gz" 
			compression="gzip" longfile="gnu">
			<zipfileset src="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-src.zip"/>
		</tar>
	</target>
	
	<target name="snapshot-bin-without-dependencies" depends="snapshot-metadata, jar, all-doc">
		<mkdir dir="${distrib.dir}/dist/${build.version}"/>
		<zip destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin.zip">
			<zipfileset dir="${doc.build.dir}" prefix="${snapshot.full.name}/doc" excludes="**/reports/coverage/**,**/reports/test/**"/>
			<zipfileset dir="${basedir}/src/example" prefix="${snapshot.full.name}/src/example"/>
			<zipfileset dir="${basedir}" includes="NOTICE" fullpath="${snapshot.full.name}/NOTICE"/>
			<zipfileset dir="${basedir}" includes="README" prefix="${snapshot.full.name}"/>
			<zipfileset dir="${basedir}" includes="LICENSE*" prefix="${snapshot.full.name}"/>
			<zipfileset dir="${basedir}" includes="CHANGES.txt" fullpath="${snapshot.full.name}/CHANGES.txt"/>
			<zipfileset dir="${basedir}" includes="RELEASE_NOTES" fullpath="${snapshot.full.name}/RELEASE_NOTES"/>
			<zipfileset dir="${src.dir}/org/apache/ivy/plugins/parser/xml" includes="ivy.xsd" fullpath="${snapshot.full.name}/ivy.xsd"/>
			<zipfileset dir="${artifacts.build.dir}" includes="ivy.xml" fullpath="${snapshot.full.name}/ivy.xml"/>
			<zipfileset dir="${basedir}" includes="build-for-bin-distrib.xml" fullpath="${snapshot.full.name}/build.xml"/>

			<zipfileset dir="${artifacts.build.dir}/jars" includes="${final.name}" fullpath="${snapshot.full.name}/ivy-${build.version}.jar"/>
		</zip>
		<tar destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin.tar.gz" 
			compression="gzip" longfile="gnu">
			<zipfileset src="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin.zip"/>
		</tar>
	</target>

	<target name="snapshot-bin-with-dependencies" depends="snapshot-metadata, jar, all-doc">
		<mkdir dir="${distrib.dir}/dist/${build.version}"/>
		<delete dir="${build.dir}/lib" />
		<ivy:retrieve conf="default" pattern="${build.dir}/lib/[artifact]-[revision].[ext]" />
		<zip destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin-with-deps.zip">
			<zipfileset dir="${doc.build.dir}" prefix="${snapshot.full.name}/doc" excludes="**/reports/coverage/**,**/reports/test/**"/>
			<zipfileset dir="${basedir}/src/example" prefix="${snapshot.full.name}/src/example"/>
			<zipfileset dir="${basedir}" includes="NOTICE" fullpath="${snapshot.full.name}/NOTICE"/>
			<zipfileset dir="${basedir}" includes="README" prefix="${snapshot.full.name}"/>
			<zipfileset dir="${basedir}" includes="LICENSE*" prefix="${snapshot.full.name}"/>
			<zipfileset dir="${basedir}" includes="CHANGES.txt" fullpath="${snapshot.full.name}/CHANGES.txt"/>
			<zipfileset dir="${basedir}" includes="RELEASE_NOTES" fullpath="${snapshot.full.name}/RELEASE_NOTES"/>
			<zipfileset dir="${src.dir}/org/apache/ivy/plugins/parser/xml" includes="ivy.xsd" fullpath="${snapshot.full.name}/ivy.xsd"/>
			<zipfileset dir="${artifacts.build.dir}" includes="ivy.xml" fullpath="${snapshot.full.name}/ivy.xml"/>
	
			<zipfileset dir="${artifacts.build.dir}/jars" includes="${final.name}" fullpath="${snapshot.full.name}/ivy-${build.version}.jar"/>

			<zipfileset dir="${build.dir}/lib" prefix="${snapshot.full.name}/lib" excludes="ant-*.jar,bcpg-*.jar,bcprov*.jar" />
		</zip>
		<tar destfile="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin-with-deps.tar.gz" 
			compression="gzip" longfile="gnu">
			<zipfileset src="${distrib.dir}/dist/${build.version}/${snapshot.full.name}-bin-with-deps.zip"/>
		</tar>
	</target>

	<target name="snapshot-bin" 
			depends="snapshot-bin-with-dependencies, snapshot-bin-without-dependencies" />
	
	<target name="release-xsd" depends="init-snapshot">
		<!-- copies current ivy xml schema to doc source, so that it will be available from web site -->
		<copy file="${src.dir}/org/apache/ivy/plugins/parser/xml/ivy.xsd" todir="${doc.src.dir}" />
	</target>
	

	<target name="snapshot-maven2" depends="init-snapshot, snapshot-metadata, jar, sources, javadoc">
		<property name="m2.distrib.dir" value="${distrib.dir}/maven2/${build.version}" />
		<ivy:makepom ivyfile="${artifacts.build.dir}/ivy.xml" 
	                 pomfile="${m2.distrib.dir}/ivy-${build.version}.pom"
			         templatefile="${basedir}/src/etc/makepom/pom.template">
			<mapping conf="core" scope="compile"/>
			<mapping conf="test" scope="test"/>
		</ivy:makepom>
		<copy file="${artifacts.build.dir}/jars/${final.name}" 
				tofile="${m2.distrib.dir}/ivy-${build.version}.jar" />
		<!-- jar javadocs -->
	    <jar destfile="${m2.distrib.dir}/ivy-${build.version}-javadoc.jar">
	        <fileset dir="${javadoc.build.dir}" />
	    </jar>
		<!-- copy sources jar -->
		<copy file="${artifacts.build.dir}/sources/${final.name}" 
				tofile="${m2.distrib.dir}/ivy-${build.version}-sources.jar" />

		<checksum algorithm="md5">
			<fileset dir="${m2.distrib.dir}">
				<include name="*.pom"/>
				<include name="*.jar"/>
			</fileset>
		</checksum>
		<checksum algorithm="sha1">
			<fileset dir="${m2.distrib.dir}">
				<include name="*.pom"/>
				<include name="*.jar"/>
			</fileset>
		</checksum>
	</target>
	

	<target name="snapshot-checksums">
		<checksum algorithm="md5">
			<fileset dir="${distrib.dir}/dist/${build.version}">
				<include name="*.pom"/>
				<include name="*.jar"/>
				<include name="*.zip"/>
				<include name="*.gz"/>
			</fileset>
		</checksum>
		<checksum algorithm="sha">
			<fileset dir="${distrib.dir}/dist/${build.version}">
				<include name="*.pom"/>
				<include name="*.jar"/>
				<include name="*.zip"/>
				<include name="*.gz"/>
			</fileset>
		</checksum>
	</target>
	
	<target name="snapshot-version">
		<property name="version.prefix" value="${target.ivy.version}-dev-"/>
	</target>
	
	<target name="release-version">
		<property name="build.version" value="${target.ivy.version}" />
		<echo>Setting version to ${build.version}</echo>
		<condition property="status" value="release">
			<matches pattern="^\d+\.\d+\.\d+$" string="${build.version}"/>
		</condition>
		<condition property="status" value="milestone">
			<matches pattern="^\d+\.\d+\.\d+-(alpha|beta|rc)\d+$" string="${build.version}"/>
		</condition>
		<property name="status" value="integration" />
		<echo>Setting status to ${status}</echo>
	</target>
	
	<target name="sign" depends="init-ivy">
        <property file="${user.home}/ivybuild.properties" />
        <input message="please enter your PGP password: " addproperty="pgp.password"/>
        <input message="please enter your PGP keyId: " addproperty="pgp.keyId"/>

        <ivy:retrieve conf="default" pattern="${build.dir}/lib/[artifact]-[revision].[ext]" />

        <taskdef resource="org/apache/ivy/ant/antlib.xml"
                uri="antlib:org.apache.ivy.ant_2">
            <classpath>
                <fileset dir="${artifacts.build.dir}/jars" includes="${final.name}" />
                <fileset dir="${build.dir}/lib" excludes="ant-*.jar" />
            </classpath>
        </taskdef>

        <ivy2:settings id="sign.settingsId" file="ivysettings-release.xml" />
        <ivy2:cachepath organisation="org.apache.commons" settingsRef="sign.settingsId" transitive="false" log="download-only"
                module="commons-openpgp" revision="1.0-SNAPSHOT" inline="true" pathid="openpgp.classpath"/>
        <ivy2:cachepath organisation="org.bouncycastle" settingsRef="sign.settingsId" log="download-only"
                module="bcprov-jdk16" revision="1.45" inline="true" pathid="bouncycastle.bcprov.classpath"/>
        <ivy2:cachepath organisation="org.bouncycastle" settingsRef="sign.settingsId" transitive="false" log="download-only"
                module="bcpg-jdk16" revision="1.45" inline="true" pathid="bouncycastle.bcpg.classpath"/>
		
		<!--
			For some reason, if we use the openpgp:signer task here directly, the bouncycastle security
			provider cannot be loaded. If we launch it as a forked process everything works fine !?!
		-->
		<java classname="org.apache.tools.ant.launch.Launcher"
				fork="true">
			<classpath>
				<fileset dir="${ant.home}" includes="**/*.jar" />
				<path refid="bouncycastle.bcprov.classpath" />
				<path refid="bouncycastle.bcpg.classpath" />
				<path refid="openpgp.classpath" />
			</classpath>
			<arg line="-f build-release.xml" />
			<arg line="sign-internal" />
			<arg line="-Dpgp.password=${pgp.password}" />
			<arg line="-Dpgp.keyId=${pgp.keyId}" />
		</java>
	</target>
		
	<target name="sign-internal">
		<property file="build.properties" />
		<taskdef resource="org/apache/commons/openpgp/ant/antlib.xml" uri="antlib:org.apache.commons.openpgp.ant" />
		<openpgp:signer secring="${user.home}/.gnupg/secring.gpg"
						pubring="${user.home}/.gnupg/pubring.gpg"
						password="${pgp.password}" 
						keyid="${pgp.keyId}"
						asciiarmor="true">
			<fileset dir="${distrib.dir}">
				<include name="**/*.pom"/>
				<include name="**/*.jar"/>
				<include name="**/*.zip"/>
				<include name="**/*.gz"/>
			</fileset>
		</openpgp:signer>
	</target>
	
	<target name="rat" depends="init-ivy">
	    <property name="rat.failOnError" value="true"/> 
        <ivy:cachepath organisation="org.apache.rat" module="apache-rat-tasks" revision="0.6" 
                       inline="true" conf="default" pathid="rat.classpath" 
                       log="download-only"/>
		
	    <typedef resource="org/apache/rat/anttasks/antlib.xml"
	             uri="antlib:org.apache.rat.anttasks"
	    	     classpathref="rat.classpath" />

		<delete dir="${rat.report.dir}"/>
        <mkdir dir="${rat.report.dir}"/>
        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportFile="${rat.report.dir}/rat-report.txt">
            <fileset dir="${basedir}">
                <exclude name=".classpath" />
                <exclude name=".ivy2/**/*" />
                <exclude name="build/**/*" />
                <exclude name="bin/**/*" />
                <exclude name="**/*.sha1" />
                <exclude name="**/*.md5" />
                <exclude name="**/*.txt" />
                <exclude name="**/MANIFEST*.MF" />
                <exclude name="**/*.json" />
                <exclude name="doc/config.js" />
                <exclude name="doc/js/jquery.pack.js" />
                <exclude name="doc/js/jquery.treeview.js" />
                <exclude name="doc/xooki/tiddly/util.js" />
            </fileset>
        </rat:report>

        <fail message="Some files have missing or incorrect license information. Check RAT report for more details!">
            <condition>
                <and>
                    <not><resourcecontains resource="${rat.report.dir}/rat-report.txt" substring="0 Unknown Licenses" casesensitive="false" /></not>
                    <equals arg1="${rat.failOnError}" arg2="true"/>
                </and>
            </condition>
        </fail>
    </target>	
	
    <target name="upload-nexus" depends="release-version, init-ivy, jar">
        <ivy:retrieve conf="default" pattern="${build.dir}/lib/[artifact]-[revision].[ext]" />

        <taskdef resource="org/apache/ivy/ant/antlib.xml"
                uri="antlib:org.apache.ivy.ant_2">
            <classpath>
                <fileset dir="${artifacts.build.dir}/jars" includes="${final.name}" />
                <fileset dir="${build.dir}/lib" excludes="ant-*.jar" />
            </classpath>
        </taskdef>
    	
        <property file="${user.home}/ivybuild.properties" />
        <input message="please enter your PGP password: " addproperty="pgp.password"/>
        <input message="please enter your PGP keyId: " addproperty="pgp.keyId"/>

        <input message="please enter your repository.apache.org username: " addproperty="upload.user"/>
        <input message="please enter your repository.apache.org password: " addproperty="upload.password"/>

        <ivy2:settings id="upload.settingsId" file="ivysettings-release.xml" />
        <ivy2:resolve file="${basedir}/build/artifact/ivy.xml" transitive="false" />
        <ivy2:publish organisation="org.apache.ivy"
                     module="ivy"
                     revision="${build.version}"
                     srcivypattern="${basedir}/build/artifact/ivy.xml"
                     artifactspattern="${basedir}/build/distrib/maven2/[revision]/[artifact]-[revision](-[classifier]).[ext]"
                     publishivy="false"
                     conf="core"
                     settingsRef="upload.settingsId"
                     resolver="nexus">
            <!-- The standard maven2 artifacts -->
            <artifact name="ivy" ext="pom" type="ivy" />
            <artifact name="ivy" ext="jar" type="sources" classifier="sources" />
            <artifact name="ivy" ext="jar" type="javadoc" classifier="javadoc" />
        </ivy2:publish>
    </target>

	<target name="prepare-snapshot" 
	        depends="/localivy, clean-ivy-home, clean, clean-lib, snapshot-version, install, clean-examples, coverage-report" />
	<target name="snapshot" 
			depends="prepare-snapshot, snapshot-src, snapshot-bin, snapshot-maven2, snapshot-checksums" 
			description="used for nightly and integration builds"/>
	<target name="release" depends="release-version, /localivy, clean-ivy-home, clean, clean-lib, rat, snapshot" description="make a new release of Ivy"/>

</project>
