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

	<property environment="env" />
    <property file="version.properties" />
    <property file="build.properties" />

    <property name="final.name" value="ivy.jar" />
    
    <target name="init-ivy-user-home" unless="ivy.use.local.home">
        <condition property="ivy.home" value="${env.IVY_HOME}">
            <isset property="env.IVY_HOME" />
        </condition>
        <property name="ivy.home" value="${user.home}/.ivy2" />
    </target>
    
    <target name="init-ivy-local-home" if="ivy.use.local.home">
        <property name="ivy.home" value="${basedir}/.ivy2" />
    </target>
    
    <target name="init-ivy-home" depends="init-ivy-user-home, init-ivy-local-home" />

    <target name="init-ivy" depends="compile-bootstrap, init-ivy-home">
        <taskdef resource="org/apache/ivy/ant/antlib.xml"
                uri="antlib:org.apache.ivy.ant">
            <classpath>
                <pathelement location="${core.classes.build.dir}" />
                <pathelement location="${bootstrap.classes.build.dir}" />
            </classpath>
        </taskdef>
    	
        <ivy:configure override="true" />
    </target>
    
    <target name="install" depends="init-ivy-home, jar" 
    	description="build Ivy and install it in Ivy user home for builds using Ivy user home to load Ivy jar">
        <property name="ivy.jar.file" value="${ivy.home}/jars/ivy.jar" />
        <copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${ivy.jar.file}" />
    </target>

    <target name="install-ant" depends="init-ivy-home, jar"
    	description="build Ivy and install it in Ant home lib">
        <condition property="ant.home" value="${env.ANT_HOME}">
          <isset property="env.ANT_HOME" />
        </condition>
        <fail unless="ant.home" message="ANT_HOME environment variable or ant.home property required" />
        <copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${ant.home}/lib/ivy.jar" />
    </target>

    <!-- =================================================================
         PREPARATION, CLEANING AND FLAGS TASKS
         ================================================================= -->
    <target name="init">
        <path id="lib.classpath">
            <fileset dir="${lib.dir}">
                <include name="*.jar" />
            </fileset>
        </path>
        <path id="build.bootstrap.classpath">
            <pathelement location="${core.classes.build.dir}" />
        </path>
        <path id="build.ant.classpath">
            <pathelement location="${core.classes.build.dir}" />
            <path refid="lib.classpath" />
        </path>
        <path id="build.optional.classpath">
            <path refid="build.ant.classpath" />
        </path>
        <path id="run.classpath">
            <pathelement location="${core.classes.build.dir}" />
            <pathelement location="${ant.classes.build.dir}" />
            <pathelement location="${optional.classes.build.dir}" />
            <path refid="lib.classpath" />
        </path>
        <path id="test.classpath">
            <pathelement location="${coverage.classes.dir}" />
            <fileset dir="${lib.dir}">
                <include name="*.jar" />
                <exclude name="ant.jar" />
                <exclude name="ant-launcher.jar" />
            	<exclude name="ant-nodeps.jar"/>
            	<exclude name="ant-trax.jar"/>
            </fileset>
            <pathelement location="${core.classes.build.dir}" />
            <pathelement location="${ant.classes.build.dir}" />
            <pathelement location="${optional.classes.build.dir}" />
            <pathelement path="${test.build.dir}" />
        </path>
    </target>
    
    <target name="prepare" depends="init">
        <mkdir dir="${classes.build.dir}" />
        <mkdir dir="${core.classes.build.dir}" />
    	<mkdir dir="${bootstrap.classes.build.dir}" />
        <mkdir dir="${ant.classes.build.dir}" />
        <mkdir dir="${optional.classes.build.dir}" />
        <mkdir dir="${all.classes.build.dir}" />
        <mkdir dir="${test.build.dir}" />
        <mkdir dir="${artifacts.build.dir}" />
        <mkdir dir="${test.report.dir}" />
    	<mkdir dir="${ivy.report.dir}" />
    </target>
    
    <target name="clean" description="delete all generated files keeping sources only">
        <delete dir="${classes.build.dir}" />
        <delete dir="${test.build.dir}" />
        <delete dir="${artifacts.build.dir}" />
        <delete dir="${test.report.dir}" />
        <delete dir="${javadoc.build.dir}" />
        <delete dir="${doc.build.dir}" />
        <delete dir="${build.dir}" />
    </target>
    
    <target name="clean-lib">
        <delete dir="${lib.dir}" />
    </target>
    
    <target name="clean-ivy-cache" depends="init-ivy-home">
        <delete dir="${ivy.home}/cache" />
    </target>
    
    <target name="clean-ivy-home" depends="init-ivy-home">
        <delete dir="${ivy.home}" />
    </target>
    
    <target name="clean-examples" description="clean all examples">
        <subant target="clean" failonerror="false">
            <fileset dir="${example.dir}" includes="**/build.xml" />
        </subant>       
    </target>
    
    <target name="clean-all" depends="clean, clean-lib, clean-examples" />
    
    <target name="/noresolve" description="use to skip dependency resolution">
        <property name="no.resolve" value="true" />
    </target>
    
    <target name="/notest" description="use to skip tests">
        <property name="skip.test" value="true" />
    </target>
    
    <target name="/nojavadoc" description="use to skip javadoc">
        <property name="skip.javadoc" value="true" />
    </target>
    
    <target name="/localivy" description="use a local ivy home">
        <property name="ivy.use.local.home" value="true" />
    </target>
    
    <target name="/offline" depends="/noresolve" description="use to indicate no internet connection is available">
        <property name="offline" value="true" />
    </target>
    
    <target name="default-version">
        <tstamp> 
            <format property="pubdate" pattern="yyyyMMddHHmmss" />
        </tstamp>
        <property name="version.prefix" value="${target.ivy.version}-local-" />
        <property name="build.version" value="${version.prefix}${pubdate}" />
        <property name="bundle.version" value="${target.ivy.bundle.version}.${target.ivy.bundle.version.qualifier}${pubdate}" />
    </target>

    <!-- =================================================================
         DEPENDENCY MNGT, COMPILATION AND JAR
         ================================================================= -->
    <target name="resolve" depends="init-ivy" unless="no.resolve">
        <ivy:retrieve conf="default,test" pattern="${lib.dir}/[artifact].[ext]" sync="yes"/>
    </target>

    <target name="compile-core" depends="prepare">
        <javac  srcdir="${src.dir}"
                destdir="${core.classes.build.dir}"
                sourcepath="" 
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                includeantruntime="no">
            <excludesfile name="ant.patterns" />
            <excludesfile name="optional.patterns" />
        </javac>
        <copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <exclude name="**/*.java" />
                <excludesfile name="ant.patterns" />
                <excludesfile name="optional.patterns" />
            </fileset>
        </copy>
        
        <!-- copy settings files for backward compatibility with ivyconf naming -->
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-local.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-local.xml" />
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-default-chain.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-default-chain.xml" />
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-main-chain.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-main-chain.xml" />
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-public.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-public.xml" />
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-shared.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-shared.xml" />
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf.xml" />
    </target>

	<!-- Build the Ant tasks with the current Ant runtime -->
    <target name="compile-bootstrap" depends="compile-core">
        <javac  srcdir="${src.dir}"
                destdir="${bootstrap.classes.build.dir}"
                sourcepath="" 
                classpathref="build.bootstrap.classpath"
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                includeantruntime="yes">
            <includesfile name="ant.patterns" />
        </javac>
        <copy todir="${bootstrap.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="ant.patterns" />
                <exclude name="**/*.java" />
            </fileset>
        </copy>
    </target>
    
	<!-- Build the Ant tasks with the minimal Ant runtime -->
    <target name="compile-ant" depends="compile-core, resolve">
        <javac  srcdir="${src.dir}"
                destdir="${ant.classes.build.dir}"
                sourcepath="" 
                classpathref="build.ant.classpath"
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                includeantruntime="no">
            <includesfile name="ant.patterns" />
        </javac>
        <copy todir="${ant.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="ant.patterns" />
                <exclude name="**/*.java" />
            </fileset>
        </copy>
        
        <!-- copy antlib for backward compatibility with fr.jayasoft.ivy package -->
        <copy file="${ant.classes.build.dir}/org/apache/ivy/ant/antlib.xml" 
                todir="${ant.classes.build.dir}/fr/jayasoft/ivy/ant" />
    </target>
    
    <target name="compile-optional" depends="compile-ant, resolve">
        <javac  srcdir="${src.dir}"
                destdir="${optional.classes.build.dir}"
                sourcepath="" 
                classpathref="build.optional.classpath"
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                includeantruntime="no">
            <includesfile name="optional.patterns" />
            <includesfile name="ant.patterns" />
        </javac>
        <copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="optional.patterns" />
                <exclude name="**/*.java" />
            </fileset>
        </copy>
    </target>

    <!-- =================================================================
         Create the two jar files (Ivy core and Ivy core + Ant tasks)
         ================================================================= -->
    <target name="jar" depends="compile-optional, default-version" description="Create Jar files">
        <!-- identify compiled ivy version -->
        <echo message="version=${build.version}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true" />
        <echo message="date=${pubdate}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true" />

    	<mkdir dir="${artifacts.build.dir}/jars/"/>
    	
    	<!-- 
    		there is a default Bundle-Version attribute in the source MANIFEST, used to ease 
    		development in eclipse. 
    		We remove this line to make sure we get the Bundle-Version as set in the jar task 
    	-->
    	<copy file="${basedir}/META-INF/MANIFEST.MF" tofile="${artifacts.build.dir}/MANIFEST.MF">
    		<filterchain>
    			<replaceregex pattern="Bundle-Version:.*" replace="Bundle-Version: ${bundle.version}" byline="true" />
    		</filterchain>
    	</copy>

        <copy todir="${all.classes.build.dir}">
            <fileset dir="${core.classes.build.dir}" />
            <fileset dir="${ant.classes.build.dir}" />
            <fileset dir="${optional.classes.build.dir}" />
        </copy>

        <jar destfile="${artifacts.build.dir}/jars/${final.name}"
                manifest="${artifacts.build.dir}/MANIFEST.MF">
            <metainf dir="${basedir}" includes="LICENSE,NOTICE" />
            <manifest>
                <attribute name="Specification-Title" value="Apache Ivy with Ant tasks" />
                <attribute name="Specification-Version" value="${build.version}" />
                <attribute name="Specification-Vendor" value="Apache Software Foundation" />
                <attribute name="Implementation-Title" value="org.apache.ivy" />
                <attribute name="Implementation-Version" value="${build.version}" />
                <attribute name="Implementation-Vendor" value="Apache Software Foundation" />
                <attribute name="Implementation-Vendor-Id" value="org.apache" />
                <attribute name="Extension-name" value="org.apache.ivy" />
                <attribute name="Build-Version" value="${build.version}" />
            </manifest>
            <fileset dir="${all.classes.build.dir}" />
        </jar>
    	<!-- copy main jar to ease its use as an OSGi bundle -->
    	<copy file="${artifacts.build.dir}/jars/${final.name}" 
    		  tofile="${artifacts.build.dir}/org.apache.ivy_${bundle.version}.jar" />

        <!-- clean generated module properties file -->
        <delete file="${core.classes.build.dir}/module.properties" />
    </target>

	<!-- =================================================================
         PUBLISH LOCAL
         ================================================================= -->
    <target name="publish-local" depends="jar,sources" description="publishes Ivy to Ivy local repository">
        <ivy:publish resolver="local" pubrevision="${build.version}"
            artifactsPattern="${artifacts.build.dir}/[type]s/[artifact].[ext]" 
            forcedeliver="true" />
    </target>

	<!-- =================================================================
         TESTS
         ================================================================= -->
    <target name="build-custom-resolver-jar" depends="jar">
        <mkdir dir="${build.dir}/custom-classpath" />
        <javac  srcdir="${basedir}/test/custom-classpath"
                destdir="${build.dir}/custom-classpath"
                classpathref="run.classpath"
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                includeantruntime="no" />
        <jar    destfile="${test.dir}/org/apache/ivy/core/settings/custom-resolver.jar"
                basedir="${build.dir}/custom-classpath" />
    </target>

    <target name="init-tests-offline" if="offline">
            <fileset id="test.fileset" dir="${test.dir}">
                <include name="**/${test.class.pattern}.java" />
                <exclude name="**/Abstract*Test.java" />
                <not><contains text="remote.test" /></not>
            </fileset>
    </target>
        
    <target name="init-tests-online" unless="offline">
            <fileset id="test.fileset" dir="${test.dir}">
                <include name="**/${test.class.pattern}.java" />
                <exclude name="**/Abstract*Test.java" />
            </fileset>
    </target>
    
    <target name="init-tests" depends="init-tests-offline, init-tests-online" />
    
    <target name="emma" depends="jar" unless="skip.test">
        <ivy:cachepath organisation="emma" module="emma" revision="2.0.5312" 
                       inline="true" conf="default" pathid="emma.classpath" 
                       log="download-only" /> 
        <ivy:cachepath organisation="emma" module="emma_ant" revision="2.0.5312" 
                       inline="true" conf="default" pathid="emma.ant.classpath" transitive="false" 
                       log="download-only" /> 
        <taskdef resource="emma_ant.properties">
            <classpath refid="emma.classpath" />
            <classpath refid="emma.ant.classpath" />
        </taskdef>
        <property name="emma.enabled" value="true" />
        <property name="coverage.dir" value="${build.dir}/coverage" />
        <property name="coverage.classes.dir" value="${coverage.dir}/classes" />
        <mkdir dir="${coverage.dir}" />
        <mkdir dir="${coverage.classes.dir}" />
        <emma enabled="${emma.enabled}">
          <instr mode="copy"
                 destdir="${coverage.dir}/classes"
                 metadatafile="${coverage.dir}/metadata.emma">
            <instrpath>
                <pathelement location="${core.classes.build.dir}" />
                <pathelement location="${ant.classes.build.dir}" />
                <pathelement location="${optional.classes.build.dir}" />
            </instrpath>
          </instr>
        </emma>
        <delete file="${coverage.dir}/coverage.emma" />
        <!-- add emma path to test path, because emma jars need to be available when running 
             instrumented classes -->
        <ivy:addpath topath="test.classpath" first="true">
          <pathelement location="${coverage.dir}/classes" />
          <path refid="emma.classpath" />
        </ivy:addpath>
    </target>
    
    <target name="build-test" depends="jar">
        <javac  srcdir="${test.dir}"
                destdir="${test.build.dir}"
                classpathref="run.classpath"
                source="${ivy.minimum.javaversion}"
                target="${ivy.minimum.javaversion}"
                debug="${debug.mode}"
                encoding="ISO-8859-1"
                includeantruntime="no" />
        <copy todir="${test.build.dir}">
            <fileset dir="${test.dir}">
                <exclude name="**/*.java" />
            </fileset>
        </copy>
    </target>

	<target name="prepare-osgi-tests" depends="resolve" unless="skip.test">
        <ant dir="${basedir}/test/test-repo" target="generate-bundles" />
	</target>

    <target name="prepare-test-jar-repositories" unless="skip.test">
    	<mkdir dir="${basedir}/test/jar-repos" />
        <jar destfile="${basedir}/test/jar-repos/jarrepo1.jar" >
            <fileset dir="${basedir}/test/repositories/1" />
        </jar>
        <jar destfile="${basedir}/test/jar-repos/jarrepo1_subdir.jar">
            <fileset dir="${basedir}/test/repositories" includes="1/**/*" />
        </jar>
    </target>

	<target name="test-internal" depends="build-test, init-tests, prepare-test-jar-repositories" unless="skip.test">
        <mkdir dir="${test.xml.dir}" />
    	
        <junit 
           haltonfailure="off"
           haltonerror="off"
           errorproperty="test.failed"
           failureproperty="test.failed"
           showoutput="no"
           printsummary="yes"
           includeantruntime="yes"
           dir="${basedir}"
           fork="true">
            <classpath>
                <path refid="test.classpath" />
                <pathelement path="${ant.home}/lib/ant-nodeps.jar"/>
                <pathelement path="${ant.home}/lib/ant-trax.jar"/>
            </classpath>
        	
        	<!-- pass the proxy properties to the forked junit process to use correct proxy -->
        	<syspropertyset>
        		<propertyref prefix="http" />
       		</syspropertyset>
            <jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma" />
            <jvmarg value="-Demma.coverage.out.merge=true" />
            
            <!-- Added this to test IVY-65 -->
            <jvmarg value="-Duser.region=TR" />
            <jvmarg value="-Duser.language=tr" />
            
            <formatter type="xml"/>
            <batchtest todir="${test.xml.dir}">
                <fileset refid="test.fileset" />
            </batchtest>
        </junit>
    </target>

    <target name="test" depends="test-internal" description="Run the test">
        <fail if="test.failed"
              message="At least one test has failed. See logs (in ${test.xml.dir}) for details (use the target test-report to run the test with a report)" />
    </target>
    
    <!-- =================================================================
         REPORTS AND DOCUMENTATION
         ================================================================= -->
    <target name="test-report" depends="test-internal" unless="skip.test">
        <junitreport todir="${test.xml.dir}">
            <fileset dir="${test.xml.dir}">
                <include name="TEST-*.xml" />
            </fileset>
            <report format="frames" todir="${test.report.dir}" />
        </junitreport>
        <fail if="test.failed"
              message="At least one test has failed. See logs (in ${test.xml.dir}) or report (in ${test.report.dir})" />
    </target>
    
    <target name="coverage-report" depends="emma, test-report"  unless="skip.test"
            description="run tests with instrumentation and generate coverage report">
        <mkdir dir="${coverage.report.dir}" />
        <emma>
            <report sourcepath="${src.dir}">
                <fileset dir="${coverage.dir}">
                    <include name="*.emma" />
                </fileset>

                <txt outfile="${coverage.report.dir}/coverage.txt" />
                <html outfile="${coverage.report.dir}/coverage.html" />
             </report>
         </emma>
    </target>
    
	<target name="ivy-report" depends="resolve">
		<ivy:report todir="${ivy.report.dir}"/>
	</target>

    <target name="javadoc" unless="skip.javadoc">
        <javadoc destdir="${javadoc.build.dir}" useexternalfile="true">
            <fileset dir="${src.dir}" includes="**/*.java" />
        </javadoc>
    </target>
	
    <target name="sources" depends="default-version" description="Create source archive files">
    	<mkdir dir="${artifacts.build.dir}/sources/"/>
        <jar destfile="${artifacts.build.dir}/sources/${final.name}">
            <metainf dir="${basedir}" includes="LICENSE,NOTICE" />
            <manifest>
                <attribute name="Specification-Title" value="Apache Ivy Sources" />
                <attribute name="Specification-Version" value="${build.version}" />
                <attribute name="Specification-Vendor" value="Apache Software Foundation" />
            </manifest>
            <fileset dir="${src.dir}" />
        </jar>
	</target>
	
    <target name="fixcrlf">
        <property name="eol.native.includes" 
            value="**/*.html,**/*.json,**/*.java,**/*.xml,**/*.txt,**/*.MF,**/*.properties,**/*.patterns,**/*.pom,**/*.xsl,**/*.css" />
        <property name="eol.native.excludes" 
            value="build/**,bin/**,lib/**" />

        <fileset id="eol.native.fileset" 
            dir="${basedir}" 
            includes="${eol.native.includes}"
            excludes="${eol.native.excludes}" />
        
        <fixcrlf srcdir="${basedir}" 
            includes="${eol.native.includes}" 
            excludes="${eol.native.excludes}" />
        <apply executable="svn">
            <fileset refid="eol.native.fileset" />
            <arg value="propset" />
            <arg value="svn:eol-style" />
            <arg value='"native"' />
        </apply>
    </target>
    
    <!-- Checks Ivy codebase according to ${checkstyle.src.dir}/checkstyle-config  -->
    <target name="checkstyle-internal" depends="jar">
        <ivy:cachepath organisation="checkstyle" module="checkstyle" revision="4.3"
                inline="true" conf="default" pathid="checkstyle.classpath" transitive="true" 
        		log="download-only"/>
        <taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath" />

        <mkdir dir="${checkstyle.report.dir}" />
        <checkstyle config="${checkstyle.src.dir}/checkstyle-config" 
        	failOnViolation="false" failureProperty="checkstyle.failed">
        	<classpath>
	        	<path refid="run.classpath" />
        	</classpath>
            <formatter type="xml" toFile="${checkstyle.report.dir}/checkstyle.xml" />
            <fileset dir="${src.dir}">
                <include name="**/*.java" />
            </fileset>
            <fileset dir="${example.dir}">
                <include name="**/*.java" />
            </fileset>
        </checkstyle>
  	</target>
	
    <target name="checkstyle" depends="checkstyle-internal" description="checks Ivy codebase according to ${checkstyle.src.dir}/checkstyle-config">
    	<fail if="checkstyle.failed"
    		message="Checkstyle has errors. See report in ${checkstyle.report.dir}" />
    </target>

    <target name="checkstyle-report" depends="checkstyle-internal">
        <property name="checkstyle.basedir" location="${src.dir}" />
        <xslt in="${checkstyle.report.dir}/checkstyle.xml"
                style="${checkstyle.src.dir}/checkstyle-frames.xsl"
                out="${checkstyle.report.dir}/output.txt">
            <param name="basedir" expression="${checkstyle.basedir}" />
        </xslt>
    </target>

    <target name="init-findbugs" unless="findbugs.home">
        <!-- Findbugs: Getting Findbugs -->
        <property name="findbugs.download.name" 
                  value="findbugs-1.3.5"
                  description="Name of the download file without suffix. Also the internal root directory of the ZIP."/>
        <property name="findbugs.download.file" 
                  value="${findbugs.download.name}.zip"
                  description="The filename of the ZIP."/>
        <property name="findbugs.download.url"  
                  value="http://garr.dl.sourceforge.net/sourceforge/findbugs/${findbugs.download.file}"
                  description="The download adress at a mirror of Sourceforge."/>
        <property name="findbugs.download.to"   
                  value="${build.dir}/.downloads"
                  description="Where to store the download and 'install' Findbugs."/>
        <available 
          property="findbugs.home" 
          value="${findbugs.download.to}/${findbugs.download.name}"
          file="${findbugs.download.to}/${findbugs.download.name}/lib/findbugs.jar"
          description="Check if Findbugs is already installed."
        />
      
        <!-- Findbugs: Running Findbugs -->
        <property name="findbugs.reportdir" 
                  location="${reports.dir}/findbugs" 
                  description="Where to store Findbugs results"/>
        <property name="findbugs.raw"       
                  value="raw.xml" 
                  description="Findbugs Output xml-file"/>
        <property name="findbugs.xsl"       
                  value="fancy.xsl" 
                  description="Which XSL to use for generating Output: default, fancy, plain, summary"/>
        <property name="findbugs.jvmargs"   
                  value="-Xms128m -Xmx512m" 
                  description="JVMArgs for invoking Findbugs"/>

        <mkdir dir="${findbugs.download.to}"/>
        <get src="${findbugs.download.url}" dest="${findbugs.download.to}/${findbugs.download.file}"/>
        <unzip src="${findbugs.download.to}/${findbugs.download.file}" dest="${findbugs.download.to}"/>
        <property name="findbugs.home" location="${findbugs.download.to}/${findbugs.download.name}"/>
        <mkdir dir="${findbugs.home}/plugin"/>
    </target>
  
    <target name="findbugs" description="checks Ivy codebase with Findbugs" depends="init-findbugs,compile-core" xmlns:fb="http://findbugs.sourceforge.net/">
        <path id="findbugs.real.classpath">
           <fileset dir="${findbugs.home}/lib" includes="*.jar"/>
        </path>
    
        <!-- Load the Findbugs AntTasks -->               
        <taskdef uri="http://findbugs.sourceforge.net/" resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpathref="findbugs.real.classpath" />
            
        <!-- Start Findbugs -->
        <mkdir dir="${findbugs.reportdir}"/>
        <fb:findbugs home="${findbugs.home}"
                     classpathref="findbugs.real.classpath"
                     output="xml:withMessages"
                     outputFile="${findbugs.reportdir}/${findbugs.raw}"
                     jvmargs="${findbugs.jvmargs}"
                     projectName="${Name} ${project.version}">
            <class location="${core.classes.build.dir}" />
            <sourcePath path="${src.dir}" />
        </fb:findbugs>
        
        <!-- Generate (human) readable output -->
        <xslt basedir="${findbugs.reportdir}" includes="${findbugs.raw}" destdir="${findbugs.reportdir}">
            <style>
                <javaresource name="${findbugs.xsl}" classpathref="findbugs.real.classpath"/>
            </style>  
        </xslt>
    </target>
 
    <!-- =================================================================
         IDE SPECIFIC
         ================================================================= -->
    <available file="${basedir}/.classpath" property="eclipse.classpath.exists" />
    <target name="check-eclipse-classpath-overwrite" if="eclipse.classpath.exists">
        <input message=".classpath file already exists.${line.separator}Are you sure you want to overwrite it and loose your original file?" 
               validargs="Y,N,y,n" addproperty="eclipse.classpath.confirm" />
        <condition property="eclipse.classpath.abort">
            <equals arg1="${eclipse.classpath.confirm}" arg2="N" casesensitive="false" />
        </condition>
    </target>
    
    <target name="eclipse-default" depends="resolve, check-eclipse-classpath-overwrite"
            unless="eclipse.classpath.abort"
            description="creates a default .classpath for eclipse, using jars resolved by this ant build">
        <copy file="${basedir}/.classpath.default" tofile="${basedir}/.classpath" overwrite="true" />
    </target>

    <target name="eclipse-ivyde" depends="check-eclipse-classpath-overwrite"
            unless="eclipse.classpath.abort"
            description="creates a .classpath for eclipse using Apache IvyDE version">
        <copy file="${basedir}/.classpath.ivyde" tofile="${basedir}/.classpath" overwrite="true" />
    </target>
</project>
